ED
n·5 Algorithmique-Programmation |
Objectifs
- Construire des algorithmes en
séparant
le traitement des erreurs du traitement des cas "normaux"
- Traitement des cas particuliers par le
mécanisme
des exceptions
- Utilisation de fichiers
séquentiels
Exercice 1
Enoncé
Ecrire une procédure getSomme
qui
lit une suite d'entiers (chacun d'eux compris entre 0 et 20), et en
calcule
la somme. En cas d'erreur (le caractère lu est un entier non
compris
entre 0 et 20), une nouvelle saisie doit être effectuée.
Le
calcul s'arrête dès que le caractère lu n'est pas
un
chiffre.
NB : on utilisera les exceptions
prédéfinies
DATA_ERROR
et CONSTRAINT_ERROR.
Question 1
- Ecrire la déclaration de la
procédure getSomme
Question 2
- Ecrire l'algorithme de getSomme
Question 3
- Ecrire la déclaration du corps de
la
procédure getSomme
Question 4
- Ecrire un programme qui lit une suite
d'entiers en
utilisant la procédure définie précédemment
et affiche la somme calculée.
Solution
Exercice 2
On veut écrire un programme qui lit un
fichier texte et affiche les données lues ligne par ligne.
Question 1
- Ecrire l'algorithme, puis le programme en
considérant
qu'aucune erreur n'est possible.
Question 2
- Modifier ce programme en
considérant
que le
fichier ouvert peut ne pas exister. On utilisera l'exception
prédéfinie NAME_ERROR
déclenchée par la procédure OPEN.
Question 3
- On souhaite gérer la fin de
lecture du
fichier
par l'exception END_ERROR déclenchée par
GET_LINE,
le test de fin de fichier par la fonction END_OF_FILE faisant
double
emploi. Modifier ce programme en conséquence.
Question 4
- Modifier le programme
précédent
de
manière à arrêter le programme dès qu'une
ligne
du fichier est vide. On déclarera une exception LIGNE_VIDE.
Solution
Exercice 3
Question 1
- Ecrire un programme de gestion de menu
d'accueil.
Le menu propose 3 choix numérotés 1, 2 ou 0. Pour
s'arrêter,
l'utilisateur doit taper 0. S'il tape un nombre non compris entre 0 et
2, une exception, que nous appelerons MAUVAIS_NOMBRE devra
être
déclenchée et traitée. L'exception ARRET_SOUHAITE
devra indiquer que l'utilisateur désire arrêter la
session.
Le cas où l'utilisateur tape autre chose qu'un chiffre doit
également
être traité.
Solution