ответ:
uses crt;
var a: array[1..20,1..20] of real;
n,m,i,j: integer;
s: real;
begin
clrscr; randomize;
write('введите кол-во строк: '); readln(n);
write('введите кол-во столбцов: '); readln(m);
for i: =1 to n do
begin
for j: =1 to m do
begin
a[i,j]: =random(100)/10;
write(a[i,j]: 4: 1);
end;
writeln;
end;
for i: =1 to n do
begin
s: =0;
for j: =1 to m do
s: =s+a[i,j];
writeln('сумма ',i,'-ой строки: ',s: 0: 1);
end;
for j: =1 to m do
begin
s: =0;
for i: =1 to n do
s: =s+a[i,j];
writeln('сумма ',j,'-ого столбца: ',s: 0: 1);
end;
for j: =1 to m do
begin
s: =0;
if j mod 2 = 0 then
begin
for i: =1 to n do
s: =s+a[i,j];
writeln('среднее арифметическое ',j,'-ого столбца: ',s/m: 0: 1);
end;
end;
readln;
end.
объяснение:
Для стека:
const
MAX_SIZE = 100;
var
size, n: integer;
stack: array[1..MAX_SIZE] of integer;
procedure push(a: integer);
begin
inc(size);
stack[size] := a;
end;
procedure view;
var
i: integer;
begin
for i := 1 to size do
write(stack[i], ' ');
writeln;
end;
Для очереди:
const
MAX_SIZE = 100;
var
head, tail: integer;
queue: array[1..MAX_SIZE] of integer;
procedure push(a: integer);
begin
queue[tail] := a;
inc(tail);
end;
procedure view;
var
i: integer;
begin
for i := head to tail - 1 do
write(queue[i], ' ');
writeln;
end;
Объяснение:
Можно лучший , и учи C++