Найти сумму элементов самой длинной последовательности подряд идущих элементов массива - 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

Объяснение кода листинга программы

Код решает задачу поиска суммы элементов самой длинной последовательности подряд идущих элементов массива. Список действий:

  1. Ввод числа N.
  2. Создание массива a(n) и заполнение его случайными числами от 1000 до 1999.
  3. Поиск самой длинной последовательности (в цикле for). Если текущий элемент a(i) делится на 3 без остатка, то это элемент последовательности, увеличиваем счетчик j. Если элемент не делится на 3 без остатка, но предыдущий элемент также не делился на 3 без остатка, то это новая последовательность, сохраняем счетчик k и переходим к следующему циклу. Если элемент не делится на 3 без остатка и предыдущий элемент делился на 3 без остатка, то это новая последовательность, сохраняем счетчик k и начинаем новый цикл. Если элемент не делится на 3 без остатка и предыдущий элемент также не делился на 3 без остатка, то это новая последовательность, сохраняем счетчик k и переходим к следующему циклу.
  4. Вывод сообщения TAKOI POSLEDOVATELNOSNI NET и возврат в начало программы.
  5. Начало нового цикла с параметрами ki, k, j. Сумма элементов последовательности равна сумме элементов от ki до ki+j-1.
  6. Вывод сообщения SUMMA = и суммы s.
  7. Конец программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.077 из 5
Похожие ответы