;; ;; Znajdowanie pierwiastków rzeczywistych równania axx + bx + x = 0 ;; Metoda rozwiązania: wyznaczenie miejsc zerowych ;; równania kwadratowego lub równania liniowego. ;; Wejście: wartości przeczytane z wejścia standardowego; kolejno a, b, c ;; Wyjście: wartości umieszczane na wyjściu standardowym: ;; najpierw liczba rozwiązań, ;; jeżeli liczba rozwiązań>0, to kolejna dana jest wektorem rozwiąza.ń ;; Liczba rozwiązań=-1 oznacza, ze równanie jest spełnione tożsamościowo. ;; Program nie wyznacza wtedy pierwiastków. ;; Ograniczenia: dane na wejściu muszą być liczbami w postaci dziesiętnej lub półlogarytmicznej. ;; (defun rownanie (a b c) (if (not (= a 0)) (kwadratowe (* 2 a) (- b) (delta a b c) ) (liniowe b c) ) ) (defun liniowe (b c) (if (not (= b 0)) (list 1 (list (/ (- c) b)) ) (if (not (= c 0)) (list 0) (- 1) ) ) ) (defun delta (a b c) (- (* b b) (* 4 a c)) ) (defun kwadratowe (aa mb d) (if (>= d 0.0) (list 2 (pierwiastki aa mb (sqrt d)) ) (list 0) ) ) (defun pierwiastki (aa mb sd) (list (/ (- mb sd) aa) (/ (+ mb sd) aa) ) ) (print (rownanie (read) (read) (read)) )