forked from malbarbo/na-progfun
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathresolvidos.rkt
61 lines (48 loc) · 1.58 KB
/
resolvidos.rkt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#lang racket
(require rackunit)
(require rackunit/text-ui)
;;;;;;;;;;;;;;;;;;;;
;; Exercício 2.6
;; Número Número -> Número
;; Devolve o maior valor entre a e b. Se os valores forem iguais, devolve a.
;; Veja a função pré-definida max.
(define maximo-tests
(test-suite
"maximo tests"
(check-equal? (maximo 2 3) 3)
(check-equal? (maximo 5 3) 5)
(check-equal? (maximo 4 4) 4)))
(define (maximo a b)
(if (>= a b) a b))
;;;;;;;;;;;;;;;;;;;;
;; Exercício 2.7
;; Número Número -> Número
;; Calcula a soma dos quadrados dos dois maiores números entre a, b, e c.
(define soma-quadrado-maiores-tests
(test-suite
"soma-quadrado-maiores tests"
(check-equal? (soma-quadrado-maiores 3 4 5) 41) ; 16 + 25
(check-equal? (soma-quadrado-maiores 3 6 5) 61) ; 36 + 25
(check-equal? (soma-quadrado-maiores 6 5 4) 61) ; 36 + 25
(check-equal? (soma-quadrado-maiores 4 6 2) 52) ; 16 + 36
(check-equal? (soma-quadrado-maiores 6 2 4) 52) ; 36 + 16
(check-equal? (soma-quadrado-maiores 5 1 2) 29))); 25 + 4
(define (soma-quadrado-maiores a b c)
(if (> a b)
(+ (quadrado a)
(quadrado (maximo b c)))
(+ (quadrado b)
(quadrado (maximo a c)))))
;; Veja a função pré-definida sqr.
(define (quadrado a)
(* a a))
;;;;;;;;;;;;;;;;;;;;
;; Funções para auxiliar nos testes
;; Teste ... -> Void
;; Executa um conjunto de testes.
(define (executa-testes . testes)
(run-tests (test-suite "Todos os testes" testes))
(void))
;; Chama a função para executar os testes.
(executa-testes maximo-tests
soma-quadrado-maiores-tests)