Archiv diskusního fóra o matematice, 2006–2026
Stránky: 1

Tady je kód ze třetího cvičení pro výpočet kořenů kvadratické funkce. Je to i s lehkým popisem:
Jako první jsem deklaroval proceduru dvakoreny, která na obrazovku vypíše jeden kořen a pak normálně vrátí druhý kořen. Přijímá čtyři argumenty - a, b, c a diskriminant, který si sice můžeme počítat, ale na co, když už ho budeme počítat jinde. V těle téhle procedury je další procedura, konkrétně koren, která počítá samotný kořen. Bude popsána v dalším bloku.
span style="color: #808080; font-style: italic;">;; Jestliže je diskriminant záporný, vrátíme false, rovnice nemá v R řešení
#f
;; Tady je vnořený if — jestliže není předchozí podmínka pradivá, provede se další if.
;; Je to proto, že mohou nastat celkem tři různé možnosti — diskriminant je kladný, záporný nebo nulový.
;; Když bude diskriminant nulový, má rovnice jeden dvojnásobný kořen
;; Zavoláme proceduru kořen, která nám vrátí jeden kořen
;; Jestliže je diskriminant různý od nuly,
) ;; zavoláme proceduru dvakoreny, která už byla popsána
)) (- (* b b) (* 4 a c))))) Offline

Pokud by někomu pomohl Haskellovský zápis téhož:
koren s a b d= (s (-b) (sqrt d))/(2*a)
koreny a b c = koreny' a b (b^2-4*a*c) where
koreny' a b 0 = [-b/(2*a)]
koreny' a b d = if d>0 then [koren (+) a b d, koren (-) a b d] else []
Offline
Stránky: 1