Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

twierdzenie cosinusow - do obliczania katow w dowolnym trojkacie

Ostatnio zmodyfikowano 2010-08-21 01:39
Autor Wiadomość
Elaine
» 2010-08-21 01:18:52
FLOAT_EQ rządzi. Nie dość, że makro, to jeszcze nie jest odporne na problemy z priorytetami operatorów, wielokrotnie oblicza parametry oraz zwyczajnie korzysta z niby poprawnego, ale  jednak nadmiernie skomplikowanego wyrażenia.
C/C++
inline bool floatEq( float a, float b, float epsilon = 0.0001 )
{
    return fabs( a - b ) < epsilon;
}
Nie lepiej w ten sposób?
 Unika się problemów makr, a utraconą
 generyczność
można odzyskać czyniąc tę funkcję wzorcem.

C++ jest wystarczająco niskopoziomowy żeby móc zakodzić takie coś.
Ten kod można napisać w każdym języku, który wspiera liczby zmiennoprzecinkowe i podstawowe działania na nich. To nie ma żadnego związku z tym, czy dany język jest "wystarczająco niskopoziomowy" (cóż ma oznaczać bowiem owa niskopoziomowość w tym kontekście?), czy też nie.
P-21055
ison
» 2010-08-21 01:28:43
@up
zawsze to zaoszczędzone 2 linijki kodu :D

czy dany język jest "wystarczająco niskopoziomowy", czy też nie.
o rly? pokaż rozwiązanie w HQ9+, czekam z niecierpliwością ;)

FLOAT_EQ rządzi. Nie dość, że makro
mogę prosić o wykład na temat dlaczego makra są aż takie złe czy to jest zdanie tylko kilku(nastu?) osób?
P-21057
Elaine
» 2010-08-21 01:39:44

zawsze zaoszczędzone 2 linijki kodu :D
Lepiej napisać parę linii
 kodu więcej, niż potem przez parę godzin (lub nawet dni) w miejscu rozwinięcia makra szukać błędu spowodowanego przez wielokrotne obliczanie wyrażeń bądź priorytety operatorów.

o rly? pokaż rozwiązanie w HQ9+, czekam z niecierpliwością :D
Wyrwałeś zdanie z kontekstu. W HQ9+ jest to niemożliwe, lecz nie z powodu domniemanej wysokopoziomowości. Powodem jest tylko i wyłącznie to, że jest to język ezoteryczny, który nie posiada liczb zmiennoprzecinkowych, ani też operacji na tego typu liczbach.
P-21059
1 « 2 »
Poprzednia strona Strona 2 z 2