ПРАКТИЧНА РОБОТА 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 ; {приклад опису двовимірного масиву}
Всі завдання можна умовно уявити з декількох основних блоків:
- блок введення значень елементів масиву (формування елементів масиву випадковим чином);
- блок виведення вихідного масиву;
- блок обробки масиву;
- блок виведення результатів обробки.
Найбільш часто використовувані масиви при вирішенні завдань: одномірні, двовимірні.
 
Немає коментарів:
Дописати коментар