Bonjour,
Où est le:Citation:
Envoyé par vivu
? :wink:Code:cin >> choix;
Place le, et tu pourras choisir.
Cordialement,
Bisounours.
Version imprimable
Bonjour,
Où est le:Citation:
Envoyé par vivu
? :wink:Code:cin >> choix;
Place le, et tu pourras choisir.
Cordialement,
Bisounours.
Salut.
Merci sa marche tres bien maintenant.Pour ceux qui sa interesse voici le code final.
Et merci encore pour le coup de main.Code:
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90 // Alcootest // // #include <cstdio> #include <cstdlib> #include <iostream> using namespace std; int main() { //Declaration des variables int choix; float vin =10; float biere = 10; float whisky =10 ; float pastis =10; float champagne =10; float alcoolemie =10; float factor = 0.7; do { cout << "Ver(s) de vin : 1 " << endl << "Ver(s) de biere : 2 " << endl << "Ver(s) de whisky : 3 " << endl << "Ver(s) de pastis : 4 " << endl << "Ver(s) de champagne : 5 " << endl; cin >> choix; //Declaration du premier argument int poids; cout << "Entrez votre poids : "; cin >> poids; switch ( choix ) { case 1: //Si l'utilisateur a choisi 1 cout << "Entrez le nombre(s) de ver(s) de vin bu(s) : " << endl; cin >> vin; //Enregistrer dans la variable vin alcoolemie = vin * 10 / poids * factor; cout << "Votre taux d'alcoolemie est de : " << alcoolemie << endl; break; case 2: //Si l'utilisateur a choisi 2 cout << "Entrez le nombre(s) de ver(s) de biere bu(s) : " << endl; cin >> biere; //Enregistrer dans la variable biere alcoolemie = biere * 10 / poids * factor; cout << "Votre taux d'alcoolemie est de : " << alcoolemie << endl; break; case 3: //Si l'utilisateur a choisi 3 cout << "Entrez le nombre(s) de ver(s) de biere bu(s) : " << endl; cin >> biere; //Enregistrer dans la variable whisky alcoolemie = whisky * 10 / poids * factor; cout << "Votre taux d'alcoolemie est de : " << alcoolemie << endl; break; case 4 : //Si l'utilisateur a choisi 4 cout << "Entrez le nombre(s) de ver(s) de pastis bu(s) : " << endl; cin >> pastis; //Enregistrer dans la variable pastis alcoolemie = pastis * 10 / poids * factor; cout << "Votre taux d'alcoolemie est de : " << alcoolemie << endl; break; case 5 : //Si l'utilisateur a choisi 5 cout << "Entrez le nombre(s) de ver(s) de champagne bu(s) : " << endl; cin >> champagne; //Enregistrer dans la variable champagne alcoolemie = champagne * 10 / poids * factor; cout << "Votre taux d'alcoolemie est de : " << alcoolemie << endl; break; default: cout << "Erreur de paramètre" << endl; } } while(choix>5 || choix <=0); system ("PAUSE"); }
Bonjour,
c'est bien, tu as un code qui fonctionne. Mais regarde dans chaque "case", les lignes de codes sont très similaires.
Tu peux donc améliorer la lisibilité de ton code, je t'ai montré comment faire.
Salut je viens d'essayer de faire ta methode mais le compilateur affiche une erreur à cette ligne
Voici le code complet:Code:void Afficher_Calcul_Alcoolemie(string Boisson, float& NombreVerres, float& Alcoolemie, float poids, float factor) {
Merci d'avance pour l'aide :wink:Code:
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95 // Alcootest // // #include <cstdio> #include <cstdlib> #include <iostream> using namespace std; int main() { //Declaration des variables int choix; float vin =10; float biere = 10; float whisky =10; float pastis =10; float champagne =10; float alcoolemie; float factor = 0.7; float NombreVerres; do { cout << "Ver(s) de vin : 1 " << endl << "Ver(s) de biere : 2 " << endl << "Ver(s) de whisky : 3 " << endl << "Ver(s) de pastis : 4 " << endl << "Ver(s) de champagne : 5 " << endl; cin >> choix; void Afficher_Calcul_Alcoolemie(string Boisson, float& NombreVerres, float& Alcoolemie, float poids, float factor) { cout << "Entrez le nombre(s) de ver(s) de"<< Boisson <<" bu(s) : " << endl; cin >> NombreVerres; Alcoolemie = NombreVerres * 10 / poids * factor; cout << "Votre taux d'alcoolemie est de : " << Alcolemie << endl; } switch ( choix ) { case 1: //Si l'utilisateur a choisi 1 Afficher_Calcul_Alcoolemie("vin",vin,alcoolemie,poids,factor); break; case 2: //Si l'utilisateur a choisi 2 Afficher_Calcul_Alcolemie("biere",biere,alcolemie,poids,factor); break; case 3: //Si l'utilisateur a choisi 3 Afficher_Calcul_Alcoolemie("whisky",whisky,alcoolemie,poids,factor); break; case 4 : //Si l'utilisateur a choisi 4 Afficher_Calcul_Alcoolemie("pastis",pastis,alcoolemie,poids,factor); break; case 5 : //Si l'utilisateur a choisi 5 Afficher_Calcul_Alcoolemie("champagne",champagne,alcoolemie,poids,factor); break; }; default: cout << "Erreur de paramètre" << endl; } if(alcoolemie < 0.5) { printf("votre taux est normal, vous pouvez reprendre la route\n\n\n"); int main(); } else if(alcoolemie > 0.5) { printf("votre taux est trop important, vous ne devez pas prendre la route\n\n\n"); int main(); } break; } while(choix>5 || choix <=0); system ("PAUSE"); }
Tu n'as pas la possibilité de déclarer une fonction à l'intérieur d'une fonction : Tu peux naturellemet l'appeler mais pas mettre son code. Ta déclaration de Afficher_Calcul_Alcoolemie est au beau milieu de main. Sort cette fonction du main
Code:
1
2 void Afficher_Calcul_Alcoolemie(string Boisson, float& NombreVerres, float& Alcoolemie, float poids, float factor) { ....} int main(){...}
Meric pour ta reponse c'etait bien ça mais apres quand je veut compiler il m'affiche encore une erreur acette ligne:
Je ne vois vraiment pas ce que a de faux dans cette ligne.Pourtant elle a l'air juste.Code:cout << "Entrez le nombre(s) de ver(s) de"<< Boisson <<" bu(s) : " << endl;
déjà, c'est mal écrit, mais je serais étonné que le compilo te signale ça...
Un petit message d'erreur, peut-être?
J e viens d'essayé de corriger l'erreur et il y a plus de message d'erreur sur cette ligne.
Mais il y a encore un message d'erreur qui revient quand meme pourtant j'ai bien fait comme Caine l'a marqué.Code:cout << "Entrez le nombre(s) de ver(s) de boisson bu(s) : " << endl;
qui vient de ce bout de code:Code:Afficher_Calcul_Alcoolemie("vin",vin,alcoolemie,poids,factor);
Désoler je doit vraiment vous embeter[/code]Code:
1
2
3 case 2: //Si l'utilisateur a choisi 2 Afficher_Calcul_Alcolemie("biere",biere,alcolemie,poids,factor); break;
Non, tu ne nous embête pas :)
Reprend le code que je t'ai donné, le premier, compile et exécute le.
Ensuite renseigne les "case" que je n'ai pas renseigné.
Le code dans le bon ordre c'est:
Code:
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91 // Alcootest // // #include <cstdio> #include <cstdlib> #include <iostream> using namespace std; void Afficher_Calcul_Alcoolemie(string Boisson, float& NombreVerres, float& Alcoolemie, float poids, float factor) { cout << "Entrez le nombre(s) de ver(s) de"<< Boisson <<" bu(s) : " << endl; cin >> NombreVerres; Alcoolemie = NombreVerres * 10 / poids * factor; cout << "Votre taux d'alcoolemie est de : " << Alcolemie << endl; } int main() { //Declaration des variables int choix; float vin =10; float biere = 10; float whisky =10; float pastis =10; float champagne =10; float alcoolemie; float factor = 0.7; float NombreVerres; do { cout << "Ver(s) de vin : 1 " << endl << "Ver(s) de biere : 2 " << endl << "Ver(s) de whisky : 3 " << endl << "Ver(s) de pastis : 4 " << endl << "Ver(s) de champagne : 5 " << endl; cin >> choix; switch ( choix ) { case 1: //Si l'utilisateur a choisi 1 Afficher_Calcul_Alcoolemie("vin",vin,alcoolemie,poids,factor); break; case 2: //Si l'utilisateur a choisi 2 Afficher_Calcul_Alcolemie("biere",biere,alcolemie,poids,factor); break; case 3: //Si l'utilisateur a choisi 3 Afficher_Calcul_Alcoolemie("whisky",whisky,alcoolemie,poids,factor); break; case 4 : //Si l'utilisateur a choisi 4 Afficher_Calcul_Alcoolemie("pastis",pastis,alcoolemie,poids,factor); break; case 5 : //Si l'utilisateur a choisi 5 Afficher_Calcul_Alcoolemie("champagne",champagne,alcoolemie,poids,factor); break; }; default: cout << "Erreur de paramètre" << endl; } if(alcoolemie < 0.5) { printf("votre taux est normal, vous pouvez reprendre la route\n\n\n"); int main(); } else if(alcoolemie > 0.5) { printf("votre taux est trop important, vous ne devez pas prendre la route\n\n\n"); int main(); } break; } while(choix>5 || choix <=0); system ("PAUSE"); }
Salut.
Je viens d'essayer ton code mais j'ai encore un mesage d'erreur a cette ligne:
J'ai deja essayé avec Alcoolemie ecrit de cette façon mais apres sa passe a une autre ligne:Code:cout << "Votre taux d'alcoolemie est de : " << Alcolemie << endl;
Code:[Afficher_Calcul_Alcoolemie("vin",vin,alcoolemie,poids,factor);
up :D
Voici le code corrigé, et testé:
Qu'est ce qui a changé? Je te laisse me l'expliquer.Code:
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84 // Alcootest // // #include <iostream> #include <string> using namespace std; void Afficher_Calcul_Alcoolemie(string Boisson, float& NombreVerres, float& Alcoolemie, float factor) { float poids; cout << "Entrez le nombre(s) de ver(s) de"<< Boisson <<" bu(s) : " << endl; cin >> NombreVerres; cout << "Entrez votre poids" <<endl; cin >> poids; Alcoolemie = NombreVerres * 10 / poids * factor; cout << "Votre taux d'alcoolemie est de : " << Alcoolemie << endl; } int main() { //Declaration des variables int choix; float vin =10; float biere = 10; float whisky =10; float pastis =10; float champagne =10; float alcoolemie; float factor = 0.7; float NombreVerres; do { cout << "Ver(s) de vin : 1 " << endl << "Ver(s) de biere : 2 " << endl << "Ver(s) de whisky : 3 " << endl << "Ver(s) de pastis : 4 " << endl << "Ver(s) de champagne : 5 " << endl; cin >> choix; switch ( choix ) { case 1: //Si l'utilisateur a choisi 1 Afficher_Calcul_Alcoolemie("vin",vin,alcoolemie,factor); break; case 2: //Si l'utilisateur a choisi 2 Afficher_Calcul_Alcoolemie("biere",biere,alcoolemie,factor); break; case 3: //Si l'utilisateur a choisi 3 Afficher_Calcul_Alcoolemie("whisky",whisky,alcoolemie,factor); break; case 4 : //Si l'utilisateur a choisi 4 Afficher_Calcul_Alcoolemie("pastis",pastis,alcoolemie,factor); break; case 5 : //Si l'utilisateur a choisi 5 Afficher_Calcul_Alcoolemie("champagne",champagne,alcoolemie,factor); break; default: cout << "Erreur de paramètre" << endl; }; if(alcoolemie < 0.5) { printf("votre taux est normal, vous pouvez reprendre la route\n\n\n"); int main(); } else if(alcoolemie > 0.5) { printf("votre taux est trop important, vous ne devez pas prendre la route\n\n\n"); int main(); } break; } while(choix>5 || choix <=0); system ("PAUSE"); }
Salut.
C'est bon je viens de trouver ce qui n'allait pas.En faite il faut supprimer le poids qui se trouve la et dans les autres aussi:
Et j'avais mal placé un aussi un }; en bas du code.Code:Afficher_Calcul_Alcoolemie("vin",vin,alcoolemie,factor);
Apres ces modifications sa fonctionne tres bien par contre a quoi serve les noms entre parenthese?:
Code:("vin",vin,alcoolemie,factor);
Merci pour ton aide
Ils sont recuperer par ta fonction :
"vin" => Boisson
vin => NombreVerres
Alcoolemie => Alcoolemie
facor=>factor
Et ensuite traité par la fonction dans ta formule
Bien, tu progresses.
Les noms entre parenthèses sont les arguments de ta fonction.
Un exemple :
Pour l'appel 1, voici l'équivalent de ce qui se passe en assembleur:Code:
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 //Hors du main. void MaFonction(string UneChaine, int UnNombre, int& LeResultat) { LeResultat = UnNombre*UnNombre; cout << UneChaine <<UnNombre<<"*"<<UnNombre<<" est" << endl << LeResultat; } //Dans le main int main() { char Pause; int Nombre, Resultat; cout << "Saisissez un nombre" << endl; cin >> Nombre; //Appel 1 MaFontion("Le résultat du carré de",Nombre,Resultat); //Appel 2 MaFontion("Le carré du résultat précédent est",Resultat,Resultat); cin >> Pause; return EXIT_SUCCESS; }
Pour l'appel 2, voici l'équivelent :Code:
1
2
3
4
5
6
7
8 UnNombre = Nombre; LeResultat = UnNombre*UnNombre ; cout << "Le résultat du carré de" <<UnNombre<<"*"<<UnNombre<<" est" << endl << LeResultat; Resultat = LeResultat;
Tu comprends mieux le principe des fonctions comme ça?Code:
1
2
3
4
5
6
7
8 UnNombre = Resultat; LeResultat = UnNombre*UnNombre ; cout << "Le résultat du carré de" <<UnNombre<<"*"<<UnNombre<<" est" << endl << LeResultat; Resultat = LeResultat;
En faite si j'ai bien compri cela evite a chaque fois d'ecrire le calcule?
Cela permet de mettre du code en commun, de le capitaliser et de réutilisé dans d'autres programmes.
Si on ne tient pas compte des erreurs de la première mouture de ton code et de celle utilisant la fonction, tu ne trouves pas que cette dernière est plus facile à maintenir?
En effet, si tu veux changer de formule demain ou le texte afficher, tu changes la fonction au lieu de 15 lignes de code.
Plus tard, tu découvriras la compilation séparer, la modularité et l'encapsulation. Tu verras mieux l'intérêt de capitaliser du code.
Ok merci pour ton ces conseils mais j'ai juste une derniere questions.Quel excercice pourais-je faire maintenant car il y a telement de chapitres que pour choisir c'est pas simple?
up :D
up du soir bonsoir :D