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

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

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

 
 Ответить  Открыть новую тему 
> Произведение чисел до первого введенного нуля
Вячеслав Л.
сообщение 11.10.2009 9:55
Сообщение #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 
 К началу страницы 
+ Ответить 
andriano
сообщение 11.10.2009 10:11
Сообщение #2


Гуру
*****

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

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


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

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

Сообщение отредактировано: andriano - 11.10.2009 10:14
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
RathaR
сообщение 11.10.2009 11:02
Сообщение #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 - 11.10.2009 11:05


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


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

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

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


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


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Вячеслав Л.
сообщение 11.10.2009 15:53
Сообщение #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 
 К началу страницы 
+ Ответить 
Lapp
сообщение 11.10.2009 16:06
Сообщение #6


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

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

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


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


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


Бывалый
***

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

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


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

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


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

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

 



- Текстовая версия 20.07.2025 2:29
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"