неділя, 18 березня 2018 р.

Алгоритми на масивах.


Практична робота 29. 
Алгоритми на масивах.

Завдання 1. Створити та реалізувати алгоритм мовою Pascal, який знаходить суми усіх чисел в одномірному масиві(рядок чисел), якщо у масиві алгоритмом задаються випадкові трицифрові цілі  додатні числа.
Наприклад: Дано масив чисел: (1; 3; 5; 8; 0; 3; 9). Його сума:  1+ 3+5+8+0+3+9=29.
program SUMMA1;     {Підрахунок суми усіх елементів числового масиву}
const  n=20;    var a: array [1..n] of integer;         s,     i: integer;
begin        writeln ( 'Вводиться    ', n,  '  випадкових елементів масиву');
     for i: = 1 to n do begin     a[i]:=100+random(900);
writeln('випадковий  а[', i, ']-ий елемент масиву: ', a[i]);  writeln; end;
     s:=0;        for i:=1 to n do s:=s+a [i];  
     writeln('Сума усіх елементів масиву =', s); writeln; end.
Протестувати  алгоритм для 5-цифрових: а) const =5; б) const =15. 
Завдання 2. Створити та реалізувати алгоритм мовою Pascal, який знаходить середнє арифметичне усіх чисел в двовимірному  масиві(таблиця чисел), якщо у масиві алгоритмом задаються випадкові чотирицифрові цілі додатні  числа.
program SUMMA2;   {Середнє арифметичне елементів числового масиву}
const  n=3;       var  a: array [1..n, 1..n] of integer;            s, m, j, i: integer;
begin        writeln ( 'Вводиться    ', n*n,  '  випадкових елементів масиву');
     for    i:=1 to n do begin          for    m:=1 to n do begin 
      a[i, m]:=1000+random(9000);
writeln('випадковий  а[', i, ' ,' , m, ' ]-ий елемент масиву: ', a[i, m]);  writeln; end; end;
     s:=0;   for i:=1 to n do begin       for   j:=1 to n do begin     s:=s + a[i, j]; end;  end;          writeln('Середнє арифметичне елементів масиву =', s/(n*n)); writeln; end.
Протестувати  алгоритм для 6-цифрових: а) const =2; б) const =4. 
Завдання 3. Створити та реалізувати алгоритм мовою Pascal, який знаходить найбільше та найменше  із усіх чисел в двовимірному  масиві(таблиця чисел), якщо у масиві алгоритмом задаються випадкові 5-цифрові цілі додатні  числа.
program MINMAX3;   {Середнє арифметичне елементів числового масиву}
const  n=3;       var  a: array [1..n, 1..n] of integer;    s, m, max, min, j, i: integer;
begin        writeln ( 'Вводиться    ', n*n,  '  випадкових елементів масиву');
     for    i:=1 to n do begin          for    m:=1 to n do begin 
      a[i, m]:=10000+random(90000);
writeln('випадковий  а[', i, ' ,' , m, ' ]-ий елемент масиву: ', a[i, m]);  writeln; end; end;  s:=0;   min:=a [1,1];  for i:=1 to n do begin   for   j:=1 to n do begin   
   if   max <a [i, j]   then  max:= a [i,j];        if  min>a [i, j]   then  min:=a[i,j]; end;  end;
   writeln('Мінімальний елемент масиву =', min); writeln;
   writeln('Максимальний елемент масиву =', max); writeln;
 writeln('Середнє арифметичне МАХ та MIN =', (max+min) div 2); writeln; end.
Протестувати  алгоритм для 7-цифрових: а) const =5; б) const =6. 



Практична робота 30. 
Алгоритми на масивах.

Завдання 1. Створити та реалізувати алгоритм мовою Pascal, який знаходить  кількість усіх чисел в одномірному масиві(рядок чисел), які  діляться на 3 націло, якщо у масиві алгоритмом задаються випадкові шестицифрові цілі  додатні числа.
Наприклад: Дано масив чисел: (1; 3; 5; 8; 0; 3; 9). Його сума:  1+ 3+5+8+0+3+9=29.
program SUMMA1;     {Підрахунок суми усіх елементів числового масиву}
const  n=20;    var a: array [1..n] of integer;         s,     i: integer;
begin        writeln ( 'Вводиться    ', n,  '  випадкових елементів масиву');
     for i: = 1 to n do begin     a[i]:=100000+random(900000);
writeln('випадковий  а[', i, ']-ий елемент масиву: ', a[i]);  writeln; end;
     s:=0;        for i:=1 to n do   if  (a[i] mod  3)=0  then s: =s+1;       
     writeln('Кількість елементів масиву, які діляться на 3: ', s); writeln; end.
Протестувати  алгоритм для 5-цифрових: а) const =2; б) const =3; в) const =4 . 
Завдання 2. Створити та реалізувати алгоритм мовою Pascal, який знаходить кількість парних чисел головної діагоналі в двовимірному  масиві(таблиця чисел), якщо у масиві алгоритмом задаються випадкові cемицифрові цілі додатні  числа.
program PARA2;   { Кількість парних чисел на діагоналі  масиву}
const  n=3;       var  a: array [1..n, 1..n] of integer;            s, m, j, i: integer;
begin        writeln ( 'Вводиться    ', n*n,  '  випадкових елементів масиву');
     for    i:=1 to n do begin          for    m:=1 to n do begin 
      a[i, m]:=1000000+random(9000000);
writeln('випадковий  а[', i, ' ,' , m, ' ]-ий елемент масиву: ', a[i, m]);  writeln; end; end;
     s:=0;   for i:=1 to n do begin   if  (a[i, i] mod  2)=0  then s: =s+1;    end;   
writeln('Кількість парних чисел на діагоналі масиву =', s); writeln; end.
Протестувати  алгоритм для 4-цифрових: а) const =2; б) const =4. 
Завдання 3. Створити та реалізувати алгоритм мовою Pascal, який знаходить  різницю найбільшого та найменшого із усіх чисел в двовимірному  масиві(таблиця чисел), якщо у масиві алгоритмом задаються випадкові цілі від’ємні та додатні  числа.
program DELTAMAXMIN3;   { Різниця МАХ та MIN  числового масиву}
const  n=3;       var  a: array [1..n, 1..n] of integer;    s, m, max, min, j, i: integer;
begin        writeln ( 'Вводиться    ', n*n,  '  випадкових елементів масиву');
     for    i:=1 to n do begin          for    m:=1 to n do begin 
      a[i, m]:=-(1000+random(90))* (random(9)-random(9)-2);
writeln('випадковий  а[', i, ' ,' , m, ' ]-ий елемент масиву: ', a[i, m]);  writeln; end; end;  s:=0;   min:=a [1,1];  for i:=1 to n do begin   for   j:=1 to n do begin   
   if max <a [i, j] then max:=a[i,j];        if min>a [i, j] then min:=a[i,j]; end;  end;
   writeln(' Мінімальний елемент масиву =', min); writeln;
   writeln(' Максимальний елемент масиву =', max); writeln;
writeln('Різниця МАХ та MIN =', max-min); writeln; end.
Протестувати  алгоритм для 3-цифрових: а) const =2; б) const =4. 




Завдання для самостійного опрацювання.

Складіть програми для розвязування поданих нижче задач, записуючи розвязки у двовимірні масиви.
1. 1000 шт. цегли можна перевозити візками місткістю 100, 300, 400 і 500 шт. цегли. Отримати всі можливі варіанти перевезень. Підрахувати їхню кількість.
2.  Футбольний м’яч коштує 65 грн. Отримати всі можливі варіанти оплати, якщо у покупця є 5-, 10- і 20-гривневі купюри. Підрахувати кількість варіантів.
3.  Садівникові потрібно 18 кг мінеральних добрив. Отримати всі можливі варіанти купівлі добрива, якщо у магазині продаються розфасовки по 5, 4 і 2 кг. Підрахувати кількість варіантів.
4.  Повітроплавцеві потрібно заповнити воднем повітряну кулю місткістю 17 куб. м балончиками по 1, 2 і 5 куб. м водню. Отримати всі можливі варіанти наповнення. Підрахувати їхню кількість.
5.  Шляховим майстрам потрібно прокласти 190 м залізниці рейками по 8 і 10 м. Отримати всі можливі варіанти прокладання. Підрахувати їхню кількість.
6.  14 л соку потрібно розлити в 4-, 3-, 2- та 1-літрові банки. Отримати всі можливі варіанти розливу. Підрахувати їхню кількість.
7.  36 кг яблук потрібно розфасувати в пакети по 2, 4, 5 і 10 кг. Отримати всі можливі варіанти розфасування. Підрахувати їхню кількість.
8.  20 кг. Яблук потрібно розфасувати у пакети по 2 і 4 кг. Отримати всі можливі варіанти розфасування. Підрахувати їхню кількість.
9.  240 екскурсантів можна розсадити в автобуси ЛАЗ (місткість-40 осіб) і ПАЗ (місткість-30 осіб). Отримати всі можливі варіанти замовлень автобусів для перевезення екскурсантів. Підрахувати кількість варіантів.
10.  13 л соку потрібно розлити в 4-, 2- та 1-літрові банки. Вивести на екран всі можливі варіанту розливу. Підрахувати їхню кількість. Підрахувати кількість варіантів.

Немає коментарів:

Дописати коментар