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

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

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

Если нечётных чисел в последовательности нет, требуется на экран вывести «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

Другие задачи из этого раздела