Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > ПОМОЩЬ ШКОЛЬНИКАМ > ЕГЭ по информатике 2020, часть 2, № 24


Автор: swf 24.07.20, 19:48
ЕГЭ по информатике 2020, вариант Москва
Часть 2, № 24
Исправление ошибок в программе
Задание взято с сайта
http://kotolis.ru/realegeinf_2020
Решение на сайте неправильное.
Более точно, авторы решают другую задачу, не ту, чьё условие они приводят.
user posted image

Условие.
На обработку поступает последовательность из четырёх неотрицательных чисел. Нужно написать программу, которая выводит на экран количество четных чисел, и их сумму. Если таких чисел нет, требуется вывести на экран «NO». Программист написал программу неправильно.
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе набора 70 93 50 19 .
2. Приведите пример такого набора чисел, что, несмотря на ошибки, программа печатает правильный ответ.
3. Найдите в программе все ошибки (их может быть не больше двух). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

Решение.
Программа на Паскале:
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    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 - правильно

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)