cours  |  td  |  examens  |  doc  |  liens  |  horaires
 Scheme

Université de Caen - UFR de Sciences
Deug MIAS-MASS
Marc Chemillier

Scheme - TD n° 11
28 mai 2003

Itérateurs
Révisions




  • Exercices : (1h1/2)

    1. Faire une fonction (somme f n) qui calcule:
      f(1) + f(2) + ... + f(n)
      (define (somme f n)
        (cond ((= n 0) 0)
              (else (+ (f n) (somme f (- n 1))))))
      
    2. Faire une fonction (itere f n x) qui calcule:
      x + f(x) + f(f(x)) + ... + fn(x)
      (define (itere f n x)
        (cond ((= n 0) x)
              (else (+ x (itere f (- n 1) (f x))))))
      
      (define (itere-term f n x)
        (define (aux n x res)
          (cond ((= n 0) res)
                (else (aux (- n 1) (f x) (+ x res)))))
        (aux n (f x) x))
      
    3. Faire une fonction (genere f n x) qui calcule la liste:
      (x f(x) f(f(x)) ... fn(x))
      (define (genere f n x)
        (cond ((= n 0) (list x))
              (else (cons x (genere f (- n 1) (f x))))))
      
      (define (genere1 f n x)
        (cond ((= n 0) (list x))
              (else (cons x (map f (genere1 f (- n 1) x))))))
      
    4. Evaluer (Septembre 2002) :
      a- (car '(1 2 3 4))
      b- (car (cdr (cdr '(1 2 3 4))))
      c- (car (cdr (reverse '(1 2 3 4))))
      d- (car (list (car '(1 2 3 4))))
      
    5. Evaluer (Septembre 2002) :
      a- (map list '(1 2 3 4))
      b- (map car (map list '(1 2 3 4)))
      c- (car (car (map list '(1 2 3 4))))
      d- (map cdr (list '(1 2) '(3 4)))
      
      
    6. Faire en version terminale la fonction (conway-term u0 n) calculant la suite de Conway définie par u0 quelconque, un = un-1/2 si un-1 est pair, et un = 3*un-1 + 1 sinon. Peut-on faire cette version terminale sans utiliser une fonction auxiliaire ? (Juin 2002)
      
      
      

  • Avec machines : (1h1/2) Algorithmes de tri


    cours  |  td  |  examens  |  doc  |  liens  |  horaires
     Scheme