Найти длину k и вывести на печать самую длинную "пилообразную" последовательность - Free Pascal
Формулировка задачи:
Создать массив X[1..m]. Найти длину k и вывести на печать самую длинную "пилообразную" (зубьями вверх) последовательность идущих подряд чисел. X[ p+1]< X[ p+2 ]> X[ p+ +3 ]<. . .>X[ p+k ].
Еесть варианты?
Заранее спасибо
Решение задачи: «Найти длину k и вывести на печать самую длинную "пилообразную" последовательность»
textual
Листинг программы
- uses crt;
- const nmax=30;
- var a:array[1..nmax] of integer;
- n,i,j,k,mx,imx:byte;
- begin
- clrscr;
- repeat
- write('Размер массива до ',nmax,' n=');
- readln(n);
- until n in [1..nmax];
- writeln('Введите элементы массива, в том числе образующие пилообразные последовательности');
- for i:=1 to n do
- begin
- write('a[',i,']=');
- readln(a[i]);
- end;
- clrscr;
- writeln('Массив:');
- for i:=1 to n do
- write(a[i],' ');
- writeln;
- writeln;
- i:=2;mx:=0;imx:=0;
- while i<n do
- if ((a[i]>a[i-1])and(a[i]>a[i+1]))or((a[i]<a[i-1])and(a[i]<a[i+1])) then
- begin
- j:=i;k:=2;
- while(j<=n)and(((a[j]>a[j-1])and(a[j]>a[j+1]))or((a[j]<a[j-1])and(a[j]<a[j+1]))) do
- begin
- j:=j+1;
- k:=k+1;
- end;
- if k>mx then
- begin
- mx:=k;
- imx:=i-1;
- end;
- i:=i+k;
- end
- else i:=i+1;
- if mx=0 then write('Нет пилообразной последовательности!')
- else
- begin
- writeln('Максимальная пилообразная последовательность одинаковых чисел=',mx);
- for i:=imx to imx+mx-1 do
- write(a[i],' ');
- writeln;
- write('Её длина=',mx);
- end;
- readln
- end.
Объяснение кода листинга программы
- Ввод размера массива и его элементов
- Вывод массива на экран
- Установка начального значения для переменных цикла
- Проверка условия для определения пилообразной последовательности
- Увеличение индекса на 1 при условии, что текущий элемент не является пилообразным
- Повторение шагов 4-5 до тех пор, пока не будет найдена пилообразная последовательность или не будут проверены все элементы массива
- Если пилообразная последовательность найдена, то запоминание её длины и выведение на экран
- Завершение работы программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д