cs_muntoya
Messages postés18Date d'inscriptiondimanche 2 février 2003StatutMembreDernière intervention22 décembre 2003 22 déc. 2003 à 13:42
Tu as raison Irsla.
Enfin mon but est de lui expliquer rapido l'utilisation des fonctions, meme si il reste des petites retouches effectivemment possibles comme tu l'as bien décrit ou comme la declaration stdlib.h qui est inutile pour dev c++...ou d'autres petits trucs sympas.
Enfin voila, bonne continuation à tous.
Irsla
Messages postés8Date d'inscriptionmardi 14 janvier 2003StatutMembreDernière intervention22 décembre 2003 22 déc. 2003 à 12:29
ps: if (g>0)
{
cout<<"il vous reste "<<g<<" heures pour aujourd'hui ";
}
if (g<0)
{
cout<<"vous avez depasse votre forfait de "<<g<<" heures pour aujourd'hui ";
}
ici coter opti y'a mieux si g < 0 alors il ne sera jamais > 0 par consequent ca sert a rien de le lui faire tester ;)
Irsla
Messages postés8Date d'inscriptionmardi 14 janvier 2003StatutMembreDernière intervention22 décembre 2003 22 déc. 2003 à 12:28
... sans vouloir etre mechant qd on veut proposer une amelioration autant qu'elle soit la "meilleur possible" et en lisant 1 fois le code on se rend bien vite compte des ptit truc qui cloche :
1:
switch (a)
{
case 1 :
Calcul();
break;
default : // en realité si tu touche autre que 2, le programme
return 0; // se fermera aussi
}
ne sert a rien si il n'y a qu'un seul case dans ce cas un simple if ... else aurai suffit
2:
if (g>0)
{
cout<<"il vous reste "<<g<<" heures pour aujourd'hui ";
}
if (g<0)
{
cout<<"vous avez depasse votre forfait de "<<g<<" heures pour aujourd'hui ";
}
et si g == 0 ? ...
pas de bol c justemement a cette valeur la qu'il faut reagir ;)
enfin bon ;)
sinon juste une petite precision utile pour anthonyl
essaye de donner des noms de variable significative je sais que ca peut paraitre inutil mais pour de tres gros codes ( ou ne serait ce des codes (algo) complexe) ca devient tres vite obligatoire.
Sinon ton code va vite ressembler a kkle chose d'imcomprehensible.
ps: moi aussi au debut je nommais toutes mes variable a,b,c,d .... ;)
@++
Irsla
cs_muntoya
Messages postés18Date d'inscriptiondimanche 2 février 2003StatutMembreDernière intervention22 décembre 2003 22 déc. 2003 à 12:18
/*Resalut. Voila, au PLUS SIMPLE et en respectant au maximum ton code
je te propose une solution pour LES FONCTIONS et éviter les GOTOS .
fonction void Calcul() = soit un bloc d'instructions qui regoupe une grande partie
de ton programme.
ici la fonction Calcul() est déclaré avant le la fonction principale.
Si tu placais ta fonction après, alors tu devrais déclarer le prototype
de ta fonction avant main()
EXEMPLE =
#include
void Calcul(); // PROTOTYPE DE LA FONCTION.
void Calcul()
{
ton code
}
void main()
{
ton code
}
VOila, j'espere que ca pourra t'aider. Bonne continuation.
------------------------------------------ */
#include
#include <stdlib.h>
void Calcul()
{
int a;
float b,c,d,e,f,g;
cout<<"tapez le nombres d'heures de votre forfait internet
";
cin>>e;
cout<<"tapez le nombres de jours du mois (1=30,2=31,3=29)
";
cout<<"
";
do{ // ici, une boucle post-testée. elle effectue son test de continuation à la fin
//de la boucle et tant que l'entrée n'est pas valide (entre 1 et 3), l'utilisateur
// devra recommencer. Il existe bien sur, d'autres types de boucles...
cin>>a;
switch (a)
{
case 1 : c=e/30;
break;
case 2 : c=e/31;
break;
case 3 : c=e/29;
break;
}
if ( a > 3 )cout << "Erreur: Choix compris entre 1 et 3" <<endl;
// si supérieur à 3, onmarque un message d'erreur. :)
}while ((a< 1)||(a > 3)); // attente d'un chiffre entre 1 et 3
//sinon a est correcte et on passe à la suite...
cout<<"tapez le jour actuel
";
cin>>b;
d=c*b;
cout<<"tapez le nombres d'heures que vous avez utilise ce mois ci
";
cin>>f;
g=d-f;
if (g>0)
{
cout<<"il vous reste "<<g<<" heures pour aujourd'hui
";
}
if (g<0)
{
cout<<"vous avez depasse votre forfait de "<<g<<" heures pour aujourd'hui
";
}
} // fin de la fonction Calcul
void main()
{
cout<<"-------------------------------------------------------------------------------
";
cout<<"----------------- PROGRAMME DE CALCUL DE LA CONSAMATION INTERNET --------------
";
cout<<"-------------------------------------------------------------------------------
";
cout<<"-------------------------- ecrit par Anthony Legrand --------------------------
";
cout<<"-------------------------------------------------------------------------------
";
cout<<"
""
""
";
Calcul(); // insertion du code a cet endroit dans le programme..
int a=0;
cout<<"pour recomencer, tapez 1, pour arreter tapez 2
";
cin>>a;
switch (a)
{
case 1 :
Calcul();
break;
default : // en realité si tu touche autre que 2, le programme
return 0; // se fermera aussi
}
} // fin de main()
Irsla
Messages postés8Date d'inscriptionmardi 14 janvier 2003StatutMembreDernière intervention22 décembre 2003 21 déc. 2003 à 16:34
oui les fonctions , c toujours dificile qd on debute, moi j'aurai plutot tendance a te conseiller de revoir les typage des variable , ainsi eviter les phrases du style :"vous avez depasse votre forfait de -15,25 heures pour aujourd'hui"
parce que perso je ne connais aps les heures negative (d'un abs()) resoudra sans pb 2emement je ne sias pas que 0,25 heures correspond a 15 minutes (et la je te conseille histoire de jouer avec les chiffre de recoder la fonction qui permet de donner le nombre d'heures ainsi que le nombre de minutes)
voila ;) sinon c pas mal et ca change des convertisseurs (arf oui celle la je l'avais faite lol )
bon courage et continu
Irsla
D1m3x
Messages postés402Date d'inscriptionsamedi 28 décembre 2002StatutMembreDernière intervention21 juillet 20051 21 déc. 2003 à 16:09
C'est sur je te conseille bien sur également les fonctions..
Saros:
cout<<"tapez le nombres de jours du mois (1=30,2=31,3=29)
";
pourquoi est-ce que l'user aurait-il des problèmes lorsque le mois est de 29 jours, ce serait plutôt lorsque le mois est de 28 jours qu'il y aura un problème! ;)
anthonyl, essaye de nous faire une petite mise à jour avec des fonctions.. comme ça si t'as encore des problème on sera la :)
Ciao ;)
Saros
Messages postés921Date d'inscriptionvendredi 20 décembre 2002StatutMembreDernière intervention23 septembre 2010 21 déc. 2003 à 10:23
Cf plus haut, si ce n'est que l'utilisateur est un peu embêté si le mois fait 29 jours...
Sinon, bon courage pour la suite
Saros
cs_muntoya
Messages postés18Date d'inscriptiondimanche 2 février 2003StatutMembreDernière intervention22 décembre 2003 20 déc. 2003 à 20:21
Salut,
Clair, il faut utiliser les fonctions. De plus, n' ajoutes pas des parenthèses pour afficher tes textes, cela est inutile. :-) ...
Oki, sinon je te dis bonne continuation ...
Muntoya.
cs_anthonyl
Messages postés1Date d'inscriptionmardi 3 juin 2003StatutMembreDernière intervention20 décembre 2003 20 déc. 2003 à 20:09
tout d'abord merci de me conseiller c'est en effet mon premier programme et j'ai visé au plus simple mais je serait content de pouvoir etre conseillé par tous ceux qui on plus d'experience que moi!
tous vos comentaires sont les bienvenus
cordialement
-Tony-
randiox
Messages postés17Date d'inscriptionmercredi 30 avril 2003StatutMembreDernière intervention 6 février 2005 20 déc. 2003 à 18:55
Salut, juste pour dire que 'goto' est tres décomseilé en c++, ce n'est plus du Ti-basic ;), essaye avec des fonctions.
22 déc. 2003 à 13:42
Enfin mon but est de lui expliquer rapido l'utilisation des fonctions, meme si il reste des petites retouches effectivemment possibles comme tu l'as bien décrit ou comme la declaration stdlib.h qui est inutile pour dev c++...ou d'autres petits trucs sympas.
Enfin voila, bonne continuation à tous.
22 déc. 2003 à 12:29
{
cout<<"il vous reste "<<g<<" heures pour aujourd'hui ";
}
if (g<0)
{
cout<<"vous avez depasse votre forfait de "<<g<<" heures pour aujourd'hui ";
}
ici coter opti y'a mieux si g < 0 alors il ne sera jamais > 0 par consequent ca sert a rien de le lui faire tester ;)
22 déc. 2003 à 12:28
1:
switch (a)
{
case 1 :
Calcul();
break;
default : // en realité si tu touche autre que 2, le programme
return 0; // se fermera aussi
}
ne sert a rien si il n'y a qu'un seul case dans ce cas un simple if ... else aurai suffit
2:
if (g>0)
{
cout<<"il vous reste "<<g<<" heures pour aujourd'hui ";
}
if (g<0)
{
cout<<"vous avez depasse votre forfait de "<<g<<" heures pour aujourd'hui ";
}
et si g == 0 ? ...
pas de bol c justemement a cette valeur la qu'il faut reagir ;)
enfin bon ;)
sinon juste une petite precision utile pour anthonyl
essaye de donner des noms de variable significative je sais que ca peut paraitre inutil mais pour de tres gros codes ( ou ne serait ce des codes (algo) complexe) ca devient tres vite obligatoire.
Sinon ton code va vite ressembler a kkle chose d'imcomprehensible.
ps: moi aussi au debut je nommais toutes mes variable a,b,c,d .... ;)
@++
Irsla
22 déc. 2003 à 12:18
je te propose une solution pour LES FONCTIONS et éviter les GOTOS .
fonction void Calcul() = soit un bloc d'instructions qui regoupe une grande partie
de ton programme.
ici la fonction Calcul() est déclaré avant le la fonction principale.
Si tu placais ta fonction après, alors tu devrais déclarer le prototype
de ta fonction avant main()
EXEMPLE =
#include
void Calcul(); // PROTOTYPE DE LA FONCTION.
void Calcul()
{
ton code
}
void main()
{
ton code
}
VOila, j'espere que ca pourra t'aider. Bonne continuation.
------------------------------------------ */
#include
#include <stdlib.h>
void Calcul()
{
int a;
float b,c,d,e,f,g;
cout<<"tapez le nombres d'heures de votre forfait internet
";
cin>>e;
cout<<"tapez le nombres de jours du mois (1=30,2=31,3=29)
";
cout<<"
";
do{ // ici, une boucle post-testée. elle effectue son test de continuation à la fin
//de la boucle et tant que l'entrée n'est pas valide (entre 1 et 3), l'utilisateur
// devra recommencer. Il existe bien sur, d'autres types de boucles...
cin>>a;
switch (a)
{
case 1 : c=e/30;
break;
case 2 : c=e/31;
break;
case 3 : c=e/29;
break;
}
if ( a > 3 )cout << "Erreur: Choix compris entre 1 et 3" <<endl;
// si supérieur à 3, onmarque un message d'erreur. :)
}while ((a< 1)||(a > 3)); // attente d'un chiffre entre 1 et 3
//sinon a est correcte et on passe à la suite...
cout<<"tapez le jour actuel
";
cin>>b;
d=c*b;
cout<<"tapez le nombres d'heures que vous avez utilise ce mois ci
";
cin>>f;
g=d-f;
if (g>0)
{
cout<<"il vous reste "<<g<<" heures pour aujourd'hui
";
}
if (g<0)
{
cout<<"vous avez depasse votre forfait de "<<g<<" heures pour aujourd'hui
";
}
} // fin de la fonction Calcul
void main()
{
cout<<"-------------------------------------------------------------------------------
";
cout<<"----------------- PROGRAMME DE CALCUL DE LA CONSAMATION INTERNET --------------
";
cout<<"-------------------------------------------------------------------------------
";
cout<<"-------------------------- ecrit par Anthony Legrand --------------------------
";
cout<<"-------------------------------------------------------------------------------
";
cout<<"
""
""
";
Calcul(); // insertion du code a cet endroit dans le programme..
int a=0;
cout<<"pour recomencer, tapez 1, pour arreter tapez 2
";
cin>>a;
switch (a)
{
case 1 :
Calcul();
break;
default : // en realité si tu touche autre que 2, le programme
return 0; // se fermera aussi
}
} // fin de main()
21 déc. 2003 à 16:34
parce que perso je ne connais aps les heures negative (d'un abs()) resoudra sans pb 2emement je ne sias pas que 0,25 heures correspond a 15 minutes (et la je te conseille histoire de jouer avec les chiffre de recoder la fonction qui permet de donner le nombre d'heures ainsi que le nombre de minutes)
voila ;) sinon c pas mal et ca change des convertisseurs (arf oui celle la je l'avais faite lol )
bon courage et continu
Irsla
21 déc. 2003 à 16:09
Saros:
cout<<"tapez le nombres de jours du mois (1=30,2=31,3=29)
";
pourquoi est-ce que l'user aurait-il des problèmes lorsque le mois est de 29 jours, ce serait plutôt lorsque le mois est de 28 jours qu'il y aura un problème! ;)
anthonyl, essaye de nous faire une petite mise à jour avec des fonctions.. comme ça si t'as encore des problème on sera la :)
Ciao ;)
21 déc. 2003 à 10:23
Sinon, bon courage pour la suite
Saros
20 déc. 2003 à 20:21
Clair, il faut utiliser les fonctions. De plus, n' ajoutes pas des parenthèses pour afficher tes textes, cela est inutile. :-) ...
Oki, sinon je te dis bonne continuation ...
Muntoya.
20 déc. 2003 à 20:09
tous vos comentaires sont les bienvenus
cordialement
-Tony-
20 déc. 2003 à 18:55
cordialement,
randiox