Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти та науки України
Національний університет
«Львівська політехніка»
Звіт
про виконання практичної роботи №3
Мета: навчитись впорядковувати елементи рядків матриць за допомогою мови програмування Turbo Pascal.
Завдання:
Впорядкувати елементи матриці за спаданням їх значень методом вставки;
Умова:
12 46 -23 72 -5
59 7 -8 0 67
7 -8 -4 -97 -55
77 -1 -5 34 -8
0 22 27 24 24
F(a) – середнє арифметичне значення елементів у кожному стовпці над допоміжною діагоналлю матриці; F(f(a)) – середнє геометричне значення добуток f(a).
Блок-схеми:
Процедура “Wwid”
Процедура “Wywid”
Процедура “Sort”
Функція “Ser_Ar”
Функція “F”
Програма
Текст програми:
Program lab_3;
uses crt;
const
n=3;
type
rjadok=array [1..n] of real;
matrix=array [1..n] of rjadok;
var
A: matrix;
var z:real;
i:integer;
procedure wwid(var A : matrix);
var
i,j:integer;
begin
for i:=1 to n do
for j:=1 to n do
begin
Write('a[',i,'][',j,']=');
Readln(a[i,j]);
end;
end;
procedure wywid(A : matrix);
var
i,j:integer;
begin
for i:=1 to n do
begin
for j:=1 to n do
write(a[i,j]:10:3);
writeln('');
end;
readln;
end;
procedure sort(var A: matrix);
var
i,j,k:integer;
temp:real;
begin
for i:=1 to n do
begin
for j:=2 to n do
begin
temp:=A[i,j];
k:=j-1;
while((k>0) and (A[i,k]<temp)) do
begin
A[i,k+1]:=A[i,k];
k:=k-1;
end;
A[i,k+1]:=temp;
end;
end;
end;
function Ser_Ar(x:integer):real;
var
i:integer;
y:real;
begin
y:=0;
if(x<>n) then
begin
for I:=1 to (n-x) do y:=a[i,x]+y;
y:=y/(n-x);
writeln('Ser arufmetchne dlya stovpchuka ',x,'=',y:0:3);
end
else writeln('ostannij stowpchyk');
Ser_Ar:=y;
end;
function F:real;
var
temp,y:real;
i:integer;
begin
temp:=1;
for i:=1 to n-1 do
begin
y:=Ser_Ar(i);
temp:=temp*y;
end;
F:=temp;
writeln('Dobutok :');
end;
begin
clrscr;
wwid(A);
wywid(A);
sort(A);
writeln;
wywid(A);
writeln;
writeln(F:0:3);
end.
Результат виконання програми:
72 46 12 -5 -23
67 59 7 0 -8
7 -4 -8 -55 -97
77 34 -1 -5 -8
27 24 24 22 0
Ser_Ar 1 = 55.750
Ser_Ar 2 = 33.667
Ser_Ar 4 = -5.000
Dobutok: -89753.542