Problème de boucle dans un prog en pascal

Fermé
-papinou- Messages postés 142 Date d'inscription mercredi 28 mars 2007 Statut Membre Dernière intervention 4 février 2008 - 3 févr. 2008 à 23:05
 attoui djamel - 11 mai 2008 à 18:35
Bonjour,

Voilà mon problème, je débute tout juste en programmation et j'ai un problème avec un petit programme que j'ai réalisé et que voici en résumé :

program qui_es_tu ;
uses crt ;
var prenom : string ;
var reponse : char ;
begin
repeat
clrscr ;
write('entrez votre prenom : ') ;
readln(prenom) ;
if prenom = 'gustave' then
begin
write('vous vous appelez justin tartenpion, vous avez 52 ans et bla bla bla ....') ;
readkey ;
end
else
if prenom = 'jeannette' then ;
{et on recommence exactement la meme sequence plusieurs fois jusqu' à}
...
else
write('vous etes inconnu de ce programme.') ;
readln ;
clrscr ;
write('continuez [o,n] ? : ') ;
read(reponse) ;
if reponse = 'o' then
continue
else
until reponse = 'n' ;

end.

Voilà... surement une horreur pour un specialiste mais j'apprends tout seul avec un tuto sur le net et c' est tout nouveau pour moi alors j'essaiede trouver les solutions que je peux memes si elles sont loin d'etre elegantes :) .
Bref voilà mon problème : tout se passe bien jusqu' à ce que je choisisse 'o' à la question continuez où là ca recommence bien mais à la suite de la phrase 'entrez votre prenom' j ai affiché 'vous etes inconnu de ce programme' alors que je voudrais qu' elle ne s affiche, bien entendu, que quand un prenom non repertorié est saisi.
j espere avoir été clair et merci par avance de votre aide ou simplement de vos remarque su ce petit programme qui pourrait m'aider à progresser.
A voir également:

5 réponses

kmanber Messages postés 543 Date d'inscription mardi 30 août 2005 Statut Membre Dernière intervention 28 décembre 2008 256
3 févr. 2008 à 23:16
Hello

Supprime

if reponse = 'o' then
continue
else
0
-papinou- Messages postés 142 Date d'inscription mercredi 28 mars 2007 Statut Membre Dernière intervention 4 février 2008 37
3 févr. 2008 à 23:28
Bonsoir kmanber,
Effectivement c'était inutile et j' ai supprimé ce que tu m' a dis mais ca ne résoud pas le problème...
merci quand mçeme de ta réponse.
0
tarek_dotzero Messages postés 817 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 12 avril 2022 120
4 févr. 2008 à 10:50
Si j'ai bien compris: il y a une chaine de caractères qui s'affiche en plus, donc je pense que le problème est que vous avez ajouter un ; quelque part, il faut restructurer votre code pour qu'il soit plus lisible:

program qui_es_tu ;
 
uses crt ;
 
var 
        prenom : string ; 
        reponse : char ; 
begin 
       repeat 
                  clrscr ; 
                  write('entrez votre prenom : ') ; 
                  readln(prenom) ; 
                  if prenom = 'gustave' then 
                       begin 
                              write('vous vous appelez justin tartenpion, vous avez 52 ans et bla bla bla ....') ;  
                              readkey ; 
                       end 
                  else 
                        if prenom = 'jeannette' then 
                                            


L'erreur doit être microscopique!
0
-papinou- Messages postés 142 Date d'inscription mercredi 28 mars 2007 Statut Membre Dernière intervention 4 février 2008 37
4 févr. 2008 à 10:55
Merci beaucoup, je vais essayer de mieux structurer et je post si je trouve l'erreur, merci encore à tous pour votre aide !!!
0
mamk Messages postés 3 Date d'inscription samedi 10 mai 2008 Statut Membre Dernière intervention 11 mai 2008
11 mai 2008 à 13:46
ecrire un prog pascal qui permet d'afficher le nombre d'occurence des lettres de A a Z dans une chaine de caractere g besoin d'un solution c urgent
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
attoui djamel
11 mai 2008 à 18:35
Hi;
desoler pour la mal utulisation de la lange francai;
voutre probleme est que vous chercher des noms conus par vous programme et le message 'vous....inconus....''
voutre solution est de utiluser la boucle case of
0