IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Произведение чисел до первого введенного нуля
сообщение
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 227
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  3  +


Бесит уже wacko.gif , помогите найти ошибку. Вроде все правильно, не понимаю, почему не работает. Задание: произведение чисел до первого введенного нуля.
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.


--------------------
Само знание есть сила
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Ты сначала присваиваешь переменной "a" единицу, а затем сразу начинаешь цикл, который будет выполняться лишь при условии, что a=0. Т.о. цикл не выполнится ни одного раза.
Советую либо заменить условие на a<>0, либо заменить конструкцию циклом типа repeat.

PS. Еще могу посоветовать оформлять код "лесенкой", а то очень трудно читать.

Сообщение отредактировано: andriano -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Знаток
****

Группа: Пользователи
Сообщений: 346
Пол: Мужской
Реальное имя: Иван

Репутация: -  7  +


Цитата(Вячеслав Людской @ 11.10.2009 9:55) *

Бесит уже wacko.gif , помогите найти ошибку. Вроде все правильно, не понимаю, почему не работает. Задание: произведение чисел до первого введенного нуля.
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, то зачем тебе І? И к чему присваивать ей еденицу, и увеличивать при каждом прохождении цыкла...

Сообщение отредактировано: RathaR -


--------------------
Считающий себя единственым здравомыслящим человеком сумасшедший? Если да, возможно я псих...
Пусть умолкнет всякий критик!
Я - системный аналитик!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(RathaR @ 11.10.2009 12:02) *
если у тебя цыкл идёт по параметру a, то зачем тебе І?
Я думаю, что это типа подсчет количества введенных чисел, сделан для типа в расчете на будущее применение. В нем нет никакого вреда, главное - то, о чем сказал andriano выше (неверное применение условия в цикле while).


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Бывалый
***

Группа: Пользователи
Сообщений: 227
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  3  +


Ага, спасибо, я исправил получилось вот так:
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, ты слишком высокого обо мне мнения lol.gif , i просто тут оказалось случайно, так как начало было скопировано из другой программы smile.gif

Цитата
PS. Еще могу посоветовать оформлять код "лесенкой", а то очень трудно читать.
За совет спасибо, буду стараться писать лесенкой.


--------------------
Само знание есть сила
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Вячеслав Людской @ 11.10.2009 16:53) *
i просто тут оказалось случайно, так как начало было скопировано из другой программы smile.gif
Копипастить - моветон)). Нет большего вреда, чем от него при обучении. Пиши сам ручками, даже если и переписываешь. Научишься на порядок быстрее.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Бывалый
***

Группа: Пользователи
Сообщений: 227
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  3  +


Цитата
Копипастить - моветон)). Нет большего вреда, чем от него при обучении. Пиши сам ручками, даже если и переписываешь. Научишься на порядок быстрее.
Ладно, буду знать.

Сообщение отредактировано: Вячеслав Людской -


--------------------
Само знание есть сила
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 20.04.2024 17:42
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name