All pastes #240609 Raw Edit

Unnamed

public text v1 · immutable
·published 2006-11-05 20:42 UTC
rendered paste body
;----------------------------------
;    GdI 1 / ICS 1 - WS 06/07
;    Uebung / Exercise 01
;----------------------------------
;     TU Darmstadt
;----------------------------------
;   Hausuebung
;   Aufgabe / Task 8
;   
;   Name: Philipp Koehler
;----------------------------------

;;Vertrag discriminant: number number -> number; negative_squareroot
;;Beschr. Errechnet dir Wurzel der pq-Formel (- (sqr (/ p 2)) q))
;;Beispiel (descriminant 4 2) 
(define (descriminant p q) 
  (cond
    [(>= (desc_sq p q) 0) (sqrt (desc_sq p q))]
    [else 'negative_squareroot]))

;;Teil von descriminant. 
(define (desc_sq p q) 
  (- (sqr (/ p 2)) q))


;;Vertrag quad-equation: number number symbol -> number; 'no_real_solution
;;Beschr. Errechnet die pq-Formel. Man übergibt das Symbol 'x1/'x2 für das
;;        erste oder zweite Ergebniss
;;Beispiel 
(define (quad-equation p q x)
  (cond
    [(symbol? (descriminant p q)) 'no_real_solution]
    [(symbol=? 'x1 x) (+ (/ p -2) (descriminant p q))]
    [(symbol=? 'x2 x) (- (/ p -2) (descriminant p q))]
    [else 'invalid_input]))

;;test
(descriminant 4 2) ;;soll:
1.4142

(descriminant 2 4) ;;soll:
'negative_squareroot

(quad-equation 4 3 'x1) ;;soll:
-1
(quad-equation 4 3 'x2) ;;soll:
-3

(quad-equation 3 4 'x1) ;;soll:
'no_real_solution
(quad-equation 3 4 'x2) ;;soll:
'no_real_solution