Категория B14 • задача №4
Условие задачи
Дано:
дан следующий программный код (для удобства, код программы приведен на самом популярном языке программирования высокого уровня – Pascal)
const
SYMBOL = ['a', 'e', 'i', 'o', 'u', 'y'];
var
i : integer;
begin
i := 1;
while(i <= length(ps)) do
begin
if(ps[i] in SYMBOL) then
begin
insert(ps[i], ps, i);
i := i + 1;
end;
i := i + 1;
end;
processingString := ps;
end;
var
inputString : string;
outputString : string;
begin
inputString := 'Pascal is good!';
outputString := processingString(inputString);
writeln(‘Выходная строка имеет вид: ', outputString);
end.
Найти:
определите, что будет напечатано в результате выполнения приведенного алгоритма
Решение
I этап: детальный анализ каждой строки заданной программы
Проанализируем код заданной функции:
Код программы (функция) | Комментарии |
function processingString (ps : string) : string; | заголовок (сигнатура) функции. |
const | раздел декларации константных величин |
SYMBOL = ['a', 'e', 'i', 'o', 'u', 'y']; | константное множество, хранящее исключительно гласные символы английского алфавита |
var | раздел декларации переменных величин |
i : integer; | счетчик циклов |
begin | начало тела функции |
i := 1; | позиционируемся на первый символ входной строки |
while(i <= length(ps)) do | пока не будет просканирована посимвольно вся входная строка начинается цикл |
begin | начало тела цикла |
if(ps[i] in SYMBOL) then | если текущий символ является символом гласной английской буквы, то |
begin | начало тела условного выражения |
insert(ps[i], ps, i); | производится вставка символа в текущую позицию, причем, вставляемый символ совпадает с проверяемым символом |
i := i + 1; | переход на следующий символ входной строки |
end; | конец тела условного выражения |
i := i + 1; | переход на следующий символ входной строки |
end; | конец тела цикла |
processingString := ps; | в качестве ответа функция возвращает "модифицированную" входную строку |
end; | конец тела функции |
Промежуточный вывод: данный алгоритм проверяет посимвольно входную строку и удваивает символы, являющиеся гласными символами английского алфавита.
Проанализируем код главного блока программы:
Код программы (главный блок) | Комментарии |
var | раздел декларации переменных |
inputString : string; | хранит значение входной строки |
outputString : string; | хранит значение выходной строки |
begin | начало главного тела программы |
inputString := 'Pascal is good!'; | инициализация входной строки конкретным значением |
outputString := processingString(inputString); | вызывается функция и записывается значение, возвращенное функцией в выходную строку |
writeln(‘Выходная строка имеет вид: ', outputString); | выводим на экран пользователя значение выходной строки |
end. | финализирующий оператор программы |
Промежуточный вывод: данная программа инициализирует входную строку конкретным значением, затем передает данную строку в функцию и печатает на экран строку, содержащую удвоение количество гласных английских букв.
II этап: тестирование программы на реальных точечных данных
P | a | s | c | a | l | i | s | g | o | o | d | ! | входная строка | |||||||
P | a | a | s | c | a | a | l | i | i | s | g | o | o | o | o | d | ! | выходная строка |
То есть выходная строка будет иметь вид: Paascaal iis gooood!
Вывод: |
после выполнения предложенного фрагмента программы на экран будет выведена строка Paascaal iis gooood! |
Резюме
проанализировали код предложенной функции;
проанализировали код предложенного главного фрагмента;
"прогнали" программу по всем символам исходной строки и произвели удвоение гласных английских символов
Категория B14 • задача №4
Остальные решения из билета №4 для подготовки к ЕГЭ по информатике 2013
Условие задачи (наведите курсор мыши на ссылку) |
Аудиовизуальное решение |
Мультимедийная видеопрезентация |
Решение в формате слайд-шоу |
Текстовое решение |
---|
Комментарии