Категория B5 • задача №4
Условие задачи
Дано:
фрагмент алгоритма в виде блок-схемы:
Вопрос:
определите значение переменной s после выполнения фрагмента алгоритма
Примечание: знаком := обозначена операция присваивания
Решение
I этап: проанализируем заданную блок-схему и постараемся выявить и понять все операции, задействованный в ней.
Перечень операций, встречающихся в заданной блок-схеме:
:= - операция присваивания;
a = 7, изображенное в ромбе - означает условное выражение, то есть, идет проверка if(a = 7) then...;
+ - операция сложения двух значений.
Также очевидно, что в блок-схеме представлена циклическая конструкция, по структуре схожая с циклом
< while(условие) do >, как в языке программирования Pascal.
Вообще, если записать предложенный алгоритм на языке программирования Turbo Pascal, то получим следующее:
s := 0;
while(a <> 3) do
begin
s := s + a;
a := a - 1;
end;
II этап: сформируем и заполним процессинговую таблицу переменных
До начала цикла следуют два оператора:
a := 7;
s := 0;
данные операторы отвечают за предварительную инициализацию переменных a и s, до того, как управление программой оказалось внутри цикла while.
Проверка условия (a = 3) | Значение s | Значение a |
проверки не было | 0 | 7 |
Затем начинается проверка (a = 3). Очевидно, что данное выражение возвращает ЛОЖЬ, так как текущее значение переменной a (как видно из выше построенной таблицы) составляет 7, следовательно, попадаем в тело цикла, в котором выполняется два оператора:
s := s + a;
a := a - 1;
Проверка условия (a = 3) | Значение s | Значение a |
проверки не было | 0 | 7 |
ЛОЖЬ, так как 7 не равно 3 | = 0 + 7 = 7 | = 7 - 1 = 6 |
Затем начинается проверка (a = 3). Очевидно, что данное выражение возвращает ЛОЖЬ, так как текущее значение переменной a (как видно из выше построенной таблицы) составляет 6, следовательно, попадаем в тело цикла, в котором выполняется два оператора:
s := s + a;
a := a - 1;
Проверка условия (a = 3) | Значение s | Значение a |
проверки не было | 0 | 7 |
ЛОЖЬ, так как 7 не равно 3 | = 0 + 7 = 7 | = 7 - 1 = 6 |
ЛОЖЬ, так как 6 не равно 3 | = 7 + 6 = 13 | = 6 - 1 = 5 |
Затем начинается проверка (a = 3). Очевидно, что данное выражение возвращает ЛОЖЬ, так как текущее значение переменной a (как видно из выше построенной таблицы) составляет 5, следовательно, попадаем в тело цикла, в котором выполняется два оператора:
s := s + a;
a := a - 1;
Проверка условия (a = 3) | Значение s | Значение a |
проверки не было | 0 | 7 |
ЛОЖЬ, так как 7 не равно 3 | = 0 + 7 = 7 | = 7 - 1 = 6 |
ЛОЖЬ, так как 6 не равно 3 | = 7 + 6 = 13 | = 6 - 1 = 5 |
ЛОЖЬ, так как 5 не равно 3 | = 13 + 5 = 18 | = 5 - 1 = 4 |
Затем начинается проверка (a = 3). Очевидно, что данное выражение возвращает ЛОЖЬ, так как текущее значение переменной a (как видно из выше построенной таблицы) составляет 4, следовательно, попадаем в тело цикла, в котором выполняется два оператора:
s := s + a;
a := a - 1;
Проверка условия (a = 3) | Значение s | Значение a |
проверки не было | 0 | 7 |
ЛОЖЬ, так как 7 не равно 3 | = 0 + 7 = 7 | = 7 - 1 = 6 |
ЛОЖЬ, так как 6 не равно 3 | = 7 + 6 = 13 | = 6 - 1 = 5 |
ЛОЖЬ, так как 5 не равно 3 | = 13 + 5 = 18 | = 5 - 1 = 4 |
ЛОЖЬ, так как 4 не равно 3 | = 18 + 4 = 22 | = 4 - 1 = 3 |
Затем начинается проверка (a = 3). Очевидно, что данное выражение возвращает ИСТИНУ, так как текущее значение переменной a (как видно из выше построенной таблицы) составляет 3, следовательно, управление не попадает в тело цикла, а производится выход из цикла, то есть производится завершение работы представленного алгоритма.
Чтобы определить значение переменной s достаточно обратиться к последней строке процессинговой таблицы. Как видно из последней версии таблицы, значение переменной s по завершению приведенного алгоритма составляет 22.
Вывод: |
после выполнения представленного алгоритма, изображенного на блок-схеме, значение переменной s будет равно 22 |
Резюме
разобрали структуру алгоритма, представленного в виде блок-схемы;
построили процессинговую дифференцированную таблицу с разрезом по значениям переменных;
заполнение таблицы прекратилось, когда значение переменной а достигло трех.
Ответ: |
22 |
Категория B5 • задача №4
Остальные решения из билета №4 для подготовки к ЕГЭ по информатике 2013
Условие задачи (наведите курсор мыши на ссылку) |
Аудиовизуальное решение |
Мультимедийная видеопрезентация |
Решение в формате слайд-шоу |
Текстовое решение |
---|
Комментарии