Категория B14 • задача №2

 
 
 

Условие задачи

Дано:
дан следующий программный код (для удобства, код программы приведен на самом популярном языке программирования высокого уровня – Turbo Pascal)

function f(pa, pb, pc : integer) : integer;
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 этап: точечное тестирование программы

Исходный массив имеет вид:

12-54316-7-29значение
123456789индекс

 

Первая группа из трех элементов (фон данных элементов помечен зеленым цветом) передается в функцию f:

12-54316-7-29значение
123456789индекс

Как раньше было выяснено, функция сравнивает сумму крайних элементов группы с центральным элементом.
Если (V[1] + V[3] >= V[2]) тогда
    функция возвращает значение равное 1
иначе
    функция возвращает значение равное 0.

V[1] = 1    V[2] = 2    V[3] = -5, имеем:
1 + -5 >= 2 - ЛОЖЬ, следовательно, в элемент с индексом 2 запишется ноль.

 

Вторая группа из трех элементов (фон данных элементов помечен зеленым цветом) передается в функцию f:

10-54316-7-29значение
123456789индекс

Как раньше было выяснено, функция сравнивает сумму крайних элементов группы с центральным элементом.
Если (V[4] + V[6] >= V[5]) тогда
    функция возвращает значение равное 1
иначе
    функция возвращает значение равное 0.

V[4] = 4    V[5] = 3    V[6] = 16, имеем:
4 + 16 >= 3 - ИСТИНА, следовательно, в элемент с индексом 5 запишется единица.

 

Третья группа из трех элементов (фон данных элементов помечен зеленым цветом) передается в функцию f:

10-54116-7-29значение
123456789индекс

Как раньше было выяснено, функция сравнивает сумму крайних элементов группы с центральным элементом.
Если (V[7] + V[9] >= V[8]) тогда
    функция возвращает значение равное 1
иначе
    функция возвращает значение равное 0.

V[7] = -7    V[8] = -2    V[9] = 9, имеем:
-7 + 9 >= -2 - ИСТИНА, следовательно, в элемент с индексом 8 запишется единица.

 

В итоге, после обработки массив принял вид:

10-54116-719значение
123456789индекс

Программа в последней строке печатает сумму значений элементов с индексом 5 и индексом 8 (writeln(V[5] + V[8])).
Очевидно, что:

  • V[5] = 1;

  • V[8] = 1.

то есть на экран будет визуализировано число, равное два.

 

Вывод:

после выполнения предложенного фрагмента программы на экран будет выведено число два

Ответ:

2

 
Рейтинг:
 
Проголосовало: 0
Количество просмотров: 1310
 
 
 

Категория B14 • задача №2

 

Комментарии

Для комментирования или зарегистрируйтесь
 

Остальные решения из билета №2 для подготовки к ЕГЭ по информатике 2013

 
Условие задачи
(наведите курсор мыши на ссылку)
Аудиовизуальное
решение
Мультимедийная
видеопрезентация
Решение в формате
слайд-шоу
Текстовое
решение
 
© 2011-2024 ООО "СтадиМен". Все права сохранены.
Перепечатка и использование материалов с данного сайта, разрешена только по согласию с владельцем.
Владелец оставляет за собой право воспользоваться 146 статьей УК РФ при нарушении авторских и смежных прав.
 
 
 
 
Авторизация на сайте
 
 
 
Обнаружили
ошибку на сайте?