Определить количество участков массива, на которых его элементы монотонно возрастают - 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
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д