PROGRAM 3
; FILENAME: PROGRAM3.LSP AUTHOR: ANTHONY F. ORTIZ ; THIS PROGRAM COMPUTES THE REAL AND IMAGINARY PARTS OF THE ROOTS OF THE ; EQUATION (AX^2 + BX + C) (XLISP PROGRAM). ; THIS FUNCTION CALLS TWO OTHER FUNCTIONS (READ-COEFFICIENTS AND ; COMPUTE-DISPLAY-ROOTS). (DEFUN SOLVE () (READ-COEFFICIENTS) (COMPUTE-DISPLAY-ROOTS A B C)) ; THIS FUNCTION READS THE THREE COEFFICIENTS OF THE EQUATION (AX^2 + BX + C). (DEFUN READ-COEFFICIENTS () (PRINC "ENTER COEFFICIENTS FOR THE EQUATION AX^2 + BX + C. ") (SETQ A (READ)) (SETQ B (READ)) (SETQ C (READ))) ; THIS FUNCTION COMPUTES AND DISPLAYS THE REAL AND IMAGINARY PARTS OF THE ; ROOTS OF THE EQUATION (AX^2 + BX + C). (DEFUN COMPUTE-DISPLAY-ROOTS (A B C) (LET (R1 R2 (DISC (- (* B B) (* 4 A C)))) (COND ((> DISC 0) (SETQ R1 (/ (+ (- B) (SQRT DISC)) (* 2 A))) (SETQ R2 (/ (+ (- B) (- (SQRT DISC))) (* 2 A))) (SETQ I1 0) (SETQ I2 0)) ((= DISC 0) (SETQ R1 (/ (- B) (* 2 A))) (SETQ R2 (/ (- B) (* 2 A))) (SETQ I1 0) (SETQ I2 0)) ((< DISC 0) (SETQ R1 (/ (- B) (* 2 A))) (SETQ R2 (/ (- B) (* 2 A))) (SETQ I1 (/ (SQRT (ABS DISC)) (* 2 A))) (SETQ I2 (- (/ (SQRT (ABS DISC)) (* 2 A)))))) (TERPRI) (PRINC "THE REAL AND IMAGINARY PARTS OF EACH ROOT ARE ") (TERPRI) (TERPRI) (LIST (LIST R1 I1) (LIST R2 I2)))) ; OUTFILE: PROG3.OUT XLISP version 2.0, Copyright (c) 1988, by David Betz ; loading "init.lsp" > (load "program3.lsp") ; loading "program3.lsp" T > (solve) ENTER COEFFICIENTS FOR THE EQUATION AX^2 + BX + C. 1.0 2.0 3.0 THE REAL AND IMAGINARY PARTS OF EACH ROOT ARE ((-1 1.414214) (-1 -1.414214)) >
BACK TO CS3120 PAGE.