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