Обчислення матриць

Інформація про навчальний заклад

ВУЗ:
Вінницькій національний технічний університет
Інститут:
Не вказано
Факультет:
інформаційних технологій та комп ютерної інженерії
Кафедра:
КН

Інформація про роботу

Рік:
2016
Тип роботи:
Лабораторна робота
Предмет:
Алгоритмізація та програмування

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Вінницький національний технічний університет Факультет інформаційних технологій і комп'ютерної інженерії Кафедра комп'ютерних наук Лабораторна робота №7 з дисципліни: "Алгоритмізація та програмування" Тема: обчислення матриць   Хід роботи: Транспонування та множення матриць Код програми: uses crt; const max=20; type Tmatr=array[1..max,1..max] of integer; procedure Vvod(var mt:Tmatr;var n:byte); var i,j:byte; begin for i:=1 to n do for j:=1 to n do mt[i,j]:=random(100)+1; end; procedure Vyvod(var m:Tmatr;n:byte;c:string); var i,j:byte; begin writeln(c,':'); for i:=1 to n do begin for j:=1 to n do write(m[i,j]:5); writeln; end; writeln; end; procedure Trans(m1:Tmatr;n:byte; var m2:Tmatr); var i,j:byte; begin for i:=1 to n do for j:=1 to n do m2[i,j]:=m1[j,i]; end; procedure UmnMatr(m1,m2:Tmatr;n:byte;var m:Tmatr); var i,j,k:byte; begin for k:=1 to n do for j:=1 to n do begin m[k,j]:=0; for i:=1 to n do m[k,j]:=m[k,j]+m1[k,i]*m2[i,j]; end; end; var a,a1,b,b1,c,m1,m2:Tmatr; n:byte; begin clrscr; randomize; repeat write('Розмірність матриці до ',max,'='); readln(n); until n in [1..max]; Vvod(a,n); Vvod(b,n); Vyvod(a,n,'Матриця A'); Vyvod(b,n,'Матриця B'); UmnMatr(a,b,n,m1); Vyvod(m1,n,'Матриця M1=A*B'); write('Press Enter...'); readln; clrscr; Trans(a,n,a1); Trans(b,n,b1); Vyvod(a1,n,'Транспонована матриця А - A1'); Vyvod(b1,n,'Транспонована матриця В - B1'); UmnMatr(a1,b1,n,m2); Vyvod(m2,n,'Матриця M2=A1*B1'); write('Press Enter...'); readln; end. / / Сума елементів побічної діагоналі Код програми: type type_arr = array[1..10, 1..10] of byte; var arr: type_arr; i, j: byte; sum: byte; function diagonal (arr1: type_arr): byte; var sum1: byte; i, j: byte; begin sum1 := 0; j:= 10; for i:=1 to 10 do begin sum1 := sum1 + arr1[i][j]; j := j-1; end; diagonal := sum1; end; begin randomize; for i:=1 to 10 do begin for j:=1 to 10 do begin arr[i,j] := random(10); write(arr[i,j], ' '); end; writeln; end; sum := diagonal(arr); writeln('_________________'); writeln('Сума елементів побічної діагоналі:', sum); readln; end. / Сума елементів над головною діагоналлю Код програми: const nmax=50; var a:array[1..nmax,1..nmax]of integer; n,i,j,kol,sum:integer; begin randomize; repeat write('0<n<50 n='); readln(n); until(n>0)and(n<50); kol:=0; sum:=0; for i:=1 to n do begin for j:=1 to n do begin a[i,j]:=random(45); write(a[i,j]:4); if (j>i)and(a[i,j]>0) then begin kol:=kol+1; sum:=sum+a[i,j]; end; end; writeln end; Writeln('____________'); writeln(); writeln('kol=',kol); writeln('sum=',sum); writeln(); writeln('Press Enter...'); readln; end. / Сума елементів під головною діагоналлю Код програми: const nmax=50; var a:array[1..nmax,1..nmax]of integer; n,i,j,kol,sum:integer; begin randomize; repeat write('0<n<50 n='); readln(n); until(n>0)and(n<50); kol:=0; sum:=0; for i:=1 to n do begin for j:=1 to n do begin a[i,j]:=random(45); write(a[i,j]:4); if (j<i)and(a[i,j]>0) then begin kol:=kol+1; sum:=sum+a[i,j]; end; end; writeln end; Writeln('____________'); writeln(); writeln('kol=',kol); writeln('sum=',sum); writeln(); writeln('Press Enter...'); readln; end. / Виведення елементів матриці в певному порядку (кутиками) Код програми: uses crt; var a:array[1..100,1..100] of integer; i,n,j,k:integer; s:char; begin clrscr; writeln('Vvedite n '); readln(n); writeln('Zapolnit sluchayno y/n '); s:=readkey; randomize; if (s='y') or(s='Y') then for i:=1 to n do for j:=1 to n do a[i,j]:=random(50)+1 else for i:=1 to n do for j:=1 to n do readln(a[i,j]); for i:=1 to n do begin for j:=1 to n do write(a[i,j],' '); writeln; end; i:=0; repeat i:=i+1; for j:=1 to n-i do write(a[i,j],' '); for k:=i to n do write(a[k,n-i+1],' '); until(i>=n); readln; end. /
Антиботан аватар за замовчуванням

15.02.2017 17:02-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!