Практична робота 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-літрові банки. Вивести на екран всі можливі варіанту розливу. Підрахувати
їхню кількість. Підрахувати кількість варіантів.
Немає коментарів:
Дописати коментар