Сформировать одномерные массивы А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.
- После выполнения всех функций программа ожидает ввода пользователя для завершения работы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д