DEUG MIAS 24

 

Types et Structures de données

 

TME 4

 

1.Reprendre et terminer l'écriture d'un nombre en chiffres romains

Toujours dans le fichier romain.ml...

 

 1.1.

Vous avez constaté la difficulté que pose une lecture interactive sans affichage d'un message d'appel !

Modifiez la définition de la fonction safe_read_int de la façon suivante :

(* (safe_read_int s) affiche la chaîne s puis

retourne, sans lever d'exception, un entier lu au clavier,

réitère la demande en cas d'erreur de saisie. *)

let rec safe_read_int s =

  try

    print_stirng s ;

    read_int ()

  with

    Failure "int_of_string" -> safe_read_int "Redo ? " ;;

Testez en interactif cette nouvelle définition.

 

1.2. 

Modifier de façon similaire la fonction safe_read_nat de la question 1.4 du TME 3 pour qu'elle admette en paramètre une chaîne correspondant à l'appel de saisie initilal.

Testez cette nouvelle définition.

 

 1.3.

Reprendre et terminer les questions 1.5 et 1.6 du TME 3.

 

 1.4.

Envoyez votre fichier romain.ml par le formulaire de soumission de compte-rendu de TP.

 

2.Modifier l'état de la mémoire

 

 2.1.

Comment créer une référence sur l'entier 5 (expression) ?

 

2.2. 

Comment nommer r une référence sur l'entier 5 (déclaration globale) ?

 

 2.3.

Écrire une fonction r_add : int -> unit telle que (r_add n) remplace le contenu de la référence r par la somme de l'ancien contenu de r et de l'entier n.

Comment tester cette fonction ?

 

 2.4.

Écrire une fonction r_mult : int -> unit telle que (r_mult n) remplace le contenu de la référence r par la somme de l'ancien contenu de r et de l'entier n.

Tester cette fonction.

 

 3.

Spécifiez, programmez et testez quelques fonctions récursives proposées en TD.