Выделите из массива максимальную цепочку послендовательных элементов, составляющих арифметическую прогрессию - QBasic
Формулировка задачи:
дан массив С(n). Выделите из массива максимальную цепочку послендовательных элементов, составляющих арифметическую прогрессию 9каждый элемент, начиная со второго, равен сумме предыдущего и некоторого одного и того же числа).выведите на экран исходный массив и полученную цепочку.
Решение задачи: «Выделите из массива максимальную цепочку послендовательных элементов, составляющих арифметическую прогрессию»
textual
Листинг программы
INPUT "n=", n DIM c(n) FOR i = 1 TO n INPUT c(i) NEXT PRINT "ishodnyj massiv" FOR i = 1 TO n PRINT c(i); NEXT PRINT k = 2 max = 2 nom = 1 FOR i = 3 TO n IF c(i) - c(i - 1) = c(i - 1) - c(i - 2) THEN k = k + 1 IF k > max THEN max = k nom = i - k + 1 END IF ELSE k = 2 END IF NEXT PRINT "max=";max print"maximalnaya progressiya" FOR i = nom TO nom + max - 1 PRINT c(i); NEXT
Объяснение кода листинга программы
- Пользователю предлагается ввести размер массива
n
. - Создается массив
c(n)
указанного размера. - В цикле заполняется массив
c(n)
значениями, которые вводит пользователь. - Выводится исходный массив
c(n)
. - Инициализируются переменные:
k
равна 2,max
равна 2,nom
равна 1. - В цикле проверяется, является ли текущий элемент арифметической прогрессией со своими предыдущими двумя элементами.
- Если да, то переменная
k
увеличивается на 1. - Если значение
k
больше текущего значенияmax
, то обновляются значенияmax
иnom
. - Если текущий элемент не является арифметической прогрессией со своими предыдущими двумя элементами, то переменная
k
сбрасывается до значения 2. - Цикл повторяется, пока не будут проверены все элементы массива
c(n)
. - Выводится значение
max
. - Выводится последовательность элементов массива
c(n)
начиная с элемента с индексомnom
и заканчивая элементом с индексомnom + max - 1
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д