На обработку поступает последовательность из четырёх неотрицательных чисел. Нужно написать программу, которая выводит на экран количество четных чисел, и их сумму. Если таких чисел нет, требуется вывести на экран «NO». Для решения этой задачи ученик написал такую программу:
| Бейсик | Python |
|---|---|
count = 0 sum = 0 FOR I = 1 TO 4 INPUT x IF x mod 2 = 0 THEN sum = x + i count = count + 1 END IF NEXT I IF sum > 0 THEN PRINT count PRINT sum ELSE PRINT "NO" END IF
| count = 0 sum = 0 for i in range(1,5): x = int(input()) if x % 2 == 0: sum = x + i count = count + 1 if sum > 0: print(count) print(sum) else: print("NO")
|
| Алгоритмический язык | Паскаль |
алг нач цел sum,i,x,count count := 0 sum := 0 нц для i от 1 до 4 ввод x если mod(x,2) = 0 то sum := x + i count := count+1 все кц если sum > 0 то вывод count, нс вывод sum иначе вывод "NO" все кон | var sum,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 sum := x + i; count := count+1; end end; if sum > 0 then begin writeln(count); writeln(sum); end else writeln('NO'); end. |
| Си++ | |
#include <iostream> using namespace std; int main(void) { int sum, i, x, count; count = 0; sum = 0; for (i = 1; i < 5; i++) { cin >> x; if (x % 2 == 0) { sum = x + i; count = count+1; } } if (sum > 0) { cout << count << "\n"; cout << sum << "\n"; } else cout << "NO\n"; } | |
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе набора 70 93 50 19.
2. Приведите пример такого набора чисел, что, несмотря на ошибки, программа печатает правильный ответ.
3. Найдите все ошибки в этой программе (их может быть одна или несколько, но не больше двух). Для каждой ошибки: выпишите строку, в которой сделана ошибка, и приведите правильный вариант строки.
1. При вводе чисел 70 93 50 19 программа выведет числа 2 и 53.
2. Программа выведет верный ответ, если среди последовательности из четырёх чисел будет только одно четное число, которое будет равно номеру, под которым оно находится в последовательности. Например — 1 1 1 50.
3. В программе есть две ошибки.
Первая ошибка: неверный подсчёт суммы четных чисел.
Первая ошибка:
sum := x + i;
Исправленная строка:
sum := sum + x;
Вторая ошибка: неверная проверка наличия чисел в последовательности, удовлетворяющих условию.
Вторая ошибка:
if sum > 0 then begin
Исправленная строка:
if count > 0 then begin

