Ir para o conteúdo

Soma de hipotenusa de 2 triângulos

;Exercicio 2 - Hipotenusa do triangulo
;Exercício resolvido por: Rui Maia (deathseeker25@portugal-a-programar.org) 
;Escreva um procedimento que faca a soma da hipotenusa de dois triangulos.

;Procedimento auxiliar
(define hipotenusa
  (lambda (c1 c2)
    (if (or (<= c1 0) (<= c2 0))
        (display "Os lados do triangulo nao podem ser nulos nem negativos!")
        (sqrt (+ (* c1 c1) (* c2 c2)))))) ; usa-se a funcao sqrt <parametro> para calcular a raiz do parametro..

; Uso:
; > (hipotenusa 3 4)
;5
;> (hipotenusa 2 2)
;2.8284271247461903
;> (hipotenusa 6 7)
;9.219544457292887
;> (hipotenusa 0 3)
;Os lados do triangulo nao podem ser nulos nem negativos!
;> (hipotenusa 3 0)
;Os lados do triangulo nao podem ser nulos nem negativos!
;> (hipotenusa -1 1)
;Os lados do triangulo nao podem ser nulos nem negativos!

(define soma-hipotenusas-de-2-triangulos
  (lambda (c1t1 c2t1 c1t2 c2t2) ;cateto 1 do triangulo 1, cateto 2 do triangulo 1, etc...
    (+ (hipotenusa c1t1 c2t1) (hipotenusa c1t2 c2t2))))

;> (soma-hipotenusas-de-2-triangulos 3 4 5 6)
;12.810249675906654
;> (soma-hipotenusas-de-2-triangulos 4 3 6 5)
;12.810249675906654