ED n·5 Algorithmique-Programmation----- corrigé


Objectifs



Exercice 3
 
Question 1

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;