Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probleme amelioration du TP

    30 décembre 2005 à 15:23:18

    Bonjour
    alors voila je bloque a la fin du chapitre sur les fonctions, quand mateo demande de crer deux fonctions une pour generer le nombre et l'autre pour comparer le nombre de joueur et le mystere.
    Mon probleme arrive deja quand je fais la fonction pour generer le nombre:

    Citation : Code C


    #include <iostream>
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>


    using namespace std;

    long nombreMystere (long nombreMystere)
    {
    long nombreMystere = 0;
    const long MAX = 100, MIN = 1;
    srand(time(NULL));
    nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
    return nombreMystere;
    }


    int main(int argc, char *argv[])

    long nombreJoueur = 0;
    {

    printf("Bienvenue sur le jeu du + ou du -!!!\n\n");
    printf("Le but est tout simple vous devez trouvez un nombre, compris entre 1 et 100,\nchoisi par l'ordinateur\n");
    printf("Vous avez compris alors c'est parti comencer par dire un nombre compris entre 1 et 100 et laissez vous aidez par les indices!!!\n");
    printf("Bonne chance!!!!\n");
    system("PAUSE\n");

    do
    {
    printf("Quel est le nombre mystere?\n\n");
    scanf ("%ld", &nombreJoueur);

    if (nombreJoueur > nombreMystere)
    printf("Non le nombre mystere est plus petit que %ld\n\n", nombreJoueur);

    else if (nombreJoueur < nombreMystere)
    printf(" Non le nombre mystere est plus grand que %ld\n\n", nombreJoueur);

    else
    printf("Bravo vous avez gagnez!!!\n");

    } while (nombreJoueur != nombreMystere);
    system("PAUSE");
    }


    Et j'aurais une seconde question
    Est ce que la fonction main est indispensable?

    Merci d'avance
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      30 décembre 2005 à 15:25:26

      Pour la fonction main, je peux te répondre tout de suite : OUI, ELLE EST INDISPENSABLE! c'est la base du programme.
      • Partager sur Facebook
      • Partager sur Twitter
        30 décembre 2005 à 15:27:15

        met ton code dans les balises appropriées...
        • Partager sur Facebook
        • Partager sur Twitter
          31 décembre 2005 à 10:26:57

          Voila je l'ai rendu plus visible mais est ce que quelqu'un peut m'aider?
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            31 décembre 2005 à 10:29:16

            Citation : sebtop


            int main(int argc, char *argv[])

            long nombreJoueur = 0;
            {


            C'est quoi ça? l'accolade doit être juste après main, il ne doit rien y avoir entre 2
            De plus, tu n'appelles pas ta fonction, le programme ne génére donc rien
            édit: évite de mettre le même nom pour les fonctions et les variables, ça bogue
            • Partager sur Facebook
            • Partager sur Twitter
              31 décembre 2005 à 10:57:40

              int main(int argc, char *argv[])
              {
                  long nombreJoueur = 0;
                  long nombreMystere = nombreMystere;

              Voila ca marche je sais pas si c'est corecte mais sa marche.
              Merci a toi Ze moi
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                31 décembre 2005 à 11:39:49

                De rien (oui c'est correct)
                • Partager sur Facebook
                • Partager sur Twitter
                  31 décembre 2005 à 15:42:02

                  Voila mon code pour le jeu plus ou moins regarde si tu compren et si tu trouve quelque chose que tu comprend ou une érreur dit le moi
                  #include <stdio.h>
                  #include <stdlib.h>
                  #include <time.h>

                  int genereNombre(int MIN, int MAX);
                  void compareNombres(int nombreEntre, int nombreMystere, int nombredessai);


                  int genereNombre(int MIN, int MAX)
                    {
                    srand(time(NULL));
                    return (rand() % (MAX - MIN + 1)) + MIN;
                    }

                  void compareNombres(int nombreEntre, int nombreMystere, int nombredessai)
                    {
                    if(nombreEntre == nombreMystere)
                      {
                      printf("\n\nBravo!!!! Vous avez trouvez le nombre mystere\n");
                      printf("Vous avez trouvez le nombre mystere en %ld coups.\n\n",nombredessai);
                      }
                    else if(nombreEntre > nombreMystere)
                      {
                      printf("C'est plus petit\n");
                      }
                    else if(nombreEntre < nombreMystere)
                      {
                      printf("C'est plus grand\n");
                      }
                    }


                  int main ( int argc, char** argv )
                  {
                      long nombreMystere = 0, nombreEntre = 0, nombredessai = 0;
                      const long MAX = 100, MIN = 1;

                      // Génération du nombre aléatoire
                      nombreMystere = genereNombre(MIN, MAX);

                      /* La boucle du programme. Elle se répète tant que l'utilisateur
                      n'a pas trouvé le nombre mystère */


                      do
                      {
                          // On demande le nombre
                          printf("Quel est le nombre ? ");
                          scanf("%ld", &nombreEntre);

                          // On compare le nombre entré avec le nombre mystère
                          nombredessai++;
                          compareNombres(nombreEntre, nombreMystere, nombredessai);
                          nombredessai++;
                      } while (nombreEntre != nombreMystere);


                      system("PAUSE");
                  }
                  • Partager sur Facebook
                  • Partager sur Twitter
                    31 décembre 2005 à 17:21:34

                    nombredessai++;
                            compareNombres(nombreEntre, nombreMystere, nombredessai);
                            nombredessai++;

                    Pourquoi 2 fois l'incrementation ??
                    • Partager sur Facebook
                    • Partager sur Twitter
                      31 décembre 2005 à 17:24:18

                      Je viens de voir un probleme dans mon code je me fesais chier un pe et au bout de 2 parties je me suis rendu compte que le chiffre mystere est toujours 86.

                      #include <cstdlib>
                      #include <iostream>
                      #include <stdio.h>
                      #include <stdlib.h>
                      #include <time.h>
                       
                      using namespace std;

                      long nombreGenerer (long nombreMystere)
                      {
                          long MAX = 100, MIN = 0;
                          nombreMystere = 0;
                          srand(time(NULL));
                          nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
                          return nombreMystere;       

                      }


                      int main(int argc, char *argv[])
                      {
                          long nombreJoueur = 0;
                          long nombreMystere = nombreMystere;
                         
                          printf("Bienvenue sur le jeu du + ou du -!!!\n\n");
                          printf("Le but est tout simple vous devez trouvez un nombre, compris entre 1 et 100,\nchoisi par l'ordinateur\n");
                          printf("Vous avez compris alors c'est parti comencer par dire un nombre compris entre 1 et 100 et laissez vous aidez par les indices!!!\n");
                          printf("Bonne chance!!!!\n");
                          system("PAUSE\n");
                         
                         do
                         {
                                            printf("Quel est le nombre mystere?\n\n");
                                            scanf ("%ld", &nombreJoueur);
                                           
                                            if (nombreJoueur > nombreMystere)
                                            printf("Non le nombre mystere est plus petit que %ld\n\n", nombreJoueur);
                                           
                                            else if (nombreJoueur < nombreMystere)
                                            printf(" Non le nombre mystere est plus grand que %ld\n\n", nombreJoueur);
                                           
                                            else
                                            printf("Bravo vous avez gagnez!!!\n");
                                           
                              } while (nombreJoueur != nombreMystere);
                                 system("PAUSE");
                      }

                         
                      • Partager sur Facebook
                      • Partager sur Twitter
                        31 décembre 2005 à 17:48:53

                        Citation : W!nn!3

                        nombredessai++;
                                compareNombres(nombreEntre, nombreMystere, nombredessai);
                                nombredessai++;



                        Pourquoi 2 fois l'incrementation ??



                        C'est une érreur que j'en corrigé sur le pc mais ke j'av pas vu en écrivant sur le forum.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          1 janvier 2006 à 12:48:52

                          BONNE ANNE A TOUS

                          Est e que quelqu'un a le probleme d'avoir toujours le meme nombre???
                          Sa marcher avant de separer mon code avec les 2 fonctions
                          • Partager sur Facebook
                          • Partager sur Twitter
                            1 janvier 2006 à 13:43:08

                            a mon avis tu devrais enlevé le
                            long nombreMystere


                            entre les parenthèse de
                            long nombreMystere(long nombreMystere)


                            tu n'as pas besoin de cela puisque c'est cette fonction qui créer le nombre mystère !
                            • Partager sur Facebook
                            • Partager sur Twitter
                              1 janvier 2006 à 14:18:29

                              Non meme comme ca, ca ne marche pas
                              • Partager sur Facebook
                              • Partager sur Twitter
                              Anonyme
                                1 janvier 2006 à 15:16:01

                                Ben moi ça marche quand je supprime les 2 premières bibliothèques (mais quand je les laisse ça marche pas il me dit:

                                Citation : Dev c++

                                cstdlib: No such file or directory.
                                iostream: No such file or directory.
                                syntax error before "namespace"
                                [Warning] data definition has no type or storage class
                                [Build Error] [main.o] Error 1

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  1 janvier 2006 à 15:56:24

                                  Mon projet etait en C++ donc je l'ai mit en C fait les modif qu'il falait pour que sa marche, mais cette fois le probleme n'est plus 86 c'est 57. Que faire???
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    9 janvier 2006 à 0:06:01

                                    Bon au lieu d'utiliser un autre post, je me sert de celui la.

                                    Donc lors du compilage du plus ou Moins, il y a une erreure de syntaxe ligne 18 me disant qu'il manque une virgule avant l'accolade. Mais j'ai beau chercher, je vois pas o_O

                                    Si quelq'un avait la gentillesse d'y jeter un oeil, ça serait sympa ;)

                                    #include <stdio.h>
                                    #include <stdlib.h>
                                    #include <time.h>

                                    long genereNombre (const long MAX, const long MIN)//Fonction qui génère le nombre aléatoire.
                                    {
                                            srand(time(NULL));
                                            return (rand() % (MAX - MIN + 1)) + MIN;
                                    }

                                    int compareNombres (long nombreEntre, long nombreMystere)//Fonction qui compare le nombre entré au nombre cherché.
                                    {
                                            if (nombreMystere > nombreEntre)
                                            {
                                                    printf("Non, c'est plus mon gas!");
                                            }
                                            else (nombreMystere < nombreEntre)
                                            {
                                                    printf("Non, c'est moins (^__^)");
                                            }
                                            return 0;
                                    }

                                    int main ( int argc, char** argv )
                                    {
                                        long nombreMystere = 0, nombreEntre = 0;
                                        const long MAX = 100, MIN = 1;

                                        // Génération du nombre aléatoire
                                        nombreMystere = genereNombre(MIN, MAX);

                                        /* La boucle du programme. Elle se répète tant que l'utilisateur
                                        n'a pas trouvé le nombre mystère */


                                        do
                                        {
                                            // On demande le nombre
                                            printf("Quel est le nombre ? ");
                                            scanf("%ld", &nombreEntre);

                                            // On compare le nombre entré avec le nombre mystère
                                            compareNombres(nombreEntre, nombreMystere);

                                        } while (nombreEntre != nombreMystere);


                                        system("PAUSE");
                                    }

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      9 janvier 2006 à 2:23:56

                                      YARGH ! telemnar : je peut tomber dans les pommes maintenant ou seulement apres t'avoir éxpliqué ? :p ...

                                      Bah en fait ...

                                      long genereNombre (const long MAX, const long MIN)
                                      //...
                                      const long MAX = 100, MIN = 1;


                                      Cherchez l'erreur ... ^^ ... En fait, ta fonction la, elle sert a rien ! Ne fait pas une fonction uniquement pour generer le nombre aleatoire ... donc hop, disparu la belle fonction :p

                                      Ensuite, je sais pas si tu as lu la partie ou m@teo parle de la portée des variables ... si tu les declare dans ta fonction compareNombres, tu peux pas les utiliser dans ta fonction main ^^ donc, faut changer le nom des variables de ta fonction compareNombres

                                      ensuite, ta fonction ne fait que comparer les deux nombres, elle ne retourne aucun resultat, faut donc qu'elle soit de type void (je me demandais pourquoi return 0, moi ... :-°

                                      dans ta fonction toujours, tu as écrit :

                                      if (nombreMystere > nombreEntre)
                                              {
                                                      printf("Non, c'est plus mon gas!");
                                              }
                                              else (nombreMystere < nombreEntre)
                                              {
                                                      printf("Non, c'est moins (^__^)");
                                              }


                                      avec un else, jamais d'arguments ^^ ... en plus tu t'est gourré de sens :p faut donc ecrire :

                                      if (nombreMystere < nombreEntre)
                                              {
                                                      printf("Non, c'est plus mon gas!");
                                              }
                                              else
                                              {
                                                      printf("Non, c'est moins (^__^)");
                                              }


                                      Pour finir, tu n'est pas tres sympathique :p tu dis meme pas bravo a l'user quand il gagne ^^ ..

                                      Pour t'epargner se travail, j'ai entierement refait ton code , si tu n'as pas compris n'hesite pas a ma mailer : giovanni_falletta@hotmail.com

                                      #include <stdio.h>
                                      #include <stdlib.h>
                                      #include <time.h>

                                      void compareNombres (long entree, long mystere)//Fonction qui compare le nombre entré au nombre cherché.
                                      {
                                              if (entree < mystere)
                                      //le nombre que l'utilisateur a entré est plus petit que le nombre mystere, faut donc dire que c'est plus
                                              {
                                                      printf("Non, c'est plus mon gars!\n"); //toujours faire attention aux fautes d'ortho
                                              }
                                              else if (entree > mystere) //la c'est l'inverse de tout a l'heure
                                              {
                                                      printf("Non, c'est moins (^__^)\n");
                                              }
                                              else //si le nombre n'est ni trop grand, ni trop petit, l'utilisateur a gagné
                                              {
                                                      printf("Bravo vous avez gagne !\n");
                                              }
                                              //pense a mettre des retour a la ligne (\n) pour plus de lisibilité
                                      }

                                      int main ( int argc, char** argv )
                                      {
                                          long nombreMystere = 0, nombreEntre = 0; //on declare les variables
                                          const long MAX = 100, MIN = 1; //on declare les constantes : sa ne doit jamais changer

                                          srand(time(NULL)); //on choisit le nombre mystere
                                          nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
                                         
                                          do
                                          {
                                              // On demande le nombre
                                              printf("Quel est le nombre ? ");
                                              scanf("%ld", &nombreEntre);

                                              // On compare le nombre entré avec le nombre mystère
                                              compareNombres(nombreEntre, nombreMystere);

                                          } while (nombreEntre != nombreMystere);


                                          system("PAUSE");
                                      }
                                      • Partager sur Facebook
                                      • Partager sur Twitter

                                      Probleme amelioration du TP

                                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                      • Editeur
                                      • Markdown