Модульное программирование. Матрицы - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Даны две целые квадратные матрицы С и T порядка n. Если S – сумма элементов последней строки и последнего столбца матрицы T больше P – суммы аналогичных элементов матрицы C, то найти F = C + 2Tt, при иных – H = T + 5CТ, где TТ, СТ – транспонированные матрицы T и C соответственно. Пожалуйста помогите решить, с модулями вообще не дружу, а сдавать завтра уже(
помогите с кодом, ну не понимаю я модули

Решение задачи: «Модульное программирование. Матрицы»

textual
Листинг программы
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.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.857 из 5
Похожие ответы