ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Неопознанный математический знак в с++
  #1  
Старый 28.04.2007, 12:28
Аватар для 7ion
7ion
Познающий
Регистрация: 29.10.2006
Сообщений: 74
Провел на форуме:
1980313

Репутация: 65
Отправить сообщение для 7ion с помощью ICQ
По умолчанию Неопознанный математический знак в с++

Пишу прогу по информатике на с++. есть такая функция:
Код:
 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;
}
          
}
вызывается она так:
Код:
oval2(0,-40);
И вот в чем прикол y[4] всегда равен нулю, вне зависимости от того больше forma единицы или меньше или равна. разве такое реально?
зы: все переменные в double.

Последний раз редактировалось 7ion; 28.04.2007 в 12:33..
 
Ответить с цитированием

  #2  
Старый 28.04.2007, 12:35
Аватар для gibson
gibson
Moderator - Level 7
Регистрация: 24.02.2006
Сообщений: 447
Провел на форуме:
2872049

Репутация: 705
Отправить сообщение для gibson с помощью ICQ
По умолчанию

у тебя начальное значение yf скока? если описано как int yf=0 то цикл не будет выполняться while(yf <= 0) потому что yf++; и сразу идет на break может я ошибаюсь))
 
Ответить с цитированием

  #3  
Старый 28.04.2007, 12:54
Аватар для sn0w
sn0w
Статус пользователя:
Регистрация: 26.07.2005
Сообщений: 568
Провел на форуме:
1290766

Репутация: 1236


По умолчанию

дабл это не инт и почти никогда не равен целому числу после каких либо сложных операций. т.е. опреация dbl_Y == 0 не вернет тру если dbl_Y равен скажем 0.0001326, аппроксимируй до 0.00 0.000 0.0000 и тд, сморя какая точность нужна
 
Ответить с цитированием

  #4  
Старый 28.04.2007, 14:07
Аватар для sni4ok
sni4ok
Участник форума
Регистрация: 04.11.2006
Сообщений: 150
Провел на форуме:
1174659

Репутация: 175
Отправить сообщение для sni4ok с помощью ICQ
По умолчанию

а чему равны значения a и b?
 
Ответить с цитированием

  #5  
Старый 28.04.2007, 14:17
Аватар для 7ion
7ion
Познающий
Регистрация: 29.10.2006
Сообщений: 74
Провел на форуме:
1980313

Репутация: 65
Отправить сообщение для 7ion с помощью ICQ
По умолчанию

yf = -40 это видно из вызова функции. a=23, b=38. я в си новичек, поэтому мог допустить ошибку.
2sn0w: а причем здесь int? тем более что я сравнивниваю больше-меньше.

Последний раз редактировалось 7ion; 28.04.2007 в 14:20..
 
Ответить с цитированием

  #6  
Старый 28.04.2007, 14:21
Аватар для sni4ok
sni4ok
Участник форума
Регистрация: 04.11.2006
Сообщений: 150
Провел на форуме:
1174659

Репутация: 175
Отправить сообщение для sni4ok с помощью ICQ
По умолчанию

ты sqrt пытаешься из отрицательного числа брать
 
Ответить с цитированием

  #7  
Старый 28.04.2007, 14:24
Аватар для 7ion
7ion
Познающий
Регистрация: 29.10.2006
Сообщений: 74
Провел на форуме:
1980313

Репутация: 65
Отправить сообщение для 7ion с помощью ICQ
По умолчанию

меня это тоже смущает и компилятор почему-то молчит, НО. я писал аналогичную прогу на дельфи с той же формулой работает как часы.
 
Ответить с цитированием

  #8  
Старый 28.04.2007, 14:31
Аватар для sni4ok
sni4ok
Участник форума
Регистрация: 04.11.2006
Сообщений: 150
Провел на форуме:
1174659

Репутация: 175
Отправить сообщение для sni4ok с помощью ICQ
По умолчанию

что значит смущает? это ошибка логики программы- и её стоит исправить, или ты из школы не усвоил, что извлекать арифметический корень можно не из отрицательных действительных чисел?
 
Ответить с цитированием

  #9  
Старый 28.04.2007, 14:54
Аватар для 7ion
7ion
Познающий
Регистрация: 29.10.2006
Сообщений: 74
Провел на форуме:
1980313

Репутация: 65
Отправить сообщение для 7ion с помощью ICQ
По умолчанию

2sni4ok: для чистоты эксперимента: yf = -40, и в формуле все минусы на плюсы - тоже самое => проблема не в этом.
 
Ответить с цитированием

  #10  
Старый 28.04.2007, 15:02
Аватар для sni4ok
sni4ok
Участник форума
Регистрация: 04.11.2006
Сообщений: 150
Провел на форуме:
1174659

Репутация: 175
Отправить сообщение для sni4ok с помощью ICQ
По умолчанию

приведи конечный код всей программы со всеми обьявлениями.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
может кто-то возметься за паршивый 9-ти знак! Er@sher О Работе 1 11.04.2007 20:00



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ