На вход программы поступают 4 положительных целых числа, не превышающие 1000, среди которых могут быть одинаковые. Нужно написать программу, которая выводит количество четных чисел и максимальное из них. Если среди входных данных нет чётных чисел, программа должна вывести слово 'NO'. Для решения этой задачи
ученик написал такую программу:
| Бейсик | Python |
|---|---|
CONST n = 4 count = 0 maximum = 1000 FOR I = 1 TO n INPUT x IF x mod 2 = 0 THEN count = count + 1 IF x > maximum THEN maximum = I END IF END IF NEXT I IF count > 0 THEN PRINT count PRINT maximum ELSE PRINT "NO" END IF
| n = 4 count = 0 maximum = 1000 for i in range (1, n+1): x = int(input()) if x % 2 == 0: count += 1 if x > maximum: maximum = i if count > 0: print (count) print (maximum) else: print ("NO")
|
| Алгоритмический язык | Паскаль |
алг нач цел n = 4 цел i, x цел maximum, count count := 0 maximum := 1000 нц для i от 1 до n ввод x если mod(x, 2) = 0 то count := count + 1 если x > maximum то maximum := i все все кц если count > 0 то вывод count, нс в ывод maximum иначе вывод "NO" все кон | const n = 4; var i, x: integer; var maximum, count: integer; begin count := 0; maximum := 1000; for i := 1 to n do begin read(x); if x mod 2 = 0 then begin count := count + 1; if x > maximum then maximum := i end end; if count > 0 then begin writeln(count); writeln(maximum) end else writeln('NO') end. |
| Си++ | |
#include <iostream> using namespace std; #define n 4 int main(void) { int i, x; int maximum, count; count = 0; maximum = 1000; for (i = 1; i <= n; i++) { cin >> x; if (x % 2 == 0) { count++; if (x > maximum) maximum = i; } } if (count > 0) { cout << count << endl; cout << maximum << endl; } else cout << "NO\n"; }
| |
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе чисел 2 15 44 15.
2. Приведите пример такой последовательности, что, несмотря на ошибки, программа выдаст верный ответ.
3. Найдите все ошибки в этой программе (их может быть одна или несколько). Для каждой ошибки: выпишите строку, в которой сделана ошибка, и приведите правильный вариант строки.
1. Программа выведет числа 2 и 1000.
2. Например, набор 2 4 5 1000.
3. В программе есть две ошибки.
Первая ошибка: неверная инициализация максимума.
Строка с ошибкой:
maximum := 1000;
Верное исправление:
maximum := -1;
Вторая ошибка: неверное присвоение значения максимума.
Строка с ошибкой:
maximum := i
Верное исправление:
maximum := x

