01net    Web


Actuellement en ligne : 174 Utilisateurs dont 7 dans Programmation et développement >S'inscrire      >S'identifier      >Recherche      >Aide  
modéré par A.Ouloube, Zplay, Beno@  
01net > Forum de 01net > Programmation et développement > algorithmique
> problème de programme
Passionné(e) d'internet, de logiciels, de forums ? 01net recrute...
Auteur
Message
 
<     1       >
maxer11
  
  :-)
      ?   @     Posté le 15/02/2008 15:42:21  
Voter pour ce message
bonjour a tous
j'ai réalisé grace a un algorithme un programme pour mon école.
Il n'est pas terminé, cependant je suis bloqué.
Ce programme est écrit en turbo pascal, il affiche un menu :

Vous pouvez :
a - Afficher un triangle de 4 x 4 étoiles
b - Afficher un rectangle de 3 x 10 dollars
q - Quitter le programme


Ensuite il affiche :"Entrer votre choix :"
En appuyant sur "a" puis entrer, il affiche un triange, en appuyant sur "b" puis entrer il affiche un rectangle et en appuyant sur "q" pui entrer il quitte le programme.
J'ai fais en sorte qu'après avoir affiché un triangle ou un rectangle il apparait à l'écran :"Appuyer sur une touche pour revenir au menu".
Cepandant en appuyant sur une touche le programme efface la page, réaffiche le menu (comme je lui ai demandé) mais inscrit la lettre (comme choix de l'utilisateur, après "Entrer votre choix :") sur lequel a tapé l'utilisateur pour revenir au menu.
En résumé, le programme prend en compte la lettre (tapée pour revenir au menu) comme choix de l'utilisateur.
Y aurait il moyen de faire en sorte que le programme ne prenne pas en compte cette lettre ?

voici mon programme en turbo pascal :


program TP1_menu;
uses wincrt,strings;
var choix:Char;

(********** variables globales **************)


(************************************************************)
procedure ouvreFenetre;
begin
Strcopy(WindowTitle,'Titre : TP1 menu principal');
screensize.x:=96;
screensize.y:=200;
windowsize.x:=800;
windowsize.y:=600;
InitWinCRT;
end;

(************************************************************)
procedure fermeFenetre;
begin
donewincrt;
end;
(************************************************************)
(* dessine un triangle de cotés 4x4 étoiles
(******)
procedure triangle4x4etoiles;
begin
writeln('*');
writeln('**');
writeln('***');
writeln('****');
end;

(************************************************************)
(* dessine un rectangle creux de 3 x 10 dollars
(******)
procedure rectangle3x10Dollars;
begin
writeln('$$$$$$$$$$');
writeln('$ $');
writeln('$$$$$$$$$$');
end;

(************************************************************)
(* affiche le menu principal du programme
(******)
procedure AfficheMenu;
begin
writeln('Vous pouvez :');
writeln('a - Afficher un triangle de 4 x 4 étoiles');
writeln('b - Afficher un rectangle de 3 x 10 dollars');
writeln('q - Quitter le programme');
end;

(************************************************************)
(* exécute le choix de l'utilisateur
(******)
procedure SaisirChoix;
begin
write('Entrer votre choix : ');
readln (choix);
end;

(************************************************************)
(* affiche le choix saisie
(******)
procedure ChoisirLettre;
begin
if choix='a'
then triangle4x4etoiles;
if choix='b'
then rectangle3x10Dollars;
end;

(************************************************************)
(* réaffiche le menu en appuyant sur une touche
(******)
procedure NouveauChoix;
begin
if (choix='a') or (choix='b')
then
begin
writeln;
write('Appuyer sur une touche pour revenir au menu');
repeat (*rien*) until keypressed;
clrscr;
end;
end;






(************************************************************)
(* programme principal
(******)
begin
ouvreFenetre;
repeat
NouveauChoix;
AfficheMenu;
SaisirChoix;
ChoisirLettre;
until choix='q';
fermeFenetre;
end.


Merci de résoudre mon problème.

-->Message édité par maxer11 le 15/02/2008 15:56:07<--
maxer11
  
  :-)
      ?   @     Posté le 15/02/2008 19:39:13  
Voter pour ce message
connaissez-vous une instruction qui permet de remettre a zero une variable (ici choix) en turbo pascal ?
merci
cff
  
  :-)
      ?   ^   @     Posté le 15/02/2008 23:54:48  
Voter pour ce message
Bonsoir,

Je n'y connais rien en Turbo Pascal mais est-ce qu'en initialisant ta variable lors de l'affichage de ton menu, avec quelque chose ressemblant à choix ='' ca ne reglerait pas le probleme ?
-------
Un site d'entraide informatique ne peut exister que grace à vous !

Alors n'hésitez pas à visiter : cff99.com
maxer11
  
  :-)
      ?   @     Posté le 16/02/2008 13:12:51  
Voter pour ce message
bonjour cff
j'ai déja essayer ceci mais il m'affiche un message d'erreur d'instruction quand je mets rien entre les apostrophes, a l'encontre il accepte lorsque je met un espace ou autre, mais à l'affichage du menu ca ne fais rien j'ai toujours la lettre que j'ai rentré.
cff
  
  :-)
      ?   ^   @     Posté le 17/02/2008 13:18:57  
Voter pour ce message
:hello:

Autre idée qui me vient, est-il possible de redéclarer ta variable dans ta fonction (normalement la déclaration de variable devrait la réinitialiser)
-------
Un site d'entraide informatique ne peut exister que grace à vous !

Alors n'hésitez pas à visiter : cff99.com
maxer11
  
  :-)
      ?   @     Posté le 17/02/2008 21:27:39  
Voter pour ce message
bonsoir cff
j'ai déja déclaré ma variable en début de programme.
Je l'ai redéclaré à l'endroit ou je voulais une réinitialisation de la variable, mais ca ne donne rien et ca modifie de plus le fonctionnement du programme.
Aurais-tu une autre idée ?
merci de ton aide
<     1       >

01net > Forum de 01net > Programmation et développement > algorithmique
> problème de programme

Aller à :

Page générée en : 1.649s - X2board 2.2

Nous contacter | Charte de confiance | Voir notice légale

Tous droits réservés © 1999 - 2008 Groupe Tests - 01net.


Sites du réseau 01net Network : 01net - 01men - Rmc.fr - Bfmtv.fr - Radiobfm.com - TousLesPodcasts - Micro Achat - Caractere.net -
Electronique.biz - Mesures.com - Transaction.fr

Partage de fichiers
Partagez vos gros fichiers entre amis, de façon totalement confidentielle et sécurisée.

Classement 

Révolution au royaume des riches : les surprises du palmarès 2008 sur les fortunes françaises !