twierdzenie cosinusow - do obliczania katow w dowolnym trojkacie
Ostatnio zmodyfikowano 2010-08-21 01:39
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. 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. |
|
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? |
|
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. |
|
1 « 2 » |