A[i]:=random*100-random*50;
{Заповнення масиву випадковими дійсними числами}
Write(А[і]:8:2);
End;
For i:=l to N-l do
If ((A[i]<0) and (A[i+1]>0)) or ((A[i]>0) and (A[i+1]<0))
then count:=count+l;
Writeln;
Writeln(‘Кількість заданих сусідств ‘,count);
Readkey; {Затримка зображення на екрані}
End.
1) береться будь-який елемент масиву (як правило, перший) і його значення присвоюється змінній max
2) по черзі з масиву вибираються всі останні елементи і, якщо серед них знайдеться більший за обраний еталон, то змінній max присвоюється нове значення, яке тепер буде новим еталоном. В іншій змінній, наприклад, Nmax запам’ятовується номер цього найбільшого елементу (початкове значення цієї змінної було 1, тому що спочатку ми вважали найбільшим 1 -ий елемент). Після закінчення перегляду всього масиву змінна max буде містити шуканий максимум, а змінна N_max — його номер. Щоб запам’ятати номер першого максимального елемента, необхідно шукати в матриці елемент, що точно більший еталону. Якщо ж ми будемо шукати елемент, що не менший за еталон, то в змінній
Після знаходження максимуму другим проходом можна вже підрахувати кількість таких елементів в масиві. Для цього кожен елемент порівнюється з еталоном, що знаходиться в змінній max
Програма, що реалізує описаний алгоритм, наведена нижче:
Program Example_321_1_2;
Uses crt;
Const n = 30;
Var A:array[1..n] of integer; {A — масив даних чисел}
і:byte; {і — змінна циклу}
count,N_max:byte; {count — кількість максимальних елементів в масиві, Н_тах — номер першого найбільшого елементу}
max:integer; {max — максимальний елемент масиву}
Begin
Clrscr;
Randomize;
For і:=1 to n do
Begin
A[i]:«random(150) - random(80); Write(A[i]:5);
end;
{Надання змінним початкових значень)
max:=A[l];
N_max:=1;
count:=0;
{Прохід по масиву для пошуку максимуму та його номера}
for і:=2 to n do
if A[i]> max
then begin max:=A[i]; N_max:=i; end;
{Другий прохід по масиву для підрахунку кількості максимальних елементів}