Перейти к содержанию

Программа должна найти в исходной последовательности среднее арифметическое чётных чисел и максимальное чётное число и вывести найденные числа на экран

Требовалось написать программу, при выполнении которой с клавиатуры поступает последовательность из пяти целых чисел (некоторые числа могут быть одинаковыми).

Программа должна найти в исходной последовательности среднее арифметическое чётных чисел и максимальное чётное число и вывести найденные числа на экран. Если чётных чисел в последовательности нет, требуется на экран вывести «No». Известно, что вводимые числа больше −1000 и меньше, чем 1000.

Программист написал программу неправильно. Ниже эта программа для вашего удобства приведена на четырёх языках программирования.

Последовательно выполните следующее:

1. Напишите, что выведет эта программа при вводе последовательности чисел −6 5 − 8 4 2.

2. Приведите пример такой последовательности, содержащей хотя бы одно чётное число, что, несмотря на ошибки, программа напечатает правильный ответ.

3. Найдите все ошибки в этой программе (их может быть одна или несколько).Известно, что каждая ошибка затрагивает только одну строку и может быть исправлена без изменения других строк.

Для каждой ошибки:

1) выпишите строку, в которой сделана ошибка;

2) укажите, как исправить ошибку,— приведите правильный вариант строки.

Достаточно указать ошибки и способ их исправления для одного языка программирования. Обратите внимание, что требуется найти ошибки в данной программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.


1.При вводе последовательности чисел−6 5 −8 4 2 программа выведет два числа −1.6 и 4.

2. Пример последовательности, содержащей чётные числа, для которой программа работает правильно: 4 − 8 2 − 6 10.

3. Программа содержит три строки с ошибками (Паскаль):

1) Строка с ошибкой:

MaxX:=0;

Верное исправление:

MaxX:=-1000;

2) Строка с ошибкой:

if Sum <> 0 then begin

Верное исправление:

if K > 0 then begin

3) Строка с ошибкой:

writeln(Sum/N:2:1);

Верное исправление:

writeln(Sum/K:2:1);