Бесит уже , помогите найти ошибку. Вроде все правильно, не понимаю, почему не работает. Задание: произведение чисел до первого введенного нуля.
var
S:REAL;
I,N,A:INTEGER;
BEGIN
S:=1;
I:=1;
a:=1;
while a=0dobegin
READLN(A);
S:=A*s;
I:=I+1;
end;
WRITELN('proizvedenie ravno ',S);
END.
andriano
11.10.2009 14:11
Ты сначала присваиваешь переменной "a" единицу, а затем сразу начинаешь цикл, который будет выполняться лишь при условии, что a=0. Т.о. цикл не выполнится ни одного раза. Советую либо заменить условие на a<>0, либо заменить конструкцию циклом типа repeat.
PS. Еще могу посоветовать оформлять код "лесенкой", а то очень трудно читать.
RathaR
11.10.2009 15:02
Цитата(Вячеслав Людской @ 11.10.2009 9:55)
Бесит уже , помогите найти ошибку. Вроде все правильно, не понимаю, почему не работает. Задание: произведение чисел до первого введенного нуля.
var
S:REAL;
I,N,A:INTEGER;
BEGIN
S:=1;
I:=1;
a:=1;
while a=0dobegin
READLN(A);
S:=A*s;
I:=I+1;
end;
WRITELN('proizvedenie ravno ',S);
END.
И если у тебя цыкл идёт по параметру a, то зачем тебе І? И к чему присваивать ей еденицу, и увеличивать при каждом прохождении цыкла...
Lapp
11.10.2009 19:01
Цитата(RathaR @ 11.10.2009 12:02)
если у тебя цыкл идёт по параметру a, то зачем тебе І?
Я думаю, что это типа подсчет количества введенных чисел, сделан для типа в расчете на будущее применение. В нем нет никакого вреда, главное - то, о чем сказал andriano выше (неверное применение условия в цикле while).
Вячеслав Л.
11.10.2009 19:53
Ага, спасибо, я исправил получилось вот так:
var
a,s:integer;
BEGIN
s:=1;
repeat
READLN(A);
if a=0then writeln('proizvedenie pavno ',S) else S:=A*s;
until a=0;
END.
Цитата
Я думаю, что это типа подсчет количества введенных чисел, сделан для типа в расчете на будущее применение.
Lapp, ты слишком высокого обо мне мнения , i просто тут оказалось случайно, так как начало было скопировано из другой программы
Цитата
PS. Еще могу посоветовать оформлять код "лесенкой", а то очень трудно читать.
За совет спасибо, буду стараться писать лесенкой.
Lapp
11.10.2009 20:06
Цитата(Вячеслав Людской @ 11.10.2009 16:53)
i просто тут оказалось случайно, так как начало было скопировано из другой программы
Копипастить - моветон)). Нет большего вреда, чем от него при обучении. Пиши сам ручками, даже если и переписываешь. Научишься на порядок быстрее.
Вячеслав Л.
13.10.2009 19:29
Цитата
Копипастить - моветон)). Нет большего вреда, чем от него при обучении. Пиши сам ручками, даже если и переписываешь. Научишься на порядок быстрее.
Ладно, буду знать.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.