Exercícios Escheme
Dissertações: Exercícios Escheme. Pesquise 862.000+ trabalhos acadêmicosPor: jessadamy • 4/10/2014 • 4.718 Palavras (19 Páginas) • 230 Visualizações
Lista 4 - SCHEME
1.Escreva um procedimento em Scheme maior? que recebe dois números inteiros n e m, e
retorna #t se o n for maior do que m e #f no caso contrário.
> (maior? 8 2)
#t
> (maior? 8 8)
#f
> (maior? 2 8)
#f
(define (maior n m)
(if (> n m) #t
#f
))
2. Escreva um procedimento em Scheme igual? que recebe dois números inteiros n e m, e
retorna #t se o n for igual a m e #f no caso contrário.
> (igual? 8 2)
#f
> (igual? 8 8)
#t
> (igual? 2 8)
#f
(define (igual? n m)
(if (= n m)
#t
#f
)
)
3. Escreva um procedimento em Scheme menor? que recebe dois números inteiros n e m, e
retorna #t se o n for menor do que m e #f no caso contrário.
> (menor? 8 2)
#f
> (menor? 8 8)
#f
> (menor? 2 8)
#t
(define (menor n m)
(if (< n m) #t
#f ))
4. Escreva um procedimento em Scheme quociente que recebe dois números inteiros positivos
n e m, e devolve o quociente da divisão de n por m. No caso de m ser 0 deverá devolver 0.
> (quociente 8 2)
4
> (quociente 10 3)
4
(define (quociente n m)
(ceiling (/ n m) ))
5. Escreva um procedimento em Scheme resto que recebe dois números inteiros positivos n e
m, e devolve o resto da divisão de n por m.
> (resto 8 2)
0
> (resto 10 3)
1
(define (resto n m)
(remainder n m))
6. Escreva um procedimento em Scheme somatorio que recebe um número inteiro positivo n,
e devolve a soma de todos os números até n.
> (somatorio 3)
6
> (somatorio 6)
21
(define (somatorio n)
(if (= n 1)
1
(+ n (somatorio (- n 1)))))
7. Escreva um procedimento em Scheme soma-quadrados que recebe um número inteiro posi-
tivo n, e devolve a soma do quadrado de todos os números até n.
> (soma-quadrados 3)
14
> (soma-quadrados 5)
65
(define (soma-quadrados n)
(if (= n 0) 0
(+ (* n n) (soma-quadrados (- n 1)))))
8. Escreva um procedimento em Scheme fatorial que recebe um número inteiro positivo n,
e devolve o fatorial desse número.
> (fatorial 0)
1
> (fatorial 5)
120
(define factorial(lambda (n)
(if (= n 0) 1
(* n (factorial (- n 1))))))
9. Um número diz-se primo se os seus únicos divisores são o 1 e o próprio . O número 1 não é primo. Escreva um procedimento em Scheme primo? que recebe um número inteiro positivo n, e retorna #t se o número for primo e #f no caso contrário.
> (primo? 53)
#t
> (primo? 21)
#f
(define (primo? n)
(cond
((= n 2) #t)
((or (= n 1) (= (resto n 2) 0)) #f)
(else (primo-aux n 3))
)
)
10. Um número é quadrado perfeito se existir um tal que . Escreva um procedimento
em Scheme quadrados-perfeito? que recebe um número n, e retorna #t se n for um quadrado perfeito e #f no caso contrário.
...