Question bizzar
Fermé
meryemm
Messages postés
7
Date d'inscription
dimanche 28 octobre 2012
Statut
Membre
Dernière intervention
30 octobre 2012
-
28 oct. 2012 à 23:14
meryemm Messages postés 7 Date d'inscription dimanche 28 octobre 2012 Statut Membre Dernière intervention 30 octobre 2012 - 30 oct. 2012 à 00:06
meryemm Messages postés 7 Date d'inscription dimanche 28 octobre 2012 Statut Membre Dernière intervention 30 octobre 2012 - 30 oct. 2012 à 00:06
3 réponses
Célien
Messages postés
5729
Date d'inscription
jeudi 8 mai 2008
Statut
Membre
Dernière intervention
9 septembre 2021
1 993
28 oct. 2012 à 23:41
28 oct. 2012 à 23:41
Salut,
Une fonction ou une procédure ?
Une fonction ou une procédure ?
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
29 oct. 2012 à 07:44
29 oct. 2012 à 07:44
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 !
meryemm
Messages postés
7
Date d'inscription
dimanche 28 octobre 2012
Statut
Membre
Dernière intervention
30 octobre 2012
29 oct. 2012 à 15:30
29 oct. 2012 à 15:30
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
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
Modifié par Heliotte le 29/10/2012 à 22:00
Modifié par Heliotte le 29/10/2012 à 22:00
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 ?
meryemm
Messages postés
7
Date d'inscription
dimanche 28 octobre 2012
Statut
Membre
Dernière intervention
30 octobre 2012
29 oct. 2012 à 23:50
29 oct. 2012 à 23:50
Aaah ui Heliotte , pour ton commentaire t'as pas remarqué que j'ai ecris prog(); ^^" ...regarde mon commentaire : // ICI C'EST LE 2eme APPEL DE LA FONCTION....la fonction est juste après :/
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
30 oct. 2012 à 00:03
30 oct. 2012 à 00:03
Désolé merymemm,
Je doit avoir les yeux embrumés
A+
Je doit avoir les yeux embrumés
A+
meryemm
Messages postés
7
Date d'inscription
dimanche 28 octobre 2012
Statut
Membre
Dernière intervention
30 octobre 2012
30 oct. 2012 à 00:06
30 oct. 2012 à 00:06
tkkt ...sinon le code marche biennn merciii
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
29 oct. 2012 à 08:49
29 oct. 2012 à 08:49
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,
meryemm
Messages postés
7
Date d'inscription
dimanche 28 octobre 2012
Statut
Membre
Dernière intervention
30 octobre 2012
29 oct. 2012 à 15:31
29 oct. 2012 à 15:31
Je te remerciiiiie :D