Процедура-функция - QBasic
Формулировка задачи:
Всем доброго времени суток. Заранее благодарен за помощь.
Даны пять различных целых чисел. Найти среди них два числа, модуль разности которых имеет наибольшее значение. Вычисление модуля разности оформить в виде процедуры-функции.
Решение задачи: «Процедура-функция»
textual
Листинг программы
DECLARE FUNCTION ModRazn% (arg1%, arg2%) CLS DIM a(1 TO 5) AS INTEGER, min AS INTEGER, max AS INTEGER INPUT "vvedite 5 razlichnih tselih chisel (cerez zapatie): ", a(1), a(2), a(3), a(4), a(5) min = 1 max = 1 FOR i = 2 TO 5 IF a(i) > a(max) THEN max = i IF a(i) < a(min) THEN min = i NEXT i PRINT PRINT "Chisla "; a(max); " & "; a(min); " imeyut naibolshiy modul raznosti == "; ModRazn%(a(max), a(min)) FUNCTION ModRazn% (x AS INTEGER, y AS INTEGER) ModRazn% = ABS(x - y) END FUNCTION
Объяснение кода листинга программы
- Объявлена функция ModRazn% с двумя аргументами типа INTEGER (целые числа).
- В начале кода выводится приглашение для ввода пяти различных чисел.
- Переменная min инициализируется значением 1, а переменная max также инициализируется значением 1.
- В цикле от 2 до 5 выполняется сравнение каждого введенного числа с числом, хранящимся в переменной min, и если число больше, то обновляется значение переменной min.
- В цикле от 2 до 5 выполняется сравнение каждого введенного числа с числом, хранящимся в переменной max, и если число меньше, то обновляется значение переменной max.
- Выводится приглашение для вывода результата.
- Выводится сообщение с наибольшим и наименьшим числами и их модулем разности.
- В конце кода определена функция ModRazn% с двумя аргументами типа INTEGER (целые числа), которая вычисляет модуль разности чисел.
- Код не содержит ошибок, но было бы полезно добавить проверку на ввод некорректных значений (например, не число или повторяющиеся числа).