Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[54.198.45.0] |
|
Сообщ.
#1
,
|
|
|
ЕГЭ по информатике 2020, вариант Москва
Часть 2, № 24 Исправление ошибок в программе Задание взято с сайта http://kotolis.ru/realegeinf_2020 Решение на сайте неправильное. Более точно, авторы решают другую задачу, не ту, чьё условие они приводят. Условие. На обработку поступает последовательность из четырёх неотрицательных чисел. Нужно написать программу, которая выводит на экран количество четных чисел, и их сумму. Если таких чисел нет, требуется вывести на экран «NO». Программист написал программу неправильно. Последовательно выполните следующее. 1. Напишите, что выведет эта программа при вводе набора 70 93 50 19 . 2. Приведите пример такого набора чисел, что, несмотря на ошибки, программа печатает правильный ответ. 3. Найдите в программе все ошибки (их может быть не больше двух). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде. Решение. Программа на Паскале: var maximum, i ,x, count: integer; begin count:= 0; sum:= 0; for i:= 1 to 4 do begin read (x); if x mod 2 = 0 then begin count:= count + 1; sum:= x + i; end; end; if sum > 0 then begin writeln(count); writeln (sum); end else writeln('NO') end. В программе не объявлена переменная sum, поэтому она ничего печатать не будет. Будем считать, что это ошибка не программиста, а т.н. составителей. 1. В программе обрабатываются только чётные числа. В переменной count будет накоплено количество чётных чисел в наборе, т.е. count = 2 (70 и 50). В переменной sum находится сумма последнего чётного числа и его номера, т.е. sum = 50 + 3 = 53. 2 53 2. Набор, в котором все числа нечётные, например, 1 3 5 7. Т.к. sum = 0, то программа печатает ‘NO’. 3. sum:= x + i; - неправильно sum:= x + sum; - правильно if sum > 0 then - неправильно if count > 0 then - правильно |