Licenciatura em Engenharia Informática e Computação
Introdução à Programação I
Ano lectivo de 2001/2002

Mini-teste 1-X, Duração: 45 min, Com Consulta

RESOLUÇÃO


1.A

O resultado de (x 5 2) é 5. Em geral o procedimento devolve n1.

1.B

Para n1<n2 o procedimento x tem ordem constante (um) de crescimento espacial e temporal uma vez que devolve imediatamente o resultado, seja qual for o valor de n1 e n2.
Para n1>=n2 o procedimento x tem ordem linear (n1-n2+1) de crescimento espacial e temporal uma vez que se chama, recursivamente, até que o valor de n1 seja menor do que n2, deixando operações suspensas para serem efectuadas após ter sido atingido o caso base.

Considerando o pior caso, para um n muito elevado, o procedimento tem O(n) em tempo e espaço, relativamente a n1.

1.C

(define x-iter
  (lambda (n1 n2)
    (x-aux n1 n2 0)))
(define x-aux
  (lambda (n1 n2 acc)
    (if (< n1 n2)
        (+ acc n1)
        (x-aux (sub1 n1) n2 (add1 acc)))))

2.

(define quad?
  (lambda (l1 l2 l3 l4)
    (let ((o-maior (max l1 l2 l3 l4)))
      (< o-maior (- (+ l1 l2 l3 l4) o-maior)))))