ПРАКТИЧНА РОБОТА 58.
Алгоритми з
вкладеними циклами
та лінійними масивами
Завдання 1. Реалізувати
алгоритм для знаходження суми від’ємних елементів в лінійному масиві, що
утворюється з випадкових цілих чисел.
Program POSHUK1;
var a: array
[1..20] of integer;
s:
integer;
i:
integer;
begin
writeln
('перелік 20 випадкових цілих елементів масиву:'); s:=0;
for i:=1 to 20 do begin a[i]:=498-random(999);
writeln (i, '-ий елемент масиву = ', a[i]);
if a[i]<0 then s:=s+a[i];
end;
writeln ( 'Сума від’ємних чисел =', s);
end.
Завдання 2. Реалізувати
алгоритм для знаходження найбільшого спільного дільника(НСД) для чисел в лінійному масиві, що утворюється з
випадкових цілих чисел та знаходження найменшого
спільного кратного(НСК) для чисел в лінійному масиві.
Program POZYTYV2;
var a,b,c: array [1..6] of integer;
x,y,i: integer;
function
NOD(x, y:integer):integer; {Функція пошуку найб. НСД}
begin if x <> 0
then NOD:=NOD(y
mod x, x)
else NOD:=y;
end;
function
NOK(x, y:integer):integer; {Функція пошуку наймен. НСК}
begin
NOK:=(x div NOD(x, y))*y;
end;
begin {основна програма}
writeln ('перелік 6 випадкових цілих чисел масиву:');
for i:=1 to 6 do begin
a[i]:=8*i - 4*random(99); writeln
(i, '-е число =
', a[i]); end;
b[1]:=NOD(abs(a[1]), abs(a[2]));
c[1]:=NOK(abs(a[1]), abs(a[2]));
for i:=1 to 5 do begin
b[i+1]:=NOD(b[i],
abs(a[i+1]));
{Пошук НСД}
c[i+1]:=NOK(c[i],
abs(a[i+1]));
writeln('***');
writeln(i, '-ий НСДільник чисел масиву
=', b[i]);
writeln(i, '-ий НСKратне чисел масиву
=', c[i]);
writeln('***'); end; writeln('НСД усіх
чисел =', b[6]);
writeln('НСК усіх
чисел =', c[6]);
end.
Завдання
3.
Реалізувати алгоритм для знаходження найбільшого числа повторень однакових чисел в
лінійному масиві, що утворюється з 20 випадкових
цілих чисел.
Program POVTOR3;
var a:array[1..20]
of integer;
i,j,m,p,n:integer;
begin
writeln('перелік 20 ВИПАДКОВИХ чисел
в массиві А');
for
i:=1 to 20 do begin
a[i]:=1-random(4);
writeln (i, '-ий
елемент масиву = ', a[i]);
end;
m:=1; p:=1;
for
i:=1 to 20 do begin
n:=0;
for j:=1
to 20 do begin
if
a[i]=a[j]
then inc(n);
end;
if n>m then begin
m:=n; p:=i;
end;
end;
writeln('найповторюване число в масиві:',a[p]);
writeln('кількість числа: ',a[p], '
=', m ); end.
Завдання
4.
Реалізувати алгоритм для знаходження відповіді на питання: чи повторюються числа в лінійному масиві, що утворюється з 40 випадкових цілих чисел?
Program ALGORUTM4;
var a: array [1..40] of
integer;
i, j: integer;
begin
writeln ( 'перелік 40 елементів масиву');
for i:=1
to 40 do begin a[i]:=i-random(999);
writeln
(i, '-ий елемент масиву = ', a[i]); end;
for i:=1
to 40 do begin
for j:=i+1
to 40 do begin
if a[i]=a[j]
then begin
writeln ( 'в масиві є однакові елементи= ',a[i], ' зокрема це
', i, '-ий та ', j,
'-ий елементи');
halt;
end;
end;
end;
writeln
( 'усі елементи масиву різні');
end.
Завдання
5.
Реалізувати алгоритм для знаходження відповіді на питання: чи є парні числа в лінійному масиві, що утворюється з 50 випадкових цілих чисел?
Завдання
6.
Реалізувати алгоритм для знаходження відповіді на питання: чи є непарні числа в лінійному масиві, що утворюється з 60 випадкових цілих чисел?
Завдання
7.
Реалізувати алгоритм для знаходження відповіді на питання: чи є круглі числа в лінійному масиві, що утворюється з 50 випадкових цілих чисел?
Завдання
8.
Реалізувати алгоритм для знаходження відповіді на питання: чи є нульові числа в лінійному масиві, що утворюється з 60 випадкових цілих чисел?
Довідка про масиви
Довідка про масиви
Тема. Структуровані типи даних
Неструктуровані типи даних мають наступне відміну від структурованих: одне ім'я - одне значення.
Класифікуються структуровані типи даних за такими ознаками:
Класифікуються структуровані типи даних за такими ознаками:
- однорідність (елементи однотипні);
- впорядкованість (між елементами визначено порядок проходження);
- тип доступу (прямий або послідовний);
- статична або динамічна.
1. Масиви
Масив - однорідна упорядкована статична структура прямого доступу. Масив можна назвати a сукупністю фіксованого числа однакових компонентів, кожна з яких забезпечується індексом. Для того щоб описати масив, необхідно задати тип компонента і тип індексу.
var <ідентифікатор>: array [тип індексу] of <тип компонент>;
var <ідентифікатор>: array [тип індексу] of <тип компонент>;
Найчастіше в якості типу індексу вживається інтервальний тип, може бути і перераховується тип, а також будь-яким скалярним порядковим типом.
Приклад оголошення масиву:
var mass : array [1..10] of real ; {приклад опису одновимірного масиву}
var a : array [1..15, 1..4] of integer ; {приклад опису двовимірного масиву}
Всі завдання можна умовно уявити з декількох основних блоків:
- блок введення значень елементів масиву (формування елементів масиву випадковим чином);
- блок виведення вихідного масиву;
- блок обробки масиву;
- блок виведення результатів обробки.
Найбільш часто використовувані масиви при вирішенні завдань: одномірні, двовимірні.
Немає коментарів:
Дописати коментар