Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка з програмування (школа).doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1.36 Mб
Скачать

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;

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

for i:=1 to n do

if A[i]= max then count:=count+1;

Writeln( Максимум = ' ,max);

Writeln('Номер першого максимума = ' ,N_max);

Writeln('Кількість максимумів = ',count);

Readkey;

End.

Задача № 356

Умова: Дано цілочислову прямокутну таблицю порядку п х т. Усі елементи таблиці, менші за середнє арифметичне її значень, замінити на «- 1», а більші — на «1».

Розв 'язання: Щоб виконати задану заміну, необхідно спочатку обчислити середнє арифметичне елементів таблиці. Для цього знайдемо суму всіх елементів, а потім поділимо на їх кількість (елементів у таблиці всього п х т). Після виконання зазначених обчислень необхідно ще раз організувати прохід по масиву, в результаті якого командою розгалуження вибрати додатні та від'ємні елементи і замінити їх відповідно до умови.

Program Example_356;

Uses crt;

Const n = 9; m = 12;

Type Masiv = array[1..n,l..m] of integer;

Var a:Masiv; I,j:byte; {I,j — змінні циклу}

Sum,SA:real;

{Sum — сума елементів таблиці, SA — середнє арифметичне}

Begin

Randomize;

Clrscr; Sum:=0; {Початкове значення суми}

Writeln('Вихідний масив: ');

For і: =1 to n do

Begin

For j : =1 to m do

begin

A[i,j]:=random(120)-random(65); Write(A[i,j]:5);

Sum:=Sum+A[і,j]; {Накопичення суми елементів масиву}

end;

writeln;

End;

SA:=Sum/(n*m);

Writeln('Середнє арифметичне - ',SA:8:2);

Writeln('Результуючий масив: ');

For i:=1 to n do

Begin

For j:=1 to m do

begin

if A[i,j] < SA then A[i,j]:=-1;

if A[i,j] > SA then A[i,j]:=1;

Write<A[i,j]:5);

end;

writeln;

End;

Readkey;

End.

Задача № 358

Умова: У даній дійсній матриці розмірністю 6x9 знайти суму елементів рядка, що містить найбільший елемент. Вважається, що такий елемент у матриці єдиний.

Розв'язання: Щоб знайти суму елементів заданого рядка, спочатку визначимо, в якому з рядків матриці знаходиться максимальний елемент. Після цього ми повинні запам'ятати номер рядка, в якому він знаходиться. Використаємо для цього додаткову змінну N_max. Після повного проходу по масиву з метою пошуку максимуму, організовуємо новий цикл, але вже не по всьому масиву, а тільки по рядку з номером Njnax для обчислення суми елементів цього рядка. Програма для реалізації описаного алгоритму має наступний вигляд:

Program Example_358;

Uses crt;

Type masiv = array[1..6,1..9] of real;