Категория B14 • задача №2
Условие задачи
Дано:
дан следующий программный код (для удобства, код программы приведен на самом популярном языке программирования высокого уровня – Turbo Pascal)
begin
if((pa + pc) >= pb) then
f := 1
else
f := 0;
end;
{-------------------------------------------------------------------}
const
N = 9;
V : array[1..N] of integer = (1, 2, -5, 4, 3, 16, -7, -2, 9);
var
i : byte;
begin
i := 2;
while(i <= (N - 1)) do
begin
V[i] := f(V[i - 1], V[i], V[i + 1]);
i := i + 3;
end;
writeln(V[5] + V[8]);
end.
Найти:
определите, что будет напечатано в результате выполнения приведенного алгоритма
Решение
I этап: детальный анализ каждой строки заданной программы
Проанализируем код заданной функции:
Промежуточный вывод: если в рассматриваемой группе параметров, сумма крайних параметров не меньше значения центрального параметра, то возвращается 1, иначе возвращается 0.
Проанализируем код главного блока программы:
Промежуточный вывод: необходимо рассчитать значения центральных элементов в трех группах и найти сумму центральных элементов в двух последних группах.
То есть исходный массив, состоящий из 9 элементов, разбивается на 3 группы по три элемента. Затем элементы каждой группы передаются в функцию, возвращающей одно из двух значений - ноль или единица.
II этап: точечное тестирование программы
Исходный массив имеет вид:
1 | 2 | -5 | 4 | 3 | 16 | -7 | -2 | 9 | значение |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | индекс |
Первая группа из трех элементов (фон данных элементов помечен зеленым цветом) передается в функцию f:
1 | 2 | -5 | 4 | 3 | 16 | -7 | -2 | 9 | значение |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | индекс |
Как раньше было выяснено, функция сравнивает сумму крайних элементов группы с центральным элементом.
Если (V[1] + V[3] >= V[2]) тогда
функция возвращает значение равное 1
иначе
функция возвращает значение равное 0.
V[1] = 1 V[2] = 2 V[3] = -5, имеем:
1 + -5 >= 2 - ЛОЖЬ, следовательно, в элемент с индексом 2 запишется ноль.
Вторая группа из трех элементов (фон данных элементов помечен зеленым цветом) передается в функцию f:
1 | 0 | -5 | 4 | 3 | 16 | -7 | -2 | 9 | значение |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | индекс |
Как раньше было выяснено, функция сравнивает сумму крайних элементов группы с центральным элементом.
Если (V[4] + V[6] >= V[5]) тогда
функция возвращает значение равное 1
иначе
функция возвращает значение равное 0.
V[4] = 4 V[5] = 3 V[6] = 16, имеем:
4 + 16 >= 3 - ИСТИНА, следовательно, в элемент с индексом 5 запишется единица.
Третья группа из трех элементов (фон данных элементов помечен зеленым цветом) передается в функцию f:
1 | 0 | -5 | 4 | 1 | 16 | -7 | -2 | 9 | значение |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | индекс |
Как раньше было выяснено, функция сравнивает сумму крайних элементов группы с центральным элементом.
Если (V[7] + V[9] >= V[8]) тогда
функция возвращает значение равное 1
иначе
функция возвращает значение равное 0.
V[7] = -7 V[8] = -2 V[9] = 9, имеем:
-7 + 9 >= -2 - ИСТИНА, следовательно, в элемент с индексом 8 запишется единица.
В итоге, после обработки массив принял вид:
1 | 0 | -5 | 4 | 1 | 16 | -7 | 1 | 9 | значение |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | индекс |
Программа в последней строке печатает сумму значений элементов с индексом 5 и индексом 8 (writeln(V[5] + V[8])).
Очевидно, что:
V[5] = 1;
V[8] = 1.
то есть на экран будет визуализировано число, равное два.
Вывод: |
после выполнения предложенного фрагмента программы на экран будет выведено число два |
Ответ: |
2 |
Категория B14 • задача №2
Остальные решения из билета №2 для подготовки к ЕГЭ по информатике 2013
Условие задачи (наведите курсор мыши на ссылку) |
Аудиовизуальное решение |
Мультимедийная видеопрезентация |
Решение в формате слайд-шоу |
Текстовое решение |
---|
Комментарии