Другие языки программирования и технологии

Помогите составить программу на языке Pascal

Вычислить произведение отрицательных элементов, находящихся на побочной диагонали и выше ее. В задаче задается квадратная матрица NxN. Программа должна осуществлять ввод и печать исходной матрицы и возможно, дополнительных данных, произвести необходимые действия и напечатать результаты.
const
n = 5;
var
a: array [1..n,1..n] of integer;
i,j: integer;
p: real;
begin
randomize;
writeln('a: ');
for i := 1 to n do begin
for j := 1 to n do begin
a[i,j] := random(21) - 10;
write(a[i,j]:4)
end;
writeln
end;
p := 1;
for i := 1 to n do
for j := 1 to n - i + 1 do
if a[i,j] < 0 then
p := p * a[i,j];
writeln('p: ', p:1:0)
end.
M[
Meyrzhan [Id161453458]
64 084
Лучший ответ
пиши в агент или на мыло
Jack Qwerty
Jack Qwerty
8 247
program twoin;
uses crt;
const
M = 10;
N = 10;
type Matrix = array [ 1..M, 1..N ] of integer;
procedure FillMatrixByRandom(var a: Matrix);
var
i,j:integer;
begin
for i := 1 to M do
for j := 1 to N do
a [ i,j ] := 5 - Random(10);
end;

procedure PrintMatrix(const a: Matrix);
var
i,j:integer;
begin
for i := 1 to M do
begin
for j := 1 to N do
write(a [ i,j ] : 4);
writeln;
end;
writeln;
end;
var
a: Matrix;
i,j: integer;
prod:longint;
begin
clrscr;
FillMatrixByRandom(a);
writeln('Source : ');
PrintMatrix(a);
prod := 1;
for j := 1 to M do
begin
for i := 1 to N-j+1 do
begin

if(a [ j, i ] < 0) then
begin
prod :=prod * a [ j, i ] ;
write(a [ j, i ] : 4);
end
else
write('':4);
end;
writeln;
end;
writeln('Product : ',prod);
readln;
end.
примерно так:
begin;
readln(n);
for i:=1 to n do begin
for j:=1 to n do begin
read(a[i,j]); write(' ');
end;
writeln;
end;
s:=1;
for i:=1 to n do
for j:=1 to n do
if i+j-1<=n and a[i,j]<0 then s:=s*a[i,j];
writeln(s);
readkey;
end;