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);

milashkaaidanocka milashkaaidanocka    2   02.01.2022 21:53    0

Ответы
LORDytGucci LORDytGucci  15.02.2022 11:27

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, но лишним не будет. Нас учили так.

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика