Bonjour
Je débute dans le domaine du Pascal, et après avoir achevé un tutoriel, voilà que l'envie m'a pris d’élaborer un simple petit programme de choix.
Il s'agit d'indiquer un chiffre entre 1 et 4, moyennant quoi une réponse prédéfinie apparaît. Jusque là, pas de problème. J'ai utilisé une structure de CASE OF.
Mais, la dernière partie me pose un problème, la partie en ELSE. En effet, j'aimerais non seulement afficher un message d'erreur, mais surtout pouvoir provoquer un retour au début du programme pour pouvoir rééditer la variable.
Or, si le message ne pose pas de problème, mes diverses tentatives de boucles échouent toutes. J'ignore où est mon erreur, mais je soupçonne mon ELSE de refuser de conditionner l'utilisation du programme dans lequel il est lui même inclus. Malgré mes recherches sur toutes les ressources que j'ai pu trouver (google est mon ami), je n'arrive pas à trouver de fonction qui permettrait de contourner ce problème en provoquant un retour au début du programme (en dehors du GOTO, qui semble plus que vivement critiqué).
En désespoir de cause (hum, 2H du matin, c'est le cas de le dire), j'aimerais avoir vos conseils. Ci dessous, la base de programme sur laquelle se sont basés tous mes essais de boucle, avec en rouge la partie concernée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 program Hangar(output); var choix_avion : integer; begin writeln('=== Hangar ==='); writeln; writeln; writeln('1. Spad XIII'); writeln; writeln('2. Nieuport 28'); writeln; writeln('3. Albatros D.V'); writeln; writeln('4. Fokker D.VII'); writeln; writeln; readln; readln (choix_avion); case choix_avion of 1 : writeln('Votre appareil sera un Spad XIII.') ; 2 : writeln('Votre appareil sera un Nieuport 28.') ; 3 : writeln('Votre appareil sera un Albatros D.V.'); 4 : writeln('Votre appareil sera un Fokker D.VII.'); else writeln('Votre formulaire est incomprhensible, merci d''en remplir un nouveau.'); End; readln; end.
Merci d'avance
Partager