Neprogramátor/Krátká matematická myšlenka

(define (Pythagorova-věta a b c) ; a, b jsou odvěsny, c je přepona
  (= (* c c) (+ (* a a) (* b b))))
(define (vypočítej-přeponu-pro-odvěsny a b)
  (sqrt (+ (* a a) (* b b))))
(define (vypočítej-odvěsnu-pro-přeponu-a-odvěsnu c a)
  (sqrt (- (* c c) (* a a))))

O jakou myšlenku se jedná? Jak ji ověřit?

Jde o myšlenu Pythagorovy věty.

(define (ověř-platnost-Pythagorovy-věty-pro a b c)
  (string-append "Pro trojúhelník "
                 (number->string a) " "
                 (number->string b) " "
                 (number->string c) " "
                 "Pythagorova věta "
                 (if (Pythagorova-věta a b c)
                     "platí"
                     "neplatí")
                 "."))
(ověř-platnost-Pythagorovy-věty-pro 3 4 5)
(ověř-platnost-Pythagorovy-věty-pro 1 2 3)
(define (přepona-pro-odvěsny a b)
  (string-append "Pro odvěsny "
                 (number->string a)
                 " a " (number->string b)
                 " je přepona "
                 (number->string (vypočítej-přeponu-pro-odvěsny a b))
                 "."))
(přepona-pro-odvěsny 3 4)
(define (odvěsna-pro-přeponu-a-odvěsnu c a)
  (string-append "Pro přeponu "
                 (number->string c)
                 " a odvěsnu "
                 (number->string a)
                 " je druhá odvěsna "
                 (number->string (vypočítej-odvěsnu-pro-přeponu-a-odvěsnu c a))
                 "."))
(odvěsna-pro-přeponu-a-odvěsnu 5 4)
(odvěsna-pro-přeponu-a-odvěsnu 5 3)
(let* ((první-odvěsna 3)
       (druhá-odvěsna 4)
       (přepona (vypočítej-přeponu-pro-odvěsny první-odvěsna druhá-odvěsna)))
  (ověř-platnost-Pythagorovy-věty-pro první-odvěsna druhá-odvěsna přepona))
(let* ((přepona 5)
       (první-odvěsna 3)
       (druhá-odvěsna (vypočítej-odvěsnu-pro-přeponu-a-odvěsnu přepona první-odvěsna)))
  (ověř-platnost-Pythagorovy-věty-pro první-odvěsna druhá-odvěsna přepona))
(let* ((přepona 5)
       (první-odvěsna 4)
       (druhá-odvěsna (vypočítej-odvěsnu-pro-přeponu-a-odvěsnu přepona první-odvěsna)))
  (ověř-platnost-Pythagorovy-věty-pro první-odvěsna druhá-odvěsna přepona))