МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
ІКТА
кафедра „ЗАХИСТ ІНФОРМАЦІЇ”
ЗВІТ
до лабораторної роботи №3
З КУРСУ “АЛГОРИТМІЧНІ МОВИ І ПРОГРАМУВАННЯ”
на тему: „Робота з масивами. Використання процедур та функцій”
Варіант № 12
2. ПОВНИЙ ТЕКСТ ЗАВДАННЯ
Написати програму алгоритмічною мовою Турбо-Паскаль для впорядкування елементів стовпців матриці за спаданням їх значень методом обміну.
0 2 -2 89 21
-1 -4 36 41 71
56 93 51 -2 -51
1 3 -8 0 9
23 41 5 8 -2
Для відсортованої матриці знайти значення функції fi(aij) – середнє геометричне значення елементів в кожному рядку над головною діагоналлю матриці та F(fi(aij)) – сума fi(aij). Обчислення fi(aij) оформити у вигляді функції; елементи матриці вводити з клавіатури; програма повинна вивести на екран відсортовану матрицю, всі значення fi(aij) та значення функції F(fi(aij)).
3. ОСТАТОЧНА ВЕРСІЯ БЛОК-СХЕМИ АЛГОРИТМУ
Блок-схема функції sGom(i)
Блок-схема підпрограми PrintMas
Блок-схема підпрограми Sort
4. СПИСОК ІДЕНТИФІКАТОРІВ КОНСТАНТ, ЗМІННИХ, ПРОЦЕДУР І ФУНКЦІЙ, ВИКОРИСТАНИХ У ПРОГРАМІ, ТА ЇХ ПОЯСНЕННЯ
n – константа розмірності матриці;
aij – прямокутний масив змінних типу integer розмірністю n•n для зберігання введених даних та результату роботи програми;
r, s – змінні типу byte для зберігання проміжних даних;
sum – змінна типу real для зберігання суми середніх геометричних значень рядків над головною діагоналлю;
j, k, i, x, dob, sg – змінні для зберігання проміжних значень у процедурах та функціях;
clrscr – процедура очистки екрана яка об’явлена в модулі crt;
readkey – процедура яка очікує натискання будь-якої клавіші;
Sort, PrintMas – користувацькі процедури відповідно для впорядкування масиву та виведення значень елементів масиву на екран;
sGeom(x) – користувацька функція яка повертає середнє геометричне значення елементів масиву х-го рядка які знаходяться над головною діагоналлю;
writeln – процедура виведення текстових повідомлень і значень змінних на екран;
readln – процедура яка зчитує дані з клавіатури та присвоює відповідне значення змінній;
exp(x) – функція яка обчислює експоненту числа;
ln(x) – функція для обчислення натурального логарифму числа x;
cos(x) – функція знаходження косинуса кута x заданого в радіанах;
abs(x) – функція яка повертає значення модуля змінної x.
mod – операція для знаходження остачі від ділення.
5. ОСТАТОЧНА ВЕРСІЯ ПРОГРАМИ
program SortMas;
uses crt;
const n=5;
type mas=array [1..n,1..n] of integer;
var a:mas;
r,s:byte;
sum:real;
{=============================================}
function sGeom(i:byte):real;
var j:byte;
dob,sg:real;
begin
dob:=1;
for j:=i+1 to n do dob:=dob*a[i,j];
sg:=exp(1/(n-i)*ln(abs(dob)));
if (dob<0) and ((n-i) mod 2=1) then sg:=-sg;
sum:=sum+sg;
sGeom:=sg;
end;
{=============================================}
procedure PrintMas;
var i,j:byte;
begin
for i:=1 to n do
begin
for j:=1 to n do
write(a[i,j]:4);
writeln;
end;
end;
{=============================================}
procedure Sort;
var x:integer;
k,i,j:byte;
begin
for k:=1 to n do
for i:=2 to n do
for j:=n downto i do
if a[j,k]>a[j-1,k] then
begin
x:=a[j-1,k];
a[j-1,k]:=a[j,k];
a[j,k]:=x;
end;
end;
{=============================================}
begin clrscr;
writeln('Vvedit matrix A (rozmir ',n,'x',n,'):');
for r:=1 to n do
for s:=1 to n do
begin
write('a[',r,',',s,']:= '); readln(a[r,s]);
end;
writeln; Writeln('Vvedeno matrix A:');
PrintMas;
Sort;
writeln('Rezultatu robotu programu, Matrix A:'); writeln;
PrintMas;
sum:=0;
for r:=1 to n-1 do
writeln('Seredne geom radka ',r,':',sGeom(r):3:2);
writeln; writeln('Suma = ',Sum:3:2);
readkey;
end.
6. РЕЗУЛЬТАТИ РОБОТИ ПРОГРАМИ
Vvedit matrix A (rozmir 5x5):
a[1,1]:= 0
a[1,2]:= 2
a[1,3]:= -2
a[1,4]:= 89
a[1,5]:= 21
a[2,1]:= -1
a[2,2]:= -4
a[2,3]:= 36
a[2,4]:= 41
a[2,5]:= 71
a[3,1]:= 56
a[3,2]:= 93
a[3,3]:= 51
a[3,4]:= -2
a[3,5]:= -51
a[4,1]:= 1
a[4,2]:= 3
a[4,3]:= -8
a[4,4]:= 0
a[4,5]:= 9
a[5,1]:= 23
a[5,2]:= 41
a[5,3]:= 5
a[5,4]:= 8
a[5,5]:= -2
Vvedeno matrix A:
0 2 -2 89 21
-1 -4 36 41 71
56 93 51 -2 -51
1 3 -8 0 9
23 41 5 8 -2
Rezultatu robotu programu, Matrix A:
56 93 51 89 71
23 41 36 41 21
1 3 5 8 9
0 2 -2 0 -2
-1 -4 -8 -2 -51
Seredne geom radka 1:73.99
Seredne geom radka 2:31.41
Seredne geom radka 3:8.49
Seredne geom radka 4:-2.00
Suma = 111.89