Другие языки программирования и технологии

проверьте задачу по программированию

(дана последовательность целых чисел x1,x2....xn(n0 then
s:=s+pr;
writeln ('cумма произведений = ',s);
end.

проверьте есть ли ошибки и правильно ли я написал программу заранее спасибо.
UK
Umnik Keneshbaev
200
Предыдущий ответ нужно поправить:

const MaxN = 15; по условию n заранее не известен, но не превосходит 15
var Mas : array [1..MaxN] of integer;
N, i, P, S : integer;
begin
Write('Введите значение N (<= ', MaxN, ') : '); ReadLn(N);
if (N < 1) or (N > MaxN) then begin WriteLn('Ошибка! '); Halt; end;
Randomize;
for i := 1 to N do begin Зачем два цикла, когда можно обойтись одним?
Mas[ i ] := Random(31) - 15;
WriteLn('Mas[', i ,'] = ', Mas[ i ]);
end;
WriteLn;
P := 1;
S := 0;
i := 1;
while (i <= N) and (Mas[ i ] >=0) do Условие окончания цикла: в массиве может и не быть отрицательных значений
begin
P := P * Mas[ i ]; S := S + P; Inc( i );
end;
WriteLn('Cумма произведений = ', S);
WriteLn('Нажмите ENTER для выхода из программы.. . '); ReadLn; Типичное поведение недопрограмм: что-то напечаталось и программа встала в ожидании чуда.. . Пользователю нужно сказать что от него требуется!
end.
Алексей Роговский
Алексей Роговский
66 572
Лучший ответ
program kr_mas;
const
n=7;
var
mas :array [1..n] of integer;
i, p, pr, s, m : integer;
begin
randomize;
for i:=1 to n do
mas[ i ]:= - 15 + random (31);
for i:=1 to n do
writeln( 'mas [',i,']=',mas[ i ]);
writeln;
p:=1;
s:=0;
i:=1;
while mas[ i ] >=0 do
begin
p:=p*mas[ i ];
s:=s+p;
inc(i);
end;
writeln ('cумма произведений = ',s);
readln;
end.
Ефим Архипов
Ефим Архипов
4 967