ED n·5 Algorithmique-Programmation----- | corrigé |
Objectifs
with Ada.Text_io;use Ada.Text_io;
with Ada.Integer_Text_io;use Ada.Integer_Text_io;
procedure gestionmenu is
--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é.
ARRET_SOUHAITE:exception;
procedure afficheMenu is
MAUVAIS_NOMBRE :exception;
choix:Integer;
begin
put("1-Traitement 1");new_line;
put("2-Traitement 2");new_line;
put("0-Abandonnez");new_line;
put("Entrez votre choix ->
");
get(choix);
case choix is
when 1
=> --traitement 1
null;
when 2
=> --traitement 2
null;
when 0
=> raise ARRET_SOUHAITE ;
when others
=> raise MAUVAIS_NOMBRE;
end case;
exception
when MAUVAIS_NOMBRE
=>put(" Attention, tapez 0, 1 ou 2 !");new_line;
when DATA_ERROR
=>put(" Attention, tapez un entier !");new_line;skip_line(1);
-- pour vider le buffer et éviter le bouclage
end afficheMenu;
begin
loop
afficheMenu;
end loop;
exception
when ARRET_SOUHAITE =>
put("Au revoir, Bye Bye");
new_line;
end gestionmenu;