Найти сумму элементов самой длинной последовательности подряд идущих элементов массива - QBasic

Узнай цену своей работы

Формулировка задачи:

Задан массив натуральных чисел, элементы которого могут принимать значения от 1 до 1000. Найти и вывести на экран сумму элементов самой длинной последовательности подряд идущих элементов массива, которые без остатка делятся на 3. Если такой последовательности не существует, вывести соответствующее сообщение.

Решение задачи: «Найти сумму элементов самой длинной последовательности подряд идущих элементов массива»

textual
Листинг программы
  1. DEFLNG A, I-K, N, S
  2. OPTION BASE 1
  3. RANDOMIZE TIMER
  4. CLS
  5. INPUT "Vvedite N"; n
  6. DIM a(n)
  7. FOR i = 1 TO n
  8.    a(i) = 1000 * RND + .5
  9.    PRINT a(i);
  10. NEXT i
  11.  
  12. FOR i = 1 TO n
  13.    IF a(i) MOD 3 = 0 THEN 100
  14. NEXT i
  15. PRINT "TAKOI POSLEDOVATELNOSNI NET"
  16. GOTO 200
  17.  
  18. 100
  19. ki = 1
  20. k = 1
  21. j = 0
  22.  
  23. FOR i = 1 TO n
  24.    IF a(i) MOD 3 = 0 THEN
  25.       j = j + 1
  26.    ELSEIF k < j THEN
  27.       k = j
  28.       ki = i - 1
  29.       j = 0
  30.    ELSE
  31.       j = 0
  32.    END IF
  33. NEXT i
  34.  
  35. s = 0
  36. PRINT
  37. FOR i = ki - k + 1 TO ki
  38.    s = s + a(i)
  39. NEXT i
  40.  
  41. PRINT "SUMMA = "; s
  42. 200
  43. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы