Pascal, как изменить код программы которая высчитывает сумму всех элементов, до последнего положительного элемента(написать нужно не через break) вот код:
var n, p,i,k:integer;
m:array of real;
s:real;
begin
write('n');
readln(n);
setlength(m,n);
for i:=0 to n-1 do
m[i]:=random(21)-10;
for i:=0 to n-1 do
write(m[i]:8:2);
writeln;
for i:=n-1 downto 0 do
if m[i]>0 then
begin
k:=i;
break;
end;
for i:=0 to k do
s:=s+m[i];
writeln('Сумма элементов до последнего положительного элемента =', s);
var n, p,i,k:integer;
m:array of real;
s:real;
begin
write('n');
readln(n);
setlength(m,n);
writeln;
for i:=0 to n-1 do
begin
m[i]:=random(21)-10;
write(m[i]:8:2);
if m[i]>0 then k:=i;
end;
writeln;
S:=0
for i:=0 to k do
s:=s+m[i];
writeln('Сумма элементов до последнего положительного элемента =', s);
Объяснение:
Оптимизируем
for i:=0 to n-1 do
m[i]:=random(21)-10;
for i:=0 to n-1 do
write(m[i]:8:2);
Объединим и заставим сразу считать k
for i:=0 to n-1 do
begin
m[i]:=random(21)-10;
write(m[i]:8:2);
if m[i]>0 then k:=i;
end;
выкидываем
for i:=n-1 downto 0 do
if m[i]>0 then
begin
k:=i;
break;
end;
И вот еще не помню уже, но не будет лишним сделать S=0, может конечно при описании оно и становится 0, но лишним не будет. Нас учили так.