Найти сумму элементов самой длинной последовательности подряд идущих элементов массива - QBasic
Формулировка задачи:
Задан массив натуральных чисел, элементы которого могут принимать значения от 1 до 1000. Найти и вывести на экран сумму элементов самой длинной последовательности подряд идущих элементов массива, которые без остатка делятся на 3. Если такой последовательности не существует, вывести соответствующее сообщение.
Решение задачи: «Найти сумму элементов самой длинной последовательности подряд идущих элементов массива»
textual
Листинг программы
DEFLNG A, I-K, N, S OPTION BASE 1 RANDOMIZE TIMER CLS INPUT "Vvedite N"; n DIM a(n) FOR i = 1 TO n a(i) = 1000 * RND + .5 PRINT a(i); NEXT i FOR i = 1 TO n IF a(i) MOD 3 = 0 THEN 100 NEXT i PRINT "TAKOI POSLEDOVATELNOSNI NET" GOTO 200 100 ki = 1 k = 1 j = 0 FOR i = 1 TO n IF a(i) MOD 3 = 0 THEN j = j + 1 ELSEIF k < j THEN k = j ki = i - 1 j = 0 ELSE j = 0 END IF NEXT i s = 0 PRINT FOR i = ki - k + 1 TO ki s = s + a(i) NEXT i PRINT "SUMMA = "; s 200 END
Объяснение кода листинга программы
Код решает задачу поиска суммы элементов самой длинной последовательности подряд идущих элементов массива. Список действий:
- Ввод числа N.
- Создание массива a(n) и заполнение его случайными числами от 1000 до 1999.
- Поиск самой длинной последовательности (в цикле for). Если текущий элемент a(i) делится на 3 без остатка, то это элемент последовательности, увеличиваем счетчик j. Если элемент не делится на 3 без остатка, но предыдущий элемент также не делился на 3 без остатка, то это новая последовательность, сохраняем счетчик k и переходим к следующему циклу. Если элемент не делится на 3 без остатка и предыдущий элемент делился на 3 без остатка, то это новая последовательность, сохраняем счетчик k и начинаем новый цикл. Если элемент не делится на 3 без остатка и предыдущий элемент также не делился на 3 без остатка, то это новая последовательность, сохраняем счетчик k и переходим к следующему циклу.
- Вывод сообщения
TAKOI POSLEDOVATELNOSNI NET
и возврат в начало программы. - Начало нового цикла с параметрами ki, k, j. Сумма элементов последовательности равна сумме элементов от ki до ki+j-1.
- Вывод сообщения
SUMMA =
и суммы s. - Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д