
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.97.9.174] |
![]() |
|
Сообщ.
#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 - правильно |