Mini-teste 1-X, Duração: 45 min, Com Consulta
Nome:
1.
Considere o seguinte procedimento em Scheme:
(define x (lambda (n1 n2) (if (< n1 n2) n1 (add1 (x (sub1 n1) n2)))))A. Analise o procedimentos x e diga qual é o resultado de (x 5 2). Diga qual é o resultado produzido, em geral, pelo procedimento x?
B. Classifique o procedimento x quanto à ordem de crescimento espacial e temporal. Justifique.
C. O processo gerado por este procedimento é recursivo. Modifique o procedimento x por forma a gerar um processo iterativo.
2.
O procedimento perimetro-quad tem 4 parâmetros que
correspondem ao comprimento dos lados de um hipotético quadrilátero.
Este procedimento devolve, normalmente, o perímetro do quadrilátero (a
soma do comprimento dos 4 lados) ou zero, se os lados não correspondem
a um quadrilátero.
Note que se o comprimento do maior dos lados for superior ou igual à
soma dos comprimentos dos 3 outros lados, então não será um
quadrilátero.
Complete o procedimento em Scheme quad? apresentado de seguida.
(define perimetro-quad (lambda (lad1 lad2 lad3 lad4) (if (quad? lad1 lad2 lad3 lad4) (+ lad1 lad2 lad3 lad4) 0))) (define quad? )