variable1=variable2
copie la valeur de variable1 dans variable2, et renvoi true
variable1==variable2
renvoi true si la valeure de variable1 est la meme que celle de variable2, false sinon
Quelque chose de chi*** avec le C++ c´est que même si ton code est bon, et bah il peut ne pas fonctionner
Normalement s´il est bon, il marche ![]()
Il faut pas jeter la faute sur les autres
ok merci ruffi, peux tu maintenant m´expliquer le truc que tu as marqué juste avant pour que mon code soit plus propre ? je n´ai pas vraiment saisi...
je dis que des fois la syntaxe est bonne mais tu n´obtiens pas ce que tu veux? C´et ce qui m´ait ariivé juste avant avec les " =" et les " ==" et c´est ( je le reconnais) entierement de ma faute...
![]()
c´est un piege classique du C le = et ==
mais bon !
le switch te remplace une série de if sur la meme valeur :
if ( a==1) plouf();
else if ( a==2) paf();
else if ( a==3) pif();
< =>
switch(a)
{
case 1:
plouf();
break;
case 2:
paf();
break;
case 3:
pif();
break;
};
sinon, un conseil : je vois que dans chaque if, tu mets :
cout < < " Veuillez entrer le premier nombre..." < < endl;
cin > > a;
cout < < " Veuillez entrer le second nombre..." < < endl;
cin > > b;
pkoi est ce que tu ne mets pas ça AVANT tous les if ? ? comme ça, il te le demande a chaque fois, et donc, tu n´as plus a les remettre dans les if, puisque ça le demande dans tous les cas, tu vois ce que je veux dire ? ![]()
et ton programme sera + compacte !
Regarde la facon dont j´ai reformater ton code :
cin > > choix;
case(choix)
{
case 1 :
cout < < " Veuillez entrer le premier nombre..." < < endl;
cin > > a;
cout < < " Veuillez entrer le second nombre..." < < endl;
cin > > b;
cout < < " Le resultat est " < < a+b < < endl;
break;
case 2 :
cout < < " Veuillez entrer le premier nombre..." < < endl;
cin > > a;
cout < < " Veuillez entrer le second nombre..." < < endl;
cin > > b;
cout < < " Le resultat est " < < a-b < < endl;
break;
case 3 :
cout < < " Veuillez entrer le premier nombre..." < < endl;
cin > > a;
cout < < " Veuillez entrer le second nombre..." < < endl;
cin > > b;
cout < < " Le resultat est " < < a*b < < endl;
break;
case 4 :
cout < < " Veuillez entrer le premier nombre..." < < endl;
cin > > a;
cout < < " Veuillez entrer le second nombre..." < < endl;
cin > > b;
cout < < " Le resultat est " < < a/b < < endl;
break;
default :
cout < < " Mauvais choix" < < endl;
}
en gros, sa permet d´eviter trop de if a la suite
si tu met pas de break, il te fait meme la suivante ( sa peu etre pratique)
lol, ruffi, petite confusion :
case(choix) --> switch(choix)
et puis morderik : regarde ce que je te disais : il n´y a que du copier coller dans tous les cas dans le code :
comme en maths : factorise ! !
quand en maths tu as :
3*x + 3*y + 3*z = 3* ( x+y+z)
la pareil ![]()
tu mets les cin et les cout qui sont tous les meme avant le switch ( ou tes if)
Oups... fin de journee, il faut me pardonner
po grave, lol
ça arrive ![]()
c´est super ça je ne comprend rien ! !! JY² tu m´as expliqué un truc ou il fallait faire le truc des choix des nombre avant les if. Je ne comprend pas vraiament ce que tu veux dire qd aux trucs avec les switchs, ce n´est pas tres clair non plus...
merci qd même...
voila ton code :
if ( choix==1)
{
cout < < " Veuillez entrer le premier nombre..." < < endl;
cin > > a;
cout < < " Veuillez entrer le second nombre..." < < endl;
cin > > b;
cout < < " Le resultat est " < < a+b < < endl;
}
if ( choix==2)
{
cout < < " Veuillez entrer le premier nombre..." < < endl;
cin > > a;
cout < < " Veuillez entrer le second nombre..." < < endl;
cin > > b;
cout < < " Le resultat est " < < a-b < < endl;
}
if ( choix==3)
{
cout < < " Veuillez entrer le premier nombre..." < < endl;
cin > > a;
cout < < " Veuillez entrer le second nombre..." < < endl;
cin > > b;
cout < < " Le resultat est " < < a*b < < endl;
}
if ( choix==4)
{
cout < < " Veuillez entrer le premier nombre..." < < endl;
cin > > a;
cout < < " Veuillez entrer le second nombre..." < < endl;
cin > > b;
cout < < " Le resultat est " < < a/b < < endl;
}
voila un code + compacte :
cout < < " Veuillez entrer le premier nombre..." < < endl;
cin > > a;
cout < < " Veuillez entrer le second nombre..." < < endl;
cin > > b;
if ( choix==1)
{
cout < < " Le resultat est " < < a+b < < endl;
}
if ( choix==2)
{
cout < < " Le resultat est " < < a-b < < endl;
}
if ( choix==3)
{
cout < < " Le resultat est " < < a*b < < endl;
}
if ( choix==4)
{
cout < < " Le resultat est " < < a/b < < endl;
}
voila
faut comprendre que dans ton cas, ça revient au meme.
sinon, pour le switch, lis l´exemple de Ruffi ! c´est ton programme réécrit avec switch !
ok merci, je comprend mieux omme ça par contre je ne sais tjs pas ce que sont les switchs et à quoi ç sert...
c´est pour éviter de faire des séries de if
mais bon, si tu es bien avec les if, y´a pas de soucis ![]()
switch n´est pas fondamental.
Pitite explication d´un switch :
int nombre;
cout < < " Tapez un nombre inferieur strictement a 3" < < endl;
cin > > nombre;
switch ( nombre)
/ /tu fais un test sur la variable nombre
{
case 0: / /Si nombre = 0
cout < < " vous avez appuiye sur 0" < < endl;
break;
case 1: / /si nombre = 1
cout < < " vous avez appuiye sur 1" < < endl;
break;
case 2: / /si nombre = 2
cout < < " vous avez appuiye sur 2" < < endl;
break;
default:// si nombre different de 0, 1, et 2
cout < < " vous devez entrer un nombre inferieur strictement a 3" < < endl;
break;
}
En fait c´est tout simple.
Si le nombre = 0, le programme va executer les actions qui se trouve entre le
case 0:
et le premier break qu´il rencontrera.
si nombre = 0, dans l´exemple il ecrira " vous avez appuye sur 0" puis il sortira du switch et n´executera pas les autres ´case´
J´espere m´etre bien exprimer et que tu aura compris que l´on peut remplacer un switch par un if.
a toi de voir ce que tu prefere.
ok merci pour l´explication, je comprend bcp mieux comme ça !
de nada !
Re tout le monde. Devinez pourquoi je viens là... et oui une question encore! Cette fois ci c´est au sujet des fonctions avec uneliste variable d´arguments. Comment on fait pour utiliser les arguments définis puisque qu´on ne sais pas combien il y en a. Exemple on veut faire un système d´addition. Donc un certain nombre d´arguments sont définis mais comment faire pour que l´on les additionnes à la fin de la fonction vu qu´on ne sais pas combien il y en aura. Quelle fonction utiliser? Je peux vous donner l´esquisse de mon code mais c´est inachevé, mal fait et un peu barbare. Le voilà quand même(comme ça vous saurez de quoi je parle)
int main()
{
char tableau[13];
printf(" Voulez vous effectuer une addition ou une soustraction?\n");
scanf(" %s " , tableau);
if(tableau[0] = ´s´)
{
soustraction(int *argument1, . ..);
}
else if(tableau[0] = ´a´)
{
addition(int *argument1, . ..);
}
system("PAUSE");
return 0;
}
void addition(int *argument1, . ..)
{
int increment = 0;
int termes;
va_list pargument;
printf(" Entrez le premier terme de l´addition.\n");
scanf(" %d", &_start(pargument, argument1));
printf(" Entrez le nombre de termes restant dans l´addition.\n");
scanf(" %d", &);
for(increment = 0; increment < termes; increment++);
{
printf(" Terme numero %d :\n", increment+2);
scanf(" %d", &_arg(pargument, int));
}
Hmm apparemment je me suis complètement trompé
au niveau du fonctionnement de va_start
Ou ça doit être ça mais ça ne change rien à ma première question.
En fait je viens de remarquer que pas mal de problèmes venaient de ma mauvaise utilisation des
va_xxx . En gros prenez pas compte du code. J´espère que vous voyez au moins de quoi je parle.