Найти сумму и произведение элементов матрицы, выполнить через процедуры — Pascal(Паскаль)

uses crt;
const n=6;
      m=5;
Type arr=array[1..n,1..m] of integer;
 
procedure Summa(a:arr; var s:integer);
var i,j:integer;
 begin
  s:=0;
   for i:=1 to n do
    for j:=1 to m do
     s:=s+a[i,j];
 end;
 
procedure Proiz(a:arr; var p:longint);
var i,j:integer;
 begin
  p:=1;
   for i:=1 to n do
    for j:=1 to m do
     p:=p*a[i,j];
 end;
 
var a:arr;
    i,j,sum:integer;
    pr:longint;
begin
ClrScr;
Randomize;
 for i:=1 to n do
  begin
   for j:=1 to m do
    begin
     a[i,j]:=random(4)+2;
     Write(a[i,j]:4);
    end;
   Writeln;
  end;
Writeln;
Summa(a,sum);
Writeln('Sum=',sum);
Proiz(a,pr);
Writeln('Pr=',pr);
Readln;
end.

Вариант 2

{$R-}
Program xa;
uses
  crt;
type
  TypeMas=longint;
  Tmas=^TTmas;
  TTmas=array [1..1] of TypeMas;
  massiv=^mas;
  mas=array [1..1] of Tmas;
 
procedure PrintMas(a:massiv;n:TypeMas);
var
  i,j:TypeMas;
begin
  for i:=1 to n do
  begin
    for j:=1 to n do
      Write(a^[i]^[j], ' ');
    writeln
  end;
  readkey
end;
 
var
  i,n,j:TypeMas;
  a:massiv;
begin
  clrscr;
  randomize;
  Write('Vvedute ra3mernoct'' massiva ');
  readln(n);
  Getmem(a,sizeof(mas)*n); {выделение памяти под массив указателей на массив строк строк}
  for i:=1 to n do
    Getmem(a^[i],sizeof(mas)*n); {выделение памяти под сам строки}
  Writeln('Vvedute matpuL/y');
  for i:=1 to n do
    for j:=1 to n do
    begin
      {Write('A[' ,i, ',' ,j, ']= ');
      readln(a^[i]^[j]);}
      a^[i]^[j]:=random(1000);
    end;
  clrscr;
  writeln('NaLLIa matpuL/a:');
  printmas(a,n);
  for i:=1 to n do
    freemem(a^[i],sizeof(mas)*n);
  freemem(a,sizeof(mas)*n);
end.
{$R+}

Leave a Comment

− 1 = 5