Определить количество участков массива, на которых его элементы монотонно возрастают - Pascal
Формулировка задачи:
Дан массив размера N. Определить количество участков, на которых его элементы монотонно возрастают
Помогите пожалуйста решить!!!!!
Решение задачи: «Определить количество участков массива, на которых его элементы монотонно возрастают»
textual
Листинг программы
program Project2;
{$APPTYPE CONSOLE}
{uses
RusConsole;
StopOnEnd;}
type
TDynIntArray = array of Integer;
procedure ReadArray(var m:TDynIntArray; var n:integer);
var i:integer;
begin
Write('Razmer n=');
ReadLn(n);
Setlength(m,n);
for i:=0 to n-1 do
begin
Write('elem[', i, ']=');
ReadLn(m[i]);
end;
writeln;
WriteLn('Massiv:');
for i:=0 to n-1 do
Write(m[i],' ');
WriteLn;
end;
function GetIntervalCount(m: TDynIntArray; n:integer): Integer;
var i:integer;
begin
result:=0;
for i:=1 to n-1 do
if (m[i]>=m[i-1])and(m[i]>m[i+1]) then inc(result);
end;
var
IntArray: TDynIntArray;
len: Integer;
begin
ReadArray(IntArray,len);
WriteLn('Count = ',GetIntervalCount(IntArray,len));
readln
end.
Объяснение кода листинга программы
- Создается программа с названием
Project2. - Объявляется тип данных
TDynIntArray- динамический массив целых чисел. - Создается процедура
ReadArray, которая принимает на вход массивmтипаTDynIntArrayи переменнуюnтипаinteger. Процедура считывает размер массиваn, выделяет память под массивm, заполняет его с клавиатуры и выводит его на экран. - Создается функция
GetIntervalCount, которая принимает на вход массивmтипаTDynIntArrayи переменнуюnтипаinteger. Функция считает количество участков массива, на которых его элементы монотонно возрастают. - Объявляются переменные
IntArrayтипаTDynIntArrayиlenтипаinteger. - Вызывается процедура
ReadArrayдля массиваIntArrayи переменнойlen. - Выводится результат работы функции
GetIntervalCountдля массиваIntArrayи переменнойlen. - Программа ждет ввода данных пользователем с помощью
readln.