Практична
робота 31
Обчислювальні
алгоритми на масивах
Завдання 1. Створити та реалізувати алгоритм мовою Pascal, який підносить до квадрату парні остачі усіх чисел в одномірному масиві(рядок
чисел) при діленні на 7 і підносить до
кубу непарні остачі (mod 7) та
виводить результати цих дій у новий масив. І до того ж знаходить суму усіх цих остач. При цьому у початковому масиві числа задаються алгоритмом, як випадкові 7-цифрові
цілі від’ємні числа.
program MOD1; {Підрахунок і дії з остачами
для усіх елементів числового масиву}
const n=2; var
a, b: array [1..n] of integer; s, i:
integer;
begin writeln ( 'Виводиться ', n, ' випадкових
елементів масиву A:');
for i:=1 to n do begin a[i]:=-1000000-random(9000000); write('
а[', i, ']=: ', a[i]); write(' '); end; writeln; writeln
( 'Виводиться ', n, ' елементів масиву остач:');
s:=0; for i:=1
to n do begin b[i]:=a[i] mod 7; s:=s+b[i]; write('b[', i, ']= ', b[i]); write(' '); end; writeln; writeln('Сума усіх остач елементів
масиву =', s); writeln('***');
for i:=1 to n do begin if b[i] mod 2=0 then b[i]:= b[i]* b[i] else b[i]:= b[i]* b[i]* b[i];
write('c[', i, ']= ', b[i]); write(' '); end; writeln; writeln('************');end.
Протестувати алгоритм для 9-цифрових: а) const =9; б) const =8; в) const =25.
Завдання 2. Створити та реалізувати алгоритм мовою Pascal, який знаходить
парні числа і ділить ці числа на 2 та знаходить непарні числа і
подвоює їх в двовимірному масиві(таблиця чисел). При цьому у початковому
масиві алгоритмом задаються випадкові 8-цифрові цілі, як додатні так і від’ємні числа.
program ODD2; {Дії окремо з парними та окремо з непарними елементами масиву}
const n=3; var
a: array [1..n, 1..n] of
integer; j,
i, p: integer;
begin writeln ( 'Вводиться ', n*n, ' випадкових
елементів масиву');
for i:=1
to n do begin for j:=1 to n do begin a[i, j]:=-4000000+random(90000000);
write(' а[', i, ' ,' , j, ' ]= ', a[i, j]); write(' '); end; writeln(' '); end; writeln ('Масив:');
p:=0; for
i:=1 to n do begin for
j:=1
to n do begin
if (a[i, j] mod 2)=0 then
begin p:=p + 1; a[i, j]:=a[i, j] div 2 end else a[i, j]:=2*a[i, j];
write(' b[', i, ' ,' , j, ' ]=', a[i, j]); write(' '); end; writeln(' '); end;
writeln;
writeln('Кількість
парних елементів масиву =', p);
writeln('Кількість
непарних елементів масиву =', n*n- p); writeln('*******');end.
Протестувати алгоритм для 4-цифрових: а) const =4; б) const =5; в) const =8.
Завдання 3. Створити та реалізувати алгоритм мовою Pascal, який виводить два масиви розміром nxn у вигляді рядків та стовпців і знаходить потроєну суму та потроєну різницю цих двох двовимірних масивів А та В(таблиці з різними числами, котрі збільшені в 3 рази), якщо у двох масивах
алгоритмом задаються випадкові 6-цифрові цілі
додатні числа.
program SUM3DELTA3; { Потроєна сума
або потроєна різниця масивів: С= 3А ±
3В}
const n=2; var
b, a: array [1..n, 1..n] of
integer; k,m, j, i: integer;
begin writeln ( 'Виводиться по ', n*n, ' випадкових
елементів масивів А та В');
for i:=1 to n do begin
for j:=1 to n do begin
a[i,j]:= 100000+random(90000) ;
write(' a[',i,';',j,']:= ' , a[i,j]); end; writeln('
'); end;
writeln(' Другий масив:');
for i:=1 to n do
begin for j:=1
to n do begin b[i,j]:= 100000+random(90000);
write(' b[',i,';',j,']:= ', b[i,j]); end; writeln('
'); end; writeln(' ');
writeln(' Відповідь.');
for i:=1 to n do begin for j:=1 to n do begin write(' 3a+3b[', i, ' ,' , j, ' ]= ', 3*( a[i,j]+ b[i,j] )); end; writeln(' '); end;
writeln(' '); writeln(' '); for k:=1 to n do begin for m:=1
to n do begin write('
3a-3b[', k, ' ,' , m, ' ]= ', 3*( a[k,m]- b[k,m])); end; writeln(' '); end;
writeln(' '); writeln; end.
Протестувати алгоритм для 10-цифрових: а) const =3; б) const =4; в) const =9.
Практична
робота 32
Обчислювальні
алгоритми на масивах
Завдання 1. Створити та реалізувати алгоритм мовою Pascal, який знаходить потроєний квадрат суми усіх чисел в одномірному масиві, тобто С=
3(а1+а2+…+ар)2 і виводить
новий масив, в якому кожний і-ий елемент дорівнює числу: C -a і*aі , якщо у даному масиві А алгоритмом задаються
випадкові 7-цифрові цілі від’ємні числа.
program QUADRATSUMMA1; {Підрахунок потроєного
квадрату суми чисел масиву}
const n=2; var
a, b: array [1..n] of integer; c, s, i: integer;
begin writeln ( 'Вводиться ', n, ' випадкових
елементів масиву A:');
for i:=1 to n do begin a[i]:=-1000000-random(9000000);
write(' а[', i, ']=: ', a[i]); write(' '); end; writeln;
writeln ( 'Виводиться ', n, ' елементів нового
масиву різниць C -а І*аІ:');
s:=0; for i:=1
to n do s:=s+a[i]; C:=3*s*s;
for i:=1 to n do begin write('b[', i, ']= ', c- a[i]*a[i]); write(' '); end; writeln;
writeln('Потроєний
квадрат суми елементів масиву
А:', C); writeln('*****************');
end.
Протестувати алгоритм для 4-цифрових: а) const =7; б) const =6.
Завдання 2. Створити та реалізувати алгоритм мовою Pascal, який змінює усі числа на протилежні і обмінює числа місцями відносно
головної діагоналі в двовимірному
масиві, якщо у масиві алгоритмом задаються випадкові 8-цифрові цілі додатні і від’ємні
числа.
program TRANSPONUVAN2; {Обмін елементів масиву відносно головної діагоналі}
const n=3; var
a,b: array [1..n, 1..n] of integer; s, m, j, i, p: integer;
begin writeln ( 'Вводиться ', n*n, ' випадкових
елементів масиву');
for i:=1 to n do begin for j:=1
to n do begin
a[i, j]:=10000000+random(90000000)*(1- random(3));
write(' a[',i,';',j,']:= ' , a[i,j]); end; writeln('
'); end;
writeln(' Змінений масив:');
p:=0; for
i:=1 to n do begin for j:=1
to n do begin
b[i, j] :=- a[j,i]; write(' b[', i, ' ,' , j, ' ]=', b[i, j]); write(' '); end; writeln(' '); end; writeln;
writeln('*****************');end.
Протестувати алгоритм для 4-цифрових: а) const =2; б) const =4; в) const =5.
Завдання 3. Створити та реалізувати алгоритм мовою Pascal, який виводить два масиви розміром nxm у вигляді рядків та стовпців і знаходить поелементу різницю між потроєними числами першого рядка масиву та подвоєними числами другого рядка двовимірного масиву А(nxm) і результат записує у третій рядок, якщо у масиві А алгоритмом задаються випадкові 1-цифрові цілі додатні
числа.
program DELTA3; {Різниця
між потроєними числами першого рядка
масиву }
const n=3; const m=4;
var b, a: array [1..n, 1..m] of
integer; j, i: integer;
begin writeln ( 'Виведення ', n*m, ' випадкових
елементів масиву A: ');
for i:=1 to n do begin
for j:=1 to m do begin
a[i,j]:= 1+random(10) ;
write(' a[',i,';',j,']:= ' , a[i,j]);
end; writeln(' '); end;
writeln(' ');
writeln('Шуканий масив: ');
for i:=1 to m do
begin a[3, i]:= 3*a[1, i]- 2*a[2,
i]; end;
for i:=1 to n do
begin for j:=1 to m do
begin
write(' b[',i,';',j,']:= '
, a[i,j]); end; writeln(' ');
end; writeln(' ');
writeln; end.
Протестувати алгоритм для а) випадкових 10-цифрових: const n=6; const m=9;
б)
випадкових 7-цифрових: const n=7; const m=8; в) 4-цифрових:
const n=4; const m=5.
Практична
робота 33
Обчислювальні алгоритми на масивах
Завдання 1. Створити та реалізувати алгоритм мовою Pascal, який знаходить
суму чисел в кожному стовпчику двовимірного масиву(таблиця чисел) і записує ці суми у одномірний масив. При цьому у початковому
масиві nxn алгоритмом задаються випадкові дійсні, як додатні
так і від’ємні числа.
program SUMMA1; {cума чисел у кожному стовпчику масиву}
const n=3; const m=4; var a: array [1..n, 1..m] of real; b: array [1..m] of real; j,
i, p: integer;
begin writeln ( 'Вводиться ', n*n, ' випадкових елементів масиву');
for i:=1
to n do begin for j:=1 to m do begin a[i, j]:=-2-random(5)+0.8*random(4);
write(' а[', i, ' ,' , j, ' ]= ', a[i, j]); write(' '); end; writeln(' '); end;
writeln ('Масив сум по
стовпичках:');
for i:=1 to m do begin b[i]:=0;
end;
for i:=1 to n do begin for
j:=1 to m do b[j]:=a[i, j]+
b[j]; end;
for i:=1 to m do begin write('
b[', i, ' ]=', b[i]);
write(' '); end; writeln;
writeln('*******');end.
Протестувати алгоритм для: а) const n=5; const m=6; б) const n=8; const m=8; в) const n=9 const m=10; г) const n=7; const m=10; д) const n=1; const m=10.
Завдання 2. Створити та реалізувати алгоритм мовою Pascal, який знаходить
суму чисел в кожному рядку двовимірного
масиву(таблиця чисел) і записує ці суми у одномірний масив. При цьому у початковому
масиві nxn алгоритмом задаються випадкові дійсні, як додатні
так і від’ємні числа.
program SUMMA2; {cума чисел у кожному рядку масиву}
const n=3; const m=4;
var a: array [1..n, 1..m] of real; b: array [1..n] of real; j,
i: integer;
begin writeln ( 'Вводиться ', n*n, ' випадкових елементів масиву');
for i:=1
to n do begin for j:=1 to m do begin a[i, j]:=-2-random(5)+0.8*random(4);
write(' а[', i, ' ,' , j, ' ]= ', a[i, j]); write(' '); end; writeln(' '); end;
writeln ('Масив сум по
рядках:'); for i:=1 to n do begin b[i]:=0;
end;
for i:=1 to m do begin for
j:=1 to n do b[j]:=a[j, i]+
b[j]; end;
for i:=1 to n do begin write('
b[', i, ' ]=', b[i]);
write(' '); end; writeln;
writeln('*******');end.
Протестувати алгоритм для: а) const n=2; const m=6;
б) const n=3; const m=8; в) const n=1 const m=10; г)
const n=3; const m=5; д) const n=1; const m=1.
Немає коментарів:
Дописати коментар