Дана вот такая процедура, вычисляющая сумму положительных элементов каждой строки. Но необходимо избавиться от write(...) в этой процедуре.
а ты бы в основную программу что-нибудь возвращал...
сумму одной строки, например. а подпрограмму вызывал в цикле.
или вектор сумм.
Я не могу понять, как это организовать нужно. Сумма динамическая. Нужно делать два цикла и процедуре и в основной программе? Помогите плиз. очень надо
procedure summa (mx:PDynMatrix;c1:integer;c2:integer;VAR s:integer);
begin
...
end;
Я понимаю, что немного некорректно выразился...В общем, эта процедура вычисляет сумму элементов каждой строки матрицы. Т.е. понятно, что нужно будет вызывать ее в цикле. Неужели в этом случае нельзя обойтись без циклов в каком-то месте (в подпрограмме или в осн.программе)?
procedure summa(mx: PDynMatrix; c1, c2: integer; var s: array of integer);
var i, j: integer;
begin
for i:=1 to c1 do begin
s[pred(i)] := 0;
for j := 1 to c2 do
if mx^[I]^[J]>0 then s[pred(i)]:=s[pred(i)]+mx^[I]^[J]
end;
end;
var
vec: array[1 .. 10] of integer;
begin
...
summa(a, n, m, vec);
{ Цикл - не для вычисления, а только чтобы распечатать результаты }
for i := 1 to n do
writeln('Сумма положительных элементов ', i, '-ой строки = ', vec[i]);
...
end.
Весьма благодарен...
...
vec: array[1 .. 10] of integer;
for i:=1 to c1 do begin
s[pred(i)] := 0;
...
Неверное так не надо.
Malice, ты с открытыми массивами встречался? Индексация ВСЕГДА с нуля, им по барабану, как описана сама переменная... Хоть так:
Var
vec: array[-100 .. 199] of Integer;
Var
vec: array[100 .. 400] of Integer;
Неа, не встречался, поэтому "наверное" и написал.