Модульное программирование. Матрицы - Pascal ABC
Формулировка задачи:
Решение задачи: «Модульное программирование. Матрицы»
unit matrix; interface uses crt; const nmax=20; type mas=array[1..nmax,1..nmax] of integer; var n:integer; procedure Vvod(var a:mas;c:char); procedure Vyvod(a:mas;s:string); function Summa(a:mas):integer; procedure Trans(a:mas;var at:mas); procedure slozenie(a,b:mas;var c:mas;k:integer); implementation {задание элементов матриц} procedure Vvod(var a:mas;c:char); var i,j:integer; begin writeln('Введите элементы массива ',c,' целые числа:'); for i:=1 to n do for j:=1 to n do begin write('el[',i,',',j,']='); readln(a[i,j]); end; clrscr; end; {вывод матриц на экран} procedure Vyvod(a:mas;s:string); var i,j:integer; begin writeln(s); for i:=1 to n do begin for j:=1 to n do write(a[i,j]:4); writeln; end; end; {сумма последней строки и последнего столбца} function Summa(a:mas):integer; var i,j,s:integer; begin s:=0; for i:=1 to n do s:=s+a[n,i]+a[i,n]; s:=s-a[n,n];{вычтем последний, он 2 раза} Summa:=s; end; {получение транспонированной матрицы} procedure Trans(a:mas;var at:mas); var i,j:integer; begin for i:=1 to n do for j:=1 to n do at[i,j]:=a[j,i]; end; {сложение 1 матрицы со 2, умноженной на константу} procedure slozenie(a,b:mas;var c:mas;k:integer); var i,j:integer; begin for i:=1 to n do for j:=1 to n do c[i,j]:=a[i,j]+k*b[i,j]; end; end.
Объяснение кода листинга программы
unit matrix; interface uses crt; const nmax=20; type mas=array[1..nmax,1..nmax] of integer; var n:integer; procedure Vvod(var a:mas;c:char); var i,j:integer; begin writeln('Введите элементы массива ',c,' целые числа:'); for i:=1 to n do for j:=1 to n do begin write('el[',i,',',j,']='); readln(a[i,j]); end; clrscr; end; procedure Vyvod(a:mas;s:string); var i,j:integer; begin writeln(s); for i:=1 to n do for j:=1 to n do begin write(a[i,j]:4); writeln; end; end; function Summa(a:mas):integer; var i,j,s:integer; begin s:=0; for i:=1 to n do s:=s+a[i,i]+a[i,n]; s:=s-a[n,n];{вычтем последний, он 2 раза} Summa:=s; end; procedure Trans(a:mas;var at:mas); var i,j:integer; begin for i:=1 to n do for j:=1 to n do at[i,j]:=a[j,i]; end; end; procedure slozenie(a,b:mas;var c:mas;k:integer); var i,j:integer; begin for i:=1 to n do for j:=1 to n do c[i,j]:=a[i,j]+k*b[i,j]; end; end.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д