Народ помогите пожалуйста с решением следующей задачи:Дана квадратная вещественная матрица А порядка N,где N - заданное натуральное число.Найти произведение элементов матрицы,расположенных на двух диагоналях,параллельных главной и граничащих с ней Пожалуйста отзовитесь!И чем быстрее,тем лучше!На счету каждый час!
работа с диагоналями есть в FAQ. посмотри...
соответственно, одна из искомых диагоналей лежит на 1 выше, другая - на 1 ниже.
Все, что тебе нужно - здесь: http://forum.pascal.net.ru/index.php?s=&showtopic=3060&view=findpost&p=27331
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
type
mn=array[1..100,1..100] of real;
var i,n,j: integer;
a: mn;
s: real;
begin
s:=1;
writeln('BBodite razmer');
readln(n);
for i:=1 to n do
for j:=1 to n do
begin
Write('Bbedite element a[', i, ',', j, ']: ');
Readln(a[i,j])
end;
FOR i:=1 TO n-1 DO
begin
for j:=2 to n do
s:=s*a[i,j];
end;
for i:=2 to n do
begin
for j:=1 to n-1 do
s:=s*a[i,j];
end;
writeln(s);
readln;
end.
Element, это не произведение линий, параллельных диагоналям...
type
mn = array[1 .. 100, 1 .. 100] of real; { Хотя я бы этого не делал... }
var
i, n, j: integer;
a: mn;
s: real;
begin
s := 1;
writeln('BBodite razmer');
readln(n);
for i := 1 to n do
for j := 1 to n do begin
write('Bbedite element a[', i, ',', j, ']: ');
readln(a[i,j])
end;
for i := 1 to n - 1 do s := s * a[i, i + 1];
for i := 2 to n do s := s * a[i, i - 1];
writeln(s);
readln;
end.
type
mn = array[1 .. 100, 1 .. 100] of real; { Хотя я бы этого не делал... }
var
i, n, j: integer;
a: mn;
s: real;
begin
s := 1;
writeln('BBodite razmer');
readln(n);
for i := 1 to n do
for j := 1 to n do begin
write('Bbedite element a[', i, ',', j, ']: ');
readln(a[i,j])
end;
for i := 1 to n - 1 do s := s * a[i, i + 1];
for i := 2 to n do s := s * a[i, i - 1];
writeln(s);
readln;
end.