Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|
Неопознанный математический знак в с++ |

28.04.2007, 12:28
|
|
Познающий
Регистрация: 29.10.2006
Сообщений: 74
Провел на форуме: 1980313
Репутация:
65
|
|
Неопознанный математический знак в с++
Пишу прогу по информатике на с++. есть такая функция:
Код:
void oval2(double xf, double yf)
{
while(yf <= 0) {
// simply bruteforce...
forma= sqrt((xf-13)/a) + sqrt((yf-2)/b);
yf++;
if (forma>=1) //if point is right then add this in the table
{
yf=3;
x[4]=xf;
y[4]=yf;
break;
}
}
вызывается она так: И вот в чем прикол y[4] всегда равен нулю, вне зависимости от того больше forma единицы или меньше или равна. разве такое реально?
зы: все переменные в double.
Последний раз редактировалось 7ion; 28.04.2007 в 12:33..
|
|
|

28.04.2007, 12:35
|
|
Moderator - Level 7
Регистрация: 24.02.2006
Сообщений: 447
Провел на форуме: 2872049
Репутация:
705
|
|
у тебя начальное значение yf скока? если описано как int yf=0 то цикл не будет выполняться while(yf <= 0) потому что yf++; и сразу идет на break может я ошибаюсь))
|
|
|

28.04.2007, 12:54
|
|
Статус пользователя:
Регистрация: 26.07.2005
Сообщений: 568
Провел на форуме: 1290766
Репутация:
1236
|
|
дабл это не инт и почти никогда не равен целому числу после каких либо сложных операций. т.е. опреация dbl_Y == 0 не вернет тру если dbl_Y равен скажем 0.0001326, аппроксимируй до 0.00 0.000 0.0000 и тд, сморя какая точность нужна
|
|
|

28.04.2007, 14:07
|
|
Участник форума
Регистрация: 04.11.2006
Сообщений: 150
Провел на форуме: 1174659
Репутация:
175
|
|
а чему равны значения a и b?
|
|
|

28.04.2007, 14:17
|
|
Познающий
Регистрация: 29.10.2006
Сообщений: 74
Провел на форуме: 1980313
Репутация:
65
|
|
yf = -40 это видно из вызова функции. a=23, b=38. я в си новичек, поэтому мог допустить ошибку.
2sn0w: а причем здесь int? тем более что я сравнивниваю больше-меньше.
Последний раз редактировалось 7ion; 28.04.2007 в 14:20..
|
|
|

28.04.2007, 14:21
|
|
Участник форума
Регистрация: 04.11.2006
Сообщений: 150
Провел на форуме: 1174659
Репутация:
175
|
|
ты sqrt пытаешься из отрицательного числа брать 
|
|
|

28.04.2007, 14:24
|
|
Познающий
Регистрация: 29.10.2006
Сообщений: 74
Провел на форуме: 1980313
Репутация:
65
|
|
меня это тоже смущает и компилятор почему-то молчит, НО. я писал аналогичную прогу на дельфи с той же формулой работает как часы.
|
|
|

28.04.2007, 14:31
|
|
Участник форума
Регистрация: 04.11.2006
Сообщений: 150
Провел на форуме: 1174659
Репутация:
175
|
|
что значит смущает? это ошибка логики программы- и её стоит исправить, или ты из школы не усвоил, что извлекать арифметический корень можно не из отрицательных действительных чисел?
|
|
|

28.04.2007, 14:54
|
|
Познающий
Регистрация: 29.10.2006
Сообщений: 74
Провел на форуме: 1980313
Репутация:
65
|
|
2sni4ok: для чистоты эксперимента: yf = -40, и в формуле все минусы на плюсы - тоже самое => проблема не в этом.
|
|
|

28.04.2007, 15:02
|
|
Участник форума
Регистрация: 04.11.2006
Сообщений: 150
Провел на форуме: 1174659
Репутация:
175
|
|
приведи конечный код всей программы со всеми обьявлениями.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|