ДАЮ 40 БАЛЛОВ!!!Найти сумму отрицательных элементов ** побочной диагонали матрицы А(8,8),...

0 голосов
33 просмотров
ДАЮ 40 БАЛЛОВ!!!
Найти сумму отрицательных элементов на побочной диагонали матрицы А(8,8), а также произведение ненулевых элементов в области выше главной диагонали. На Паскале.


Первая часть выглядит так
Program zadanie_4;
Const n=8; m=8;
Var x: Array[1..n,1..n] of Integer; i,j,s: Integer;
BEGIN
Randomize;
Writeln('Случайная матрица:');
For i:=1 to n dobegin
For j:=1 to m do begin
x[i,j]:=Random(51)-25;
Write(x[i,j]:5);
end;
Writelnend;s := 0;
for i:=1 to n do if x[i,N-i+1] < 0 then s:=s+x[i,N-i+1];
writeln('Сумма отрицательных элементов побочной диагонали = ',s);
Readln
END.

Помогите со второй частью

Информатика (15 баллов) | 33 просмотров
0

Лгунишка. Зачем писать про 40 баллов, когда видно, что их 5 ?

Дан 1 ответ
0 голосов
Правильный ответ

что-то типа этого:

const n = 8, m = 8;
var
    A: array[1..n,1..m] of integer;
    i, j, sum, product: integer;
    isnotnull: boolean;
begin
    randomize;
    writeln('Случайная матрица:');
    for i:=1 to n do begin
        for j:=1 to m do begin
            A[i,j] := random(51) - 25;
            write(A[i,j]:5);
        end;
        writeln;
    end;
    sum := 0;
    for i:=1 to n do
        if A[i,n-i+1] < 0 then
            sum := sum + A[i,n-i+1];
    writeln('Сумма отрицательных элементов побочной диагонали = ', sum);
    product := 1;
    isnotnull := False;
    for i:=1 to n-1 do
        for j:=2 to n do
            if (j > i) and (A[i,j] <> 0) then begin
                isnotnull := True;
                product := product * A[i,j];
            end;
    if isnotnull
        writeln('Произведение ненулевых элементов в области выше главной диагонали = ', product)
    else
        writeln('Ненулевых элементов в области выше главной диагонали нет.', product);
    readln;
end.

(218 баллов)