Требовалось написать программу, при выполнении которой с клавиатуры поступает последовательность из пяти целых чисел (некоторые числа могут быть одинаковыми). Программа должна найти в исходной последовательности произведение нечётных чисел и максимальное нечётное число и вывести найденные числа на экран.
Если нечётных чисел в последовательности нет, требуется на экран вывести «No». Известно, что вводимые числа больше −1000 и меньше, чем 1000. Программист написал программу неправильно.
Ниже эта программа для вашего удобства приведена на четырёх языках программирования.
Последовательно выполните следующее:
1. Напишите, что выведет эта программа при вводе последовательности чисел 2 − 5 − 3 − 4 10.
2. Приведите пример такой последовательности, содержащей хотя бы одно нечётное число, для которой, несмотря на ошибки, программа напечатает правильный ответ.
3. Найдите все ошибки в этой программе. Известно, что каждая ошибка затрагивает только одну строку и может быть исправлена без изменения других строк.
Для каждой ошибки:
1) выпишите строку, в которой сделана ошибка;
2) укажите, как исправить ошибку,— приведите правильный вариант строки.
Достаточно указать ошибки и способ их исправления для одного языка программирования. Обратите внимание, что требуется найти ошибки в данной программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.
1. При вводе последовательности чисел 2 − 5 − 3 − 4 10 программа выведет два числа: 15 и 1.
2. Пример последовательности, содержащей нечётные числа, для которой программа работает правильно: 2 5 − 3 − 4 1.
3. Программа содержит три строки с ошибками (Паскаль):
1) Строка с ошибкой:
MaxX:=0;
Верное исправление:
MaxX:=-1000;
2) Строка с ошибкой:
Pr:=MaxX;
Верное исправление:
Pr:=1;
3) Строка с ошибкой:
if Pr <> 0 then begin
Верное исправление:
if MaxX <> -1000 then begin