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+}