
не могу код сюда написать... глючит...((( если кто смолет помочь - могу в личку код кинуть(

program progr1;
var matr:array [1..100,1..100] of real;
a:real;
i,j,k,N:integer;
begin
write('N? '); readln(N);
//заполним матрицу случайными числами
randomize;
for i:=1 to N do
for j:=1 to N do
matr[ i, j ]:=random*10-5;
//выведем матрицу на экран
for i:=1 to N do
begin
for j:=1 to N do
write(matr[ i, j ]:4:2,' ');
writeln;
end;
writeln;
//строим искомую последовательность и выводим ее на экран
for i:=1 to N do
begin
for j:=1 to N do
if i=j then //если элемент лежит на главной диагонали
if matr[ i, j ] < 0 then //если элемент отрицателен
begin //считаем сумму полож. элементов строки
a:=0;
for k:=1 to N do
if matr[ i, k ]>0 then a:=a+matr[ i, k ];
end
else //иначе
begin //считаем произведение отриц. элементов строки
a:=1;
for k:=1 to N do
if matr[ i, k ] < 0 then a:=a*matr[ i, k ];
end;
write(a:4:2,' '); //выводим найденный элемент последовательности
end;
readln;
end.
Можно элементы последовательности пихать в одномерный массив, но надо ли. С ними же больше не работать.
Что конкретно не работает? Очень лень компилить всю программу в уме
Доброго времени суток.
Так считаеnся сумма положительных элементов i-й строки.
S := 0;
for j:=1 to n do if A[i,j] > 0 then S := S + A[i,j];
Так находится произведение отрицательных элементов.
P := 1;
for j:=1 to n do if A[i,j] < 0 then P := P * A[i,j];
Матрицу вы вроде правильно вводите, а дальше надо анализировать элементы главной диагонали
for i:=1 to n do begin
if a[i,i] < 0 then begin
{находим сумму положительных элементов и записываем ее в массив b}
end
else begin
{находим произведение отрицательных элементов и записываем его в массив b}
end;
end;
Вот и все.
Удачи!
Пишу на пяти языках, но с настолько детскими задачками к сожалению не смогу помочь.. .
Только что-нибудь серьезное.. .