В исходном массиве найти и вывести второй максимум массива - QBasic
Формулировка задачи:
В исходном массиве найти и вывести второй максимум массива (элемент который в отсортированном по не возрастанию массиве стоял бы вторым).
Решение задачи: «В исходном массиве найти и вывести второй максимум массива»
textual
Листинг программы
DEFINT A, I, M-N OPTION BASE 1 DIM a(10) CLS RANDOMIZE TIMER FOR i = 1 TO 10 a(i) = 20 * RND - 10 PRINT USING "###"; a(i); NEXT i PRINT m1 = a(1) m2 = m1 - 1 n = 1 FOR i = 2 TO 10 IF a(1) = a(i) THEN n = n + 1 NEXT i IF n = 10 THEN PRINT "Vse elementy massiva ravny" GOTO 777 END IF FOR i = 2 TO 10 IF a(i) > m1 THEN m2 = m1 m1 = a(i) ELSEIF (a(i) > m2) AND (a(i) < m1) THEN m2 = a(i) END IF NEXT i PRINT " MAX2 = "; m2 777 END
Объяснение кода листинга программы
- Объявлены переменные: A, I, M-N, m1, m2, n, a(10).
- Задается размер массива a(10) равный 10.
- Инициализируются элементы массива a(i) случайными числами от -10 до 10 с шагом 20.
- Выводится на экран содержимое массива a(i).
- Определяются две переменные: m1 - второй максимум, m2 - первый максимум.
- Определяется переменная n равная единице.
- Происходит проверка на равенство первого элемента массива a(i) всем остальным элементам.
- Если это условие выполняется, то переменная n увеличивается на единицу.
- Если переменная n равна 10, то выводится сообщение
Vse elementy massiva ravny
и происходит переход к метке 777. - Если условие из пункта 7 не выполняется, то начинается цикл, который проверяет каждый элемент массива a(i) на предмет того, является ли он максимальным.
- Если текущий элемент больше m1, то m2 присваивается значение m1, а m1 принимает значение текущего элемента.
- Если текущий элемент больше m2, но меньше m1, то m2 принимает значение текущего элемента.
- После цикла выводится сообщение с вторым максимумом массива a(i).
- Код заканчивается и происходит переход к метке 777.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д