Категория B2 • задача №2
Условие задачи
Дано:
фрагмент программы, записанного на разных языках программирования.
Вопрос:
определите значение переменной с после выполнения следующего данного фрагмента программы.
Решение
I этап: необходимо выбрать язык программирования, код, на основании которого будет подвержен анализу.
Во-первых, сразу отбросим "Алгоритмический язык", так как нет ничего более неуместного, чем пытаться разбирать код программы, записанный на некоем неформализованном языке.
Во-вторых, избавимся от языка программирования "Чистый С", так как данный язык обладает внутренней сложность и, как правило, любой код на данном языке является запутанным и плохо поддающимся анализу.
В-третьих, исключим язык программирования "Basic", так как в отличие от языка программирования Turbo Pascal, он имеет слабую типизацию, а также неудобные подпрограммы для обработки строковых величин. В дополнении, Basic не имеет встроенный тип данных, описывающий Множества.
В итоге, наш выбор однозначен - язык программирования Pascal. Думаю, что еще долгие годы, данный язык программирования будет удерживать ветвь первенства в сфере образования.
II этап: анализ представленного фрагмента программы
Для эффективного решения потребуется ввести процессинговую таблицу переменных, в которой отображать все изменения значений переменных, используемых в данном фрагменте кода. Данная таблица будет состоять из трех колонок:
отвечает за значения переменной а;
отвечает за значения переменной b;
отвечает за значения переменной c.
В первых двух строках происходит предварительная инициализация переменных a и b:
a := 6;
b := 15;
в итоге процессинговая таблица примет вид:
Значение переменной a | Значение переменной b | Значение переменной c |
6 | 15 | неизвестно |
Затем происходит реинициализация переменной a:
a := b - a * 2;
в итоге процессинговая таблица принимает вид (переменная b не меняет своего текущего значения):
Значение переменной a | Значение переменной b | Значение переменной c |
6 | 15 | неизвестно |
= 15 - 6 · 2 = 15 - 12 = 3 | 15 | неизвестно |
Затем происходит проверка условного выражения:
if a > b then
Произведем подстановку значений переменных (а = 3, b = 15): 3 > 15 - FALSE, следовательно, управление передается в блок else, в котором присутствует следующий код:
c := b - a;
в итоге процессинговая таблица принимает вид (переменные a и b не поменяли своего значения):
Значение переменной a | Значение переменной b | Значение переменной c |
6 | 15 | неизвестно |
= 15 - 6 · 2 = 15 - 12 = 3 | 15 | неизвестно |
3 | 15 | = 15 - 3 = 12 |
Как видно из заполненной процессинговой таблицы, значение переменной с имеет значение равное 12.
Вывод: |
значение переменной с после выполнения предложенного фрагмента кода примет значение равное 12 |
Резюме
выбрали в качестве фундамента язык программирования Pascal;
построили и заполнили процессинговую таблицу значения переменных.
Ответ: |
12 |
Категория B2 • задача №2
Остальные решения из билета №2 для подготовки к ЕГЭ по информатике 2013
Условие задачи (наведите курсор мыши на ссылку) |
Аудиовизуальное решение |
Мультимедийная видеопрезентация |
Решение в формате слайд-шоу |
Текстовое решение |
---|
Комментарии