Сформировать одномерные массивы А1 и B1 из элементов главных диагоналей матриц А и B - Free Pascal
Формулировка задачи:
Подпрограммы.
Даны две квадратные матрицы:A размером 6х6 и B размером 10х10. Сформировать одномерные массивы А1 и B1 из элементов главных диагоналей матриц А и B.
(я глупый хлебушек в программировании, сильно не ругайте)
Program tlen2;
const nmax=6; mmax=10;
type matr1=array[1..nmax,1..mmax] of integer;
matr2=array[1..nmax,1..mmax] of integer;
procedure matrix1(var a:matr1; var n,m:integer; c:char);
var i,j:integer;
begin
writeln('matrix',c);
repeat
write('кол. строк',nmax,'n=');
readln(n);
until n in [6..nmax];
repeat
write('кол. столбцов',nmax,'n=');
readln(m);
until m in [6..nmax];
for i:=1 to n do begin
for j:=1 to m do begin
a[i,j]:=random(50)-10;
write(a[i,j]:4);
end;
writeln;
end;
end;
procedure matrix2 (var a:matr2;var n,m:integer;c:char);
var
i,j:integer;
begin
writeln('matrix',c);
repeat
write('кол. строк',mmax, ' m=');
readln(n);
until n in [ 10..mmax];
repeat
write('кол. столбцов ',mmax,' m=');
readln(m);
until m in [10..mmax];
for i:=1 to n do begin
for j:=1 to m do begin
a[i,j]:= random(60)+10;
write(a[i,j]:4);
end;
writeln;
end;
end;
function sd1 (a:matr1; n,m:integer):integer;
var
i,j:integer;
begin
for i:=1 to n do
write(a[i,i]:4);
end;
function sd2(a:matr2; n,m:integer):integer;
var
i,j:integer;
begin
for i:=1 to n do
write(a[i,i]:4);
end;
var
a:matr1; b:matr2;
na,ma,nb,mb,s,p:integer;
begin
matrix1(a,na,ma, 'A');
s:=sd1(a,na,ma);
writeln('massiv 1' , s:4);
matrix2(b,nb,mb, 'B');
p:=sd2(b,nb,mb);
writeln('massiv 2' ,p:4);
end.Решение задачи: «Сформировать одномерные массивы А1 и B1 из элементов главных диагоналей матриц А и B»
textual
Листинг программы
uses crt;
const n=6;
m=10;
type matr=array[1..m,1..m] of integer;
mass=array[1..m] of integer;
procedure matrix(var a:matr; x:integer; c:char);
var i,j:integer;
begin
writeln('matrix',c);
for i:=1 to x do
begin
for j:=1 to x do
begin
a[i,j]:=-10+random(50);
write(a[i,j]:4);
end;
writeln;
end;
end;
procedure massiv(a:matr;x:integer;var b:mass;s:string);
var i:integer;
begin
writeln('Massiv ',s);
for i:=1 to x do
begin
b[i]:=a[i,i];
write(b[i]:4);
end;
writeln;
end;
var a,b:matr;
a1,b1:mass;
begin
clrscr;
randomize;
matrix(a,n,'A');
massiv(a,n,a1,'A1');
matrix(b,m,'B');
massiv(b,m,b1,'B1');
readln
end.
Объяснение кода листинга программы
- Объявлены две матрицы a и b типа matr и две переменные-массива a1 и b1 типа mass.
- В функции matrix происходит заполнение матрицы a случайными числами от -10 до 10 и выводится на экран.
- В функции massiv происходит заполнение массива b элементами главной диагонали матрицы a и выводится на экран.
- В основной программе вызываются функции matrix и massiv для формирования матрицы a и массивов a1 и b1.
- После выполнения всех функций программа ожидает ввода пользователя для завершения работы.