;; Ces programmes sont sous licence CeCILL-B V1. ;; Exécution en ligne de commande avec Bigloo : ;; $ bigloo -i SecondDegre.scm (define (SecondDegreTest) (let* ((a (read)) (b (read)) (c (read)) (delta (- (* b b) (* 4 a c)))) (if (zero? a) (display "Pas une équation du second degré") (let ((resultat (Calcul a b c))) (case (length resultat) ((0) (display "Pas de racine !") (newline)) ((1) (display "Une racine : ") (display resultat) (newline)) ((2) (display "Deux racines, ") (display (car resultat)) (display " et ") (display (cadr resultat)) (newline)) (else (display "erreur, trop de racines !")) ))))) (define (Calcul a b c) (let ((delta (- (* b b) (* 4 a c)))) (cond ((< delta 0) '()) ((zero? delta) (list (/ (- b) (* 2 a)))) (else (list (/ (- (sqrt delta) b) (* 2 a)) (/ (- (+ (sqrt delta) b)) (* 2 a))))))) (SecondDegreTest)