Question bizzar
meryemm
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
-
meryemm Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
meryemm Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai une partie du code qui se répète deux fois et je veux savoir si par hasard y a pas un moyen de régler ça (par exemple avoir une variable qui peux remplacer cette partie du code et l'appeler après au lieu de réécrire tout le code une deuxième fois)
j'ai une partie du code qui se répète deux fois et je veux savoir si par hasard y a pas un moyen de régler ça (par exemple avoir une variable qui peux remplacer cette partie du code et l'appeler après au lieu de réécrire tout le code une deuxième fois)
3 réponses
Bonjour meryemm,
Pouvez-vous nous montrer cette partie de code ainsi que les deux appels de procédure/fonction ?
En général, un code qui est utilisé plus d'une fois est placé dans une procédure ou une fonction si celui-ci donne une valeur.
Donc, pour répondre à la question, théoriquement oui !
Pouvez-vous nous montrer cette partie de code ainsi que les deux appels de procédure/fonction ?
En général, un code qui est utilisé plus d'une fois est placé dans une procédure ou une fonction si celui-ci donne une valeur.
Donc, pour répondre à la question, théoriquement oui !
bon je te montre tout mon code , la réponse était banal xD j'ai mis la partie du code qui se répète dans une fonction et je l'ai appelé à l'endroit où il fallait le metter xp j'ai posé des commentaires pour que ça soit un petit peu clair x/ :
#include <time.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <Windows.h>
//l'initialisation de tous les variables du prog
int nbrMAX = 100; const int MIN = 1 ;
int nombreMystere=0 , nombreAecrire=0, comp=0;
char rep= ' ' ;
int j;
int niveau;
//Voila la fonction qu'on va appeler pour ne pas avoir des tonnes de lignes..je l'ai nommé "prog" comme vous voyez :
void prog ()
{
do
{
printf ("Saisir un Nombre Aleatoir \n");
scanf("%d", &nombreAecrire);
comp++;
if (nombreAecrire < nombreMystere)
printf(" c'est +++++\n ");
else if (nombreAecrire > nombreMystere)
printf (" c'est ----- \n");
else
printf("Bravoo vous avez trouvé le nombre mystere en %d :\n" ,comp, "COUPS!!\n");
}
while(nombreAecrire != nombreMystere);
while ( rep !='n' && rep!='o')
{
printf ("voulez-vous recommencer le jeu???");
getchar();
scanf("%c" ,&rep);
getchar();
}
}
// ON COMMENCE ..
int main()
{
// les niveaux de difficulté à choisis
printf ("NIVEAU DE DIFFICULTE \n\n");
printf ("1__ de 1 jusqu'a 100 \n");
printf ("2__ de 1 jusqu'a 1000 \n");
printf ("3__ de 1 jusqu'a 10000 \n");
scanf ("%d" , &niveau);
if (niveau ==1)
{
printf ("le niveau FACILE \n");
nbrMAX=100;
}
else if (niveau ==2)
{
printf ("le niveau MOYEN \n");
nbrMAX=1000;
}
else if (niveau ==3)
{
printf ("le niveau DIFFICILE \n");
nbrMAX=10000;
}
else
{
printf ("vous n'avez pas choisis de niveau \n");
}
//Le mode du jeu à choisir
printf ("MENU : \n\n");
printf ("1_mode: un joueur.\n");
printf ("2_mode: deux joueurs.\n");
scanf("%d",&j);
if (j==1) //Si le joueur choisis le mode "un joueur"
{
srand(time(NULL));
nombreMystere = (rand() % (nbrMAX - MIN + 1)) + MIN;
do
{
//VOILA ICI ICI C MON PREMIER APPEL DE LA FONCTION
prog();
}
while ( rep =='o');
printf ("au revoir!!\n");
}
//Si le joueur choisis le mode "deux joueurs"
else if (j==2)
{
do
{
printf ("Saisir le nombre mystere \n");
scanf("%d", &nombreMystere);
// ICI C'EST LE 2eme APPEL DE LA FONCTION prog();
}
while ( rep =='o');
printf ("au revoir!!\n");
}
system("pause");
}
Ce n'est qu'un petit programme il surement pas très amélioré mais bon , je ne suis qu'un débutant j'éspère que c'est clair :p
#include <time.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <Windows.h>
//l'initialisation de tous les variables du prog
int nbrMAX = 100; const int MIN = 1 ;
int nombreMystere=0 , nombreAecrire=0, comp=0;
char rep= ' ' ;
int j;
int niveau;
//Voila la fonction qu'on va appeler pour ne pas avoir des tonnes de lignes..je l'ai nommé "prog" comme vous voyez :
void prog ()
{
do
{
printf ("Saisir un Nombre Aleatoir \n");
scanf("%d", &nombreAecrire);
comp++;
if (nombreAecrire < nombreMystere)
printf(" c'est +++++\n ");
else if (nombreAecrire > nombreMystere)
printf (" c'est ----- \n");
else
printf("Bravoo vous avez trouvé le nombre mystere en %d :\n" ,comp, "COUPS!!\n");
}
while(nombreAecrire != nombreMystere);
while ( rep !='n' && rep!='o')
{
printf ("voulez-vous recommencer le jeu???");
getchar();
scanf("%c" ,&rep);
getchar();
}
}
// ON COMMENCE ..
int main()
{
// les niveaux de difficulté à choisis
printf ("NIVEAU DE DIFFICULTE \n\n");
printf ("1__ de 1 jusqu'a 100 \n");
printf ("2__ de 1 jusqu'a 1000 \n");
printf ("3__ de 1 jusqu'a 10000 \n");
scanf ("%d" , &niveau);
if (niveau ==1)
{
printf ("le niveau FACILE \n");
nbrMAX=100;
}
else if (niveau ==2)
{
printf ("le niveau MOYEN \n");
nbrMAX=1000;
}
else if (niveau ==3)
{
printf ("le niveau DIFFICILE \n");
nbrMAX=10000;
}
else
{
printf ("vous n'avez pas choisis de niveau \n");
}
//Le mode du jeu à choisir
printf ("MENU : \n\n");
printf ("1_mode: un joueur.\n");
printf ("2_mode: deux joueurs.\n");
scanf("%d",&j);
if (j==1) //Si le joueur choisis le mode "un joueur"
{
srand(time(NULL));
nombreMystere = (rand() % (nbrMAX - MIN + 1)) + MIN;
do
{
//VOILA ICI ICI C MON PREMIER APPEL DE LA FONCTION
prog();
}
while ( rep =='o');
printf ("au revoir!!\n");
}
//Si le joueur choisis le mode "deux joueurs"
else if (j==2)
{
do
{
printf ("Saisir le nombre mystere \n");
scanf("%d", &nombreMystere);
// ICI C'EST LE 2eme APPEL DE LA FONCTION prog();
}
while ( rep =='o');
printf ("au revoir!!\n");
}
system("pause");
}
Ce n'est qu'un petit programme il surement pas très amélioré mais bon , je ne suis qu'un débutant j'éspère que c'est clair :p
Bonsoir meryemm,
Voir le commentaire en gras:
Donc, le programme est ok maintenant ?
Voir le commentaire en gras:
//Si le joueur choisis le mode "deux joueurs" else if (j==2) { do { printf ("Saisir le nombre mystere \n"); scanf("%d", &nombreMystere); // ICI C'EST LE 2eme APPEL DE LA FONCTION prog(); prog(); // ne pas oublier de l'ajouter ! } while ( rep =='o'); printf ("au revoir!!\n"); }Ca ma l'air parfait
Donc, le programme est ok maintenant ?
Bonjour,
Effectivement, la partie que tu souhaites répéter doit se trouver dans une fonction.
Par exemple :
Tu peux remplacer les lignes puts/scanf/printf par :
Ainsi, tu n'as plus qu'à appeler saisie(&d); pour appeler puts/scanf/printf.
La fonction saisie remplace une partie de code.
Note : je n'ai pas essayé mon code, il y a peut-être des petites erreurs qui trainent. Mais l'idée reste correcte.
Cordialement,
Effectivement, la partie que tu souhaites répéter doit se trouver dans une fonction.
Par exemple :
int main (void) { double d; puts("d="); scanf("%lf",&d); printf("d=%f\n",d); puts("d="); printf("%lf",&d); printf("d=%f\n",d); return 0; }
Tu peux remplacer les lignes puts/scanf/printf par :
void saisie(double *d) { puts("d="); scanf("%lf",d); printf("d=%f\n",*d); }
Ainsi, tu n'as plus qu'à appeler saisie(&d); pour appeler puts/scanf/printf.
La fonction saisie remplace une partie de code.
Note : je n'ai pas essayé mon code, il y a peut-être des petites erreurs qui trainent. Mais l'idée reste correcte.
Cordialement,