IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Problème de boucle


Sujet :

C++

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Mars 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 11
    Points : 1
    Points
    1
    Par défaut Problème de boucle
    Bonjour à tous.

    J'ai un gros problème concernant les boucles...
    Je ne sais pas comment faire...
    J'ai un menu avec un 1, 2, 3, 4, 5 .....
    J'ai fais une fourchette de condition pour aller à l'explication que l'on souhaite voir...

    A la fin de chaque explication, je souhaite mettre une commande qui nous fais revenir au menu principal...

    J'ai fais un schéma vite fait pour que cela soit plus explicite...



    Je ne sais pas quelle commande utiliser, ni WHILE, ni FOR

    Je vous remercie d'avance de votre aide. (Je suis un débutant pur )
    Merci, @+

  2. #2
    Nouveau membre du Club
    Inscrit en
    Janvier 2005
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 52
    Points : 34
    Points
    34
    Par défaut
    pourquoi tu fait pas un switch ? et une boucle do while ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 31
    Points : 29
    Points
    29
    Par défaut
    Un while + switch et cela devrait suffire.....

    Switch te permettra de faire le choix dans la suite d'instruction à faire,
    le while te permettra de boucler tant que .... tu ne décides pas de quitter

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Mars 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    Comment dois-je organiser cela ?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Comme ceci par exemple:

    (NE LIS PAS SI TU VEUX TENTER PAR TOI-MEME DE TROUVER!!!!!)

    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
     
     
    int choixmenuprincipal=0;
    do 
    {    
         system("cls");
         textcolor(7);
         cout<<"Menu du programme de geometrie analytique en 2D:"<<endl;
         cout<<"  1-Calculer les coordonnees d\'un vecteur"<<endl;
         cout<<"  2-Trouver si trois points sont alignes"<<endl;
         cout<<"  3-Trouver le coefficient de proportionnalite qui existe entre deux vecteurs"<<endl;
         cout<<"  4-Trouver si deux droites sont paralleles"<<endl;
         cout<<"  5-Trouver le milieu d'un vecteur"<<endl;
         cout<<"  6-Trouver si deux droites sont perpendiculaires"<<endl;
         cout<<"  7-Trouver l'equation reduite d'une droite"<<endl;
         cout<<"  8-Espace de calculs (+,-,*,/) sur les vecteurs"<<endl;
         cout<<"  9-Information(s) sur l'utilisation"<<endl;
         cout<<"  10-Sortir"<<endl;
         textcolor(9);
         cout<<"Votre choix: ";
         fflush(stdin);
         cin>>choixmenuprincipal;
         cout<<endl;
         textcolor(15);
         switch(choixmenuprincipal)
         {
         case 1: { lanceur_menu1(); break; } 
         case 2: { lanceur_menu2(); break; } 
         case 3: { lanceur_menu3(); break; }
         case 4: { lanceur_menu4(); break; }
         case 5: { lanceur_menu5(); break; }
         case 6: { lanceur_menu6(); break; }
         case 7: { lanceur_menu7(); break; }
         case 8: { lanceur_menu8(); break; }
         case 9: { lanceur_menu9(); break; }
         }
    }
    while(choixmenuprincipal!=10);
    Bien sur, il faut régler tout: les cout qui affichent ce que l'utilisateur peut faire, et les fonctions que chaque choix appelle: les "lanceur_menu9();" par exemple

  6. #6
    Nouveau Candidat au Club
    Inscrit en
    Mars 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    oula,

    Je m'embrouille quelque peu....
    Ce que je ne comprends pas,je suis sûr,ce n'est que d'un point logique...
    Mais bon, là, c'est la galère....

    ça ressemble à ça, ce que je souhaite faire, mais bon, il y a des choses qui m'échappent... je suis un vrai noob de chez noob


    Les lignes que je ne comprends pas :



    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
    int choixmenuprincipal=0;  // pour reafficher le menu ? la variable égale à 0 ?
     
     
    do  // boucle, mais qui correspond à quoi ?
    {    
         system("cls");   // 
         textcolor(7);  // Je ne savais aps que l'on pouvait changer la couleur ? Existe t-il une table récapitulative sur le net ? ;)
     
         cout<<"Menu du programme de geometrie analytique en 2D:"<<endl; 
         cout<<"  1-Calculer les coordonnees d\'un vecteur"<<endl; 
         cout<<"  2-Trouver si trois points sont alignes"<<endl; 
         cout<<"  3-Trouver le coefficient de proportionnalite qui existe entre deux vecteurs"<<endl; 
         cout<<"  4-Trouver si deux droites sont paralleles"<<endl; 
         cout<<"  5-Trouver le milieu d'un vecteur"<<endl; 
         cout<<"  6-Trouver si deux droites sont perpendiculaires"<<endl; 
         cout<<"  7-Trouver l'equation reduite d'une droite"<<endl; 
         cout<<"  8-Espace de calculs (+,-,*,/) sur les vecteurs"<<endl; 
         cout<<"  9-Information(s) sur l'utilisation"<<endl; 
         cout<<"  10-Sortir"<<endl; 
         textcolor(9); 
         cout<<"Votre choix: "; 
         fflush(stdin);  // je ne comprends pas cette fonction
         cin>>choixmenuprincipal; 
         cout<<endl; 
         textcolor(15); 
         switch(choixmenuprincipal)  // A quoi servent les boutons ? Comme dans RM2K3 ?
         { 
         case 1: { lanceur_menu1(); break; } 
         case 2: { lanceur_menu2(); break; } 
         case 3: { lanceur_menu3(); break; } 
         case 4: { lanceur_menu4(); break; } 
         case 5: { lanceur_menu5(); break; } 
         case 6: { lanceur_menu6(); break; } 
         case 7: { lanceur_menu7(); break; } 
         case 8: { lanceur_menu8(); break; } 
         case 9: { lanceur_menu9(); break; } 
         }    // A quoi sert la fonction case?
    } 
    while(choixmenuprincipal!=10); // encore une boucle, de quoi differe t-elle de l'autre ??
    Break casse la boucle, c'est ça ? Elle l'arrete avant la fin du code ?



    Désolé, mais j'ai beaucoup de mal (je ne fais que commencer depuis quelques jours...

    MERCI de votre aide


    [Balises CODE rajoutées par Loulou24, merci d'y penser à l'avenir]

  7. #7
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    do // boucle, mais qui correspond à quoi ?
    A ce niveau tu devrais lire un bon cours / livre...

    textcolor(7); // Je ne savais aps que l'on pouvait changer la couleur ? Existe t-il une table récapitulative sur le net ?
    C'est une fonction absolument pas standard, ni portable. Un conseil : ne t'embarasse pas avec ce genre de détails inutiles pour le moment, concentre toi sur l'essentiel.

    fflush(stdin); // je ne comprends pas cette fonction
    Elle est censée vider le buffer d'entrée, mais ce n'est pas la bonne manière de faire. cf. la FAQ C++ pour la bonne méthode.

    switch(choixmenuprincipal) // A quoi servent les boutons ? Comme dans RM2K3 ?
    Quels boutons ?

    while(choixmenuprincipal!=10); // encore une boucle, de quoi differe t-elle de l'autre ??
    Non, c'est toujours la même. C'est un do / while.

    Et...

  8. #8
    Nouveau Candidat au Club
    Inscrit en
    Mars 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Loulou24
    do // boucle, mais qui correspond à quoi ?
    A ce niveau tu devrais lire un bon cours / livre...

    textcolor(7); // Je ne savais aps que l'on pouvait changer la couleur ? Existe t-il une table récapitulative sur le net ?
    C'est une fonction absolument pas standard, ni portable. Un conseil : ne t'embarasse pas avec ce genre de détails inutiles pour le moment, concentre toi sur l'essentiel.

    fflush(stdin); // je ne comprends pas cette fonction
    Elle est censée vider le buffer d'entrée, mais ce n'est pas la bonne manière de faire. cf. la FAQ C++ pour la bonne méthode.

    switch(choixmenuprincipal) // A quoi servent les boutons ? Comme dans RM2K3 ?
    Quels boutons ?

    while(choixmenuprincipal!=10); // encore une boucle, de quoi differe t-elle de l'autre ??
    Non, c'est toujours la même. C'est un do / while.

    Et...

    A ce niveau tu devrais lire un bon cours / livre... : J'ai deux bouquins et plein de tutos de sur le net

    Pour els couleurs, ok !



    Switch, en anglais, ça ne veut aps dire bouton ?? Ou commutateurs....
    A quoi servent-ils précisément ? Je n'ai pas encore abordé ce point ...
    juste une idée


    Non, c'est toujours la même. C'est un do / while. Justement, je ne comprends pas l'utilité des do/while...
    ça sert à répéter, mais suivant une condition... moi, justement, il n'y a pas de conditions, à part que ça retourne une fois quec'est fini, lol



    Ok pour la balise ! Mais bon, là, je ne fais que citer !

    Merci de votre aide...


    Babas le noob qui essaie d'apprendre, même si c'est la galère,

  9. #9
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Switch, en anglais, ça ne veut aps dire bouton ?? Ou commutateurs....
    A quoi servent-ils précisément ? Je n'ai pas encore abordé ce point ...
    Eh bien je te conseille de l'aborder, plutôt que de te faire un cours sur ce forurm
    Surtout que...
    J'ai deux bouquins et plein de tutos de sur le net
    Justement, je ne comprends pas l'utilité des do/while...
    ça sert à répéter, mais suivant une condition... moi, justement, il n'y a pas de conditions, à part que ça retourne une fois quec'est fini, lol
    "une fois que c'est fini" est bien une condition, non ? Et même si tu veux sortir avec un break, rien ne t'empêche de faire une boucle infinie (while (true) par exemple).

    Ok pour la balise ! Mais bon, là, je ne fais que citer !
    Il y a aussi une balise pour ça. Tu peux même citer du code en imbriquant les balises.

  10. #10
    Nouveau Candidat au Club
    Inscrit en
    Mars 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    Ok, j'aborde tout ça
    Et j'ai compris pour les balises !

    Je reposte dans le forum au cas où certaines choses m'échappent !

  11. #11
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Points : 164
    Points
    164
    Par défaut
    Coucou

    Comme dans RM2K3 ?
    Le passage de rpgmaker au C++ ne va pas se faire instinctivement c'est sur
    Rpgmaker est un logiciel t'offrant un langage scripté, assez pu flexible mais simple d'utilisation , le c++ te permet au prix d'un peu plus d'effort d'apprentissage de faire des choses bien plus évolué et de tout controler par toi meme !

    Hei ca peut t'éclairer un peu :

    le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    do{
     
    }while();
    Est une et une seule instruction !
    ca se traduirai par :

    Faire{
    }
    Tant Que() ;

    Ensuite, le switch(variable) {...}

    une fois que ton programme en arrive la, il va tester la valeur de "variable" puis selon les différent résultat ( chaque CASE représente une valeur possible de ta variable ) tu va effectuer une action .

    Heu pour en revenir a rpgmaker, de mémoire les switch sont des booleen ( des variable qui peuvent prendre la valeur vrai ( true ) ou faux ( false )
    ( -> interrupteur on / off )
    Ca n'a donc rien a voir avec les switch() en C .
    voili voulou
    ( il est tard, j'espére ne pas avoir dit trop de bétise lol )

  12. #12
    Nouveau Candidat au Club
    Inscrit en
    Mars 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    Merci je vais lire cela à tête reposé...

    Il y a un truc que jene comprends pas... les variables de RM2K3,jen'y arrivais pas.... et là, avec le C++ j'y arrive de suite... alors que RM devrait être plus facile....
    Je suis bizarre, mdr !!

    Je vais regarder tes explications ce week end...

    Je vais essayer d'apppliquer "la méthode Coué"... j'y arriverais, LOL !!!


    Merci pour les explications ! ^_^

  13. #13
    Nouveau Candidat au Club
    Inscrit en
    Mars 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    Pour ceux qui connaissent RM2K3, il y avait une fonction nommée "étiquette". Ca n'existe pas dans le C++? Je ne crois pas l'avoir vu...

    Parce que c'est juste ça dont j'ai besoin...
    - Une fonction qui pose un point de repère
    - Une autre fonction qui permet de revenir à chaque fois à cette fonction de départ.


    Je pense que l'on peut faire ça avec les switchs....
    Recherche active ^_^


    Merci de votre aide !


    Basclln, Babas

  14. #14
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Ca se fait avec des gotos et des labels en C++, mais inutile de chercher dans ce sens : c'est tellement déconseillé que personne ne l'utilise. Un code à base de boucles sera plus propre et plus maintenable.

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 38
    Points : 42
    Points
    42
    Par défaut
    Bah, LouLou, un bon vieux code plein de goto dans tous les sens, bien moche, bien lourd, c'est toujours drole à lire et à essayer de comprendre, non

  16. #16
    Nouveau Candidat au Club
    Inscrit en
    Mars 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    Ok, bon, je vais essayer de faire ça, mais avec les labels, cela aurait plus simple non ?

    Enfin, plus facile pour commencer
    Label, go to label...
    enfin,je dis ça... si il n'y a que ça....

    Basclln, Babas

  17. #17
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    La solution qui t'a été proposée (une boucle, un switch et une fonction par menu) ne te parait pas satisfaisante ?

  18. #18
    Nouveau Candidat au Club
    Inscrit en
    Mars 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    Ce n'est pas ça, c'est tellement que je suis un noob que je ne sais encore bien m'en servir, alors je cherche un tutorial

    Merci



    Basclln

  19. #19
    Nouveau Candidat au Club
    Inscrit en
    Mars 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    re !

    J'ai appris avec les switchs. Mais bon, avec case .....
    Mais le problème,c'est toujours de revenir à la fonction de départ.....
    J'ai regardé dans mes bouquins, mais ça ne fonctionne pas....
    Mais bon, ça ressemble à goto (que d'ailleurs, j'ai vu dansmon gros bouquin, il a employé un mot plutot péjoratif, je ne sais plus lequel, ça m'a fait penser à vous
    Enfin bon, c'est bizarre, dans mon bouquin, dans mes tutoriaux (ou tutorials ?) ce n'est pas expliqué clairement...


    Si quelqu'un a une idée...



    Merci


    Basclln

  20. #20
    Nouveau Candidat au Club
    Inscrit en
    Mars 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    Je suppose que ça fait toujours partie des boucles mon problème.

    Je vais peut être vous montrer mon code que j'ai fais pour simplifier.

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/01/2006, 17h44
  2. Problème de boucles imbriquées
    Par Gnux dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 09/12/2005, 20h26
  3. [Tableaux] Problème avec boucle
    Par MYster dans le forum Langage
    Réponses: 6
    Dernier message: 11/11/2005, 18h39
  4. Problème de boucle
    Par TheUltimaSephiroth dans le forum C
    Réponses: 8
    Dernier message: 10/10/2005, 13h58
  5. Problème de boucle
    Par Louis-Guillaume Morand dans le forum Langage SQL
    Réponses: 3
    Dernier message: 25/09/2005, 09h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo