Мне нужно
1) найти центр матрицы (7,7) и посчитать сумму нижнего треугольника.....как это сделать?
2)найти центр матрицы(5,5) и посчитать произведение левого бокового треугольника а правый треугольник заменить нулями.как найти эти треугольники?
middle := (n div 2) + 1;
for i := middle to n do
for j := 2 * middle - i to i do
s := s + a[i, j];
function min(a, b: integer): integer;
begin
min := a;
if b < a then min := b
end;
...
for i := 1 to n do
for j := 1 to min(i, n - i + 1) do begin
{ работаем с a[i, j] : элементами ЛЕВОГО треугольника }
end;
...
for i := 1 to 5 do
for j := n downto (n - min(i, n - i + 1)) + 1 do begin
{ работаем с a[i, j] : элементами ПРАВОГО треугольника }
end;
function min(a, b: integer): integer;
begin
min := a;
if b < a then min := b
end;
...
for i := 1 to n do
for j := 1 to min(i, n - i + 1) do begin
{ работаем с a[i, j] : элементами ЛЕВОГО треугольника }
end;
...
for i := 1 to 5 do
for j := n downto (n - min(i, n - i + 1)) + 1 do begin
{ работаем с a[i, j] : элементами ПРАВОГО треугольника }
end;
for j := 1 to (n div 2) + 1 do
for i := j to n - j + 1 do begin
p := p * a[i, j]; { Левый треугольник }
a[i, n - j + 1] := 0; { Правый треугольник }
end;
for j := 1 to (n div 2) + 1 do
for i := j to n - j + 1 do begin
p := p * a[i, j]; { Левый треугольник }
a[i, n - j + 1] := 0; { Правый треугольник }
end;
program xxx;
uses crt;
type
matrix= array[1..5,1..5] of integer;
var
f:matrix;
p:integer;
procedure input(var d:matrix;n,k:integer);
var
i,j:integer;
begin
clrscr;
randomize;
for i:=1 to n do begin
for j:=1 to k do
d[i,j]:=random(20);
end;
end;
procedure output(var d:matrix;n,k:integer);
var
i,j:integer;
begin
for i:=1 to n do begin
for j:=1 to k do
write(d[i,j]:4);
writeln;
end;
end;
function pr(var d:matrix;n,k:integer):integer;
var
i,j:integer;
p1:integer;
begin
p1:=1;
for j := 1 to (n div 2) + 1 do
for i := j to n - j + 1 do begin
p1 := p1 * f[i, j]; { Левый треугольник }
pr:=p1;
end; end;
begin
i nput(f,5,5);
writeln('matrix f');
output(f,5,5);
p:=pr(f,5,5);
writeln(p);
readln;
end.
function pr(var d:matrix;n,k:integer):integer;
var
i, j:integer;
p1:integer;
begin
p1:=1;
for j := 1 to (n div 2) + 1 do
for i := j to n - j + 1 do begin
p1 := p1 * f[i, j]; { <--- обращение к F здесь - первая ошибка }
pr:=p1; { <--- это вторая ошибка }
end;
end;
function pr(var d:matrix;n,k:integer):integer;
var
i, j:integer;
p1:integer;
begin
p1:=1;
for j := 1 to (n div 2) + 1 do
for i := j to n - j + 1 do begin
p1 := p1 * d[i, j];
d[i, n - j + 1] := 0;
end;
pr:=p1;
end;