Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Національний технічний університет України
“Київський політехнічний інститут”
Кафедра ОТ
ЗВІТ
про виконання лабораторної роботи № 5_2
з дисципліни
“Основи програмування та алгоритмічні мови”
Тема: Багатовимірні масиви (матриці)
Постановка задачі
Для заданих дійсних квадратних матриць A [n x n] та B [n x n] визначити середнє арифметичне їх М-норм, які обчислюються за формулою
Текст програми з коментарями
uses crt; {biblioteka}
const n=5; {razmernostb massivov n*n}
rand=100; {diapozon randomnix chisel}
type mas=array[1..n,1..n]of real; {tip dvumernix matric dlya procedur}
var a,b:mas; {zadannie matrici po usloviy}
il,ik:integer; {zapominaut pozicii I stroki s max_M_normoy}
k,l:real; {max_M_normu dlya matric A i B sootvetstvenno}
procedure vvod(var m:mas); (*zapolnyaem massiv*)
var i,j:integer;
begin
for i:=1 to n do
for j:=1 to n do
m[i,j]:=random*2*rand-rand;
end;
function summa(m:mas; p:integer):real; (*vichislyaem M_normi Itoy stroki*)
var s:real; {s-summa}
j:integer;
begin
s:=0;
for j:=1 to n do
s:=s+abs(m[p,j]);
summa:=s;
end;
procedure norma(m:mas; var index_max:integer; var max:real);
{m-massiv; ir=ik/il-poziciy I stroki; r=k/l-Max M_normu}
var c:array [1..n] of real; {c-massiv M_norm}
i:integer;
begin
for i:=1 to n do
c[i]:=summa(m,i);
index_max:=n;
max:=c[1];
for i:=1 to n do
if c[i]>max
then
begin
max:=c[i];
index_max:=i;
end;
end;
procedure vivod(m:mas;index_max:integer); (*vivodim massiv*)
var i,j:integer;
begin
for i:=1 to n do
begin
if index_max=i
then textcolor(7);
for j:=1 to n do
write(m[i,j]:7:2);
writeln;
textcolor(white);
end;
end;
BEGIN
repeat
clrscr;
writeln('Result of laboratory work 5_2');
writeln('variant 4');
writeln('Executed student of group IP-02 Bondur Vladislav');
randomize;
vvod(a);
vvod(b);
norma(a,ik,k);
norma(b,il,l);
writeln('dlya matric "a" i "b"');
writeln('gde matrica "a" imeet vid:');
vivod(a,ik);
writeln('i matrica "b":');
vivod(b,il);
write('polychaem crednee arifmeticheskoe ix M-norm = ');
textcolor(red);
writeln((k+l)/2:10:3);
textcolor(white);
writeln('dlya vixoda nagmite Esc')
until ord(readkey)=27
END.
Блок-схема алгоритму
Результат виконання програми у вигляді відеокопії екрана
/
Висновки
Перевіримо, чи правильно працює моя програма:
Після ряду обчислень отримуємо наступні М-норми:
1 матриця: 258.74; 380.23; 148.46; 274.55; 170.17.
2 матриця: 283,58; 230,54; 324,47; 259,29; 216,67
Отже, в масиві А найбільша М-норма другої строки і дорівнює 380,23, а в масиві В: 3 строчка 324,47
Їх середнє арифметичне дорівнює 352,35
Як бачимо, результат програми співпав з результатами моїх обчислень.