Сформировать одномерные массивы А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.

Объяснение кода листинга программы

  1. Объявлены две матрицы a и b типа matr и две переменные-массива a1 и b1 типа mass.
  2. В функции matrix происходит заполнение матрицы a случайными числами от -10 до 10 и выводится на экран.
  3. В функции massiv происходит заполнение массива b элементами главной диагонали матрицы a и выводится на экран.
  4. В основной программе вызываются функции matrix и massiv для формирования матрицы a и массивов a1 и b1.
  5. После выполнения всех функций программа ожидает ввода пользователя для завершения работы.

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


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

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

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