Самая длинная неубывающая числовая последовательность - Pascal
Формулировка задачи:
В данном одномерном числовом массиве найти самую длинную неубывающую числовую последовательность и вывести её
на экран.
ПОДСКАЖИТЕ, В ЧЕМ ОШИБКА КОДА
uses crt;
var a:array[1..10] of integer;
N,j,max,k,i: integer;
begin
j:=1; max:=0; k:=0;
randomize;
write ('Массив: ');
for i := 1 to 10 do begin
a[i] := random(256);
write (a[i]:4);
end;
writeln;
for i:=2 to 10 do
if a[i]>=a[i-1] then
k:=k+1
else
begin
if k>max then
begin
max:=k;
j:=i-1;
end;
k:=0;
end;
for i:=j-k to j do
write (a[i],' ');
end.Решение задачи: «Самая длинная неубывающая числовая последовательность»
textual
Листинг программы
uses crt;
var a:array[1..10] of integer;
n,max,k,i,i1: integer;
begin
randomize;
writeln('Массив:');
for i := 1 to 10 do
begin
a[i] := random(256);
write (a[i]:4);
end;
writeln;
max:=0;
k:=0;
i1:=1;
for i:=2 to 10 do
if a[i]>=a[i-1] then k:=k+1
else if (a[i]<a[i-1])or(i=10) then
begin
if k>max then
begin
max:=k+1;
i1:=i;
k:=0;
end;
end;
writeln('Максимальная длина неубывающей последовательности=',max);
for i:=i1-max to i1-1 do
write (a[i]:4);
end.
Объяснение кода листинга программы
- Подключаем модуль crt для доступа к процедурам управления экраном.
- Объявляем массив
aиз 10 целых чисел. - Объявляем переменные
n,max,k,iиi1как целочисленные. - Генерируем случайные значения для элементов массива
aи выводим их на экран. - Инициализируем
maxиkнулевыми значениями, иi1устанавливаем равным 1. - Запускаем цикл от 2 до 10 для проверки последовательности.
- В цикле проверяем, чтобы значение текущего элемента массива было больше или равно предыдущему элементу, и если условие выполнилось, увеличиваем счетчик
k. - Если текущее значение меньше предыдущего или это последний элемент, проверяем, является ли текущая длина последовательности максимальной, и если да, обновляем переменные
maxиi1. - Выводим на экран максимальную длину неубывающей последовательности.
- Выводим элементы последовательности с максимальной длиной на экран. Код позволяет найти максимальную длину неубывающей числовой последовательности в массиве и отобразить эту последовательность.