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

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

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

 
 Ответить  Открыть новую тему 
> Вычисление произведения синусов, почему-то получается 0
Лита
сообщение 29.10.2004 5:34
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 31
Пол: Женский

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


Задача такая: Вычислить (1+sin(0.1))(1+sin(0.2))...(1+sin(10))...
Составила следующую программу:
Код

var i,s,f:extended;
BEGIN
i:=0;
s:=1;
Repeat
i:=i+0.1;
f:=1+sin(i);
s:=s*f;
Until i>10;
writeln('summa=',s:10:2);
END.

в итоге он мне выводит ноль... при увеличении количества выводимых знаков после запятой выводит summa=0.000000000000017298. Думаю, что таким малым числом можно пренебречь.
И встал вопрос: правильный ли результат я получаю? huh.gif


--------------------
Что нам стоит мир пострить? Нарисуем - будем жить...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Бродяжник
сообщение 29.10.2004 12:14
Сообщение #2


Бывалый
***

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

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


Похоже, что правильный. Если в каждой итерации цикла вывести значения S, то будет видно, что это число колеблется от 0 до примерно 2.9е+6. Это из-за того, что синус периодически меняет знак. И при i = 10.1 эта функция как раз близка к нулю. Так уж сложилось.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Лита
сообщение 29.10.2004 13:58
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 31
Пол: Женский

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


Так вот и смущает, что такая задача была предложена к решению... Или пытались таким образом проверить знание циклов, кроме For? huh.gif


--------------------
Что нам стоит мир пострить? Нарисуем - будем жить...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Digitalator
сообщение 29.10.2004 20:34
Сообщение #4


Бывалый
***

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

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


Да, так и есть... я тут вначале (1 + sin()) не заметил rolleyes.gif

Сообщение отредактировано: Digitalator - 29.10.2004 20:41


--------------------
In byte we trust
ICQ World.ru
mail[dog]digitalator[dot]com
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
FreeMan
сообщение 2.11.2004 17:13
Сообщение #5


-
****

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

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


Алгоритм правильный, значит и результат правильный.


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


Новичок
*

Группа: Пользователи
Сообщений: 31
Пол: Женский

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


Цитата(FreeMan @ 2.11.04 17:13)
Алгоритм правильный, значит и результат правильный.

после долгих раздумий и копаний в справочнике, я тоже пришла к такому выводу... :D Спасибо... :p4:


--------------------
Что нам стоит мир пострить? Нарисуем - будем жить...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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