CONSOMMATION INTERNET (COMPILÉ AVEC DEV C++)

Messages postés
17
Date d'inscription
mercredi 30 avril 2003
Statut
Membre
Dernière intervention
6 février 2005
- - Dernière réponse : cs_muntoya
Messages postés
18
Date d'inscription
dimanche 2 février 2003
Statut
Membre
Dernière intervention
22 décembre 2003
- 22 déc. 2003 à 13:42
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/18867-consommation-internet-compile-avec-dev-c

cs_muntoya
Messages postés
18
Date d'inscription
dimanche 2 février 2003
Statut
Membre
Dernière intervention
22 décembre 2003
-
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és
8
Date d'inscription
mardi 14 janvier 2003
Statut
Membre
Dernière intervention
22 décembre 2003
-
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és
8
Date d'inscription
mardi 14 janvier 2003
Statut
Membre
Dernière intervention
22 décembre 2003
-
... 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és
18
Date d'inscription
dimanche 2 février 2003
Statut
Membre
Dernière intervention
22 décembre 2003
-
/*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és
8
Date d'inscription
mardi 14 janvier 2003
Statut
Membre
Dernière intervention
22 décembre 2003
-
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