На обработку поступает последовательность из четырех положительных целых чисел. Нужно написать программу, которая выводит на экран произведение минимального элемента последовательности и суммы нечетных чисел. Если нечетных чисел нет, требуется вывести на экран «NO». Известно, что вводимые числа по абсолютной величине не превышают 99. Марафонец замечтался о поступлении в топовый ВУЗ и написал программу с ошибками. Ниже эта программа для Вашего удобства приведена на трех языках программирования.
Выполните следующие задания:
1. Напишите, что выведет эта программа при вводе последовательности 25, 50, 2, 1.
2. Приведите пример такой последовательности, содержащей хотя бы одно нечетное число, что, несмотря на ошибки, программа печатает правильный ответ.
3. Найдите все ошибки в этой программе (их может быть одна или несколько). Известно, что каждая ошибка затрагивает только одну строку и может быть исправлена без изменения других строк. Для каждой ошибки:
1) выпишите строку, в которой сделана ошибка;
2) укажите, как исправить ошибку, т.е. приведите правильный вариант строки.
Достаточно указать ошибки и способ их исправления для одного языка программирования. Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.
1. Заметим, что несмотря на все вычисления, происходящие внутри программы, на экран выводится лишь последнее значение , в нашем случае — 1.
2. Так как программа Марафонца выводит на экран только последнее значение , нам необходимо сделать так, чтобы сумма нечетных чисел, умноженная на минимальный элемент последовательности совпадала с последним элементом и была меньше 99 (по условию числа не превышают 99 по абсолютному значению). Тогда подходящяя последовательность может иметь вид 3, 3, 2, 12. Сумма нечетных элементов — 6, минимальный элемент — 2, их произведение — 12, последний элемент также равен 12, значит, программа выведет верный ответ.
3. В первую очередь необходимо заметить, что в программе марафонца не работает поиск минимума, поскольку условие ищет элемент больший, чем .
Исправим на языке C++:
Ошибочная строка: ;
Исправленная строка: ;
Исправим на языке Python:
Ошибочная строка: Исправленная строка:
Исправим на языке Pascal:
Ошибочная строка: ;
Исправленная строка: ;
Еще одной ошибкой является вывод, так как по уловию задачи нас просят вывести произведение минимального элемента и суммы нечетных чисел, а в программе Марафонца на экран выводится только последний элемент.
Исправим на языке C++:
Ошибочная строка: ;
Исправленная строка: ;
Исправим на языке Python:
Ошибочная строка:
Исправленная строка:
Исправим на языке Pascal:
Ошибочная строка: ;
Исправленная строка: ;