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

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

Scheme - TD n° 9
2 mai 2001

Représentation des nombres en binaire et fichiers d'images BMP




  • Exercices : (1h1/2)

    1. Pour tout nombre n, il existe un unique k, et des coefficients a0, ... ak valant 0 ou 1 tels que:
      n = a0 + a12 + ... + ak2k.
      C'est la représentation binaire de n. Faire la fonction (decimal->binaire n) qui donne la liste des coefficients ai de la décomposition binaire de n. Pour 13 = 1 + 22 + 23, on a:
      > (decimal->binaire 13) 
      (1 0 1 1)
      
       (define (decimal->binaire n)
         (cond ((= n 0) '())
               (else (cons (remainder n 2)
                           (decimal->binaire (quotient n 2))))))
      
      
    2. Faire une fonction (applatit l) qui enlève un niveau de parenthèses dans l:
      > (applatit '((a b c) (d e) (f g h))) 
      (a b c d e f g h)
      
      
      (define (applatit l)
        (if (null? l) () (append (car l) (applatit (cdr l)))))
      
      
    3. Faire une fonction (nthcar n l) qui donne la liste des n premiers éléments de l, supposée de longueur supérieure à n:
      (define (nthcar n l)
        (cond ((= n 0) ())
              (else (cons (car l) (nthcar (- n 1) (cdr l))))))
      
      
    4. Faire une fonction (nthcdr n l) qui donne la liste obtenue en supprimant les n premiers éléments de l, et () si la longueur de l est inférieure à n:
      (define (nthcdr n l)
        (cond ((or (null? l) (= n 0)) l)
              (else (nthcdr (- n 1) (cdr l)))))
      
      

  • Avec machines : (1h1/2) Format des fichiers d'images bitmap BMP


  • Représentation en chiffres romains


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