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.

ЗАДАЧА № 321 (1,2)

Умова: Дано одновимірний масив цілих чисел A[i], де i = 1, 2, ..., п. Визначити, скільки разів максимальний елемент зустрічається у даному масиві та порядковий номер першого найбільшого елементу.

Розв’язання: Для розв’язку цієї задачі спочатку необхідно пройти по всіх елементах масиву і знайти серед них максимальний, запам’ятавши його номер. Для цього користуються стандартним алгоритмом:

1) береться будь-який елемент масиву (як правило, перший) і його значення присвоюється змінній max, тобто він вважається за еталон найбільшого елементу;

2) по черзі з масиву вибираються всі останні елементи і, якщо серед них знайдеться більший за обраний еталон, то змінній max присвоюється нове значення, яке тепер буде новим еталоном. В іншій змінній, наприклад, Nmax запам’ятовується номер цього найбільшого елементу (початкове значення цієї змінної було 1, тому що спочатку ми вважали найбільшим 1 -ий елемент). Після закінчення перегляду всього масиву змінна max буде містити шуканий максимум, а змінна N_max — його номер. Щоб запам’ятати номер першого максимального елемента, необхідно шукати в матриці елемент, що точно більший еталону. Якщо ж ми будемо шукати елемент, що не менший за еталон, то в змінній Nmax залишиться номер останнього найбільшого елементу (подумайте чому).

Після знаходження максимуму другим проходом можна вже підрахувати кількість таких елементів в масиві. Для цього кожен елемент порівнюється з еталоном, що знаходиться в змінній max, та до лічильника count додається одиниця у випадку співпадання цих значень.

Програма, що реалізує описаний алгоритм, наведена нижче:

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;

{Другий прохід по масиву для підрахунку кількості максимальних елементів}

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату