Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2820 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Aide pour programme

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Aide pour programme

n°1117317
subshadow
Posté le 12-06-2005 à 17:09:04  profilanswer
 

Salut à tous,
 
Je debute depuis ce matin dans le c++, et j'essais de créer un prog....
 
Voici les lignes:
 

Code :
  1. #include <iostream.h>
  2. void main()
  3. {
  4. //Deffinition des variables
  5. int choix;
  6. double a, b , c, d;
  7. //But du programme
  8. cout<<"Ceci est une calculatrice qui peut additionner, soustraire, multiplier ou diviser jusqu'a 4 nombre ensemble"<<endl;
  9. //Retour à la ligne
  10. cout<<endl;
  11. //Choix entre les multiplication division soustraction ou addition
  12. cout<<"Je veux:\n1-Additionner\n2-Soustraire\n3-Multiplier\n4-Diviser"<<endl;
  13. //Choix à taper
  14. cout<<endl;
  15. cout<<endl;
  16. cout<<endl;
  17. char fin;
  18. cout<<"Appuyer sur une touche pour quitter"<<endl;
  19. cin>>fin;
  20. }


 
Le probleme est que je ne sais pas comment continuer pour faire le choix entre 1/2/3/4 pour les different modes de calculs....
 
Et ensuite, quand on fait un choix, que sa renvois vers quelque chose....
 
Si vous pouvez m'aider....
 
Merci d'avance! [:athlonxp2100+]


---------------
Mon Topic à Upper
mood
Publicité
Posté le 12-06-2005 à 17:09:04  profilanswer
 

n°1117320
KangOl
Profil : pointeur
Posté le 12-06-2005 à 17:12:32  profilanswer
 

et 15€ et un mars aussi ?


---------------
Nos estans firs di nosse pitite patreye...
n°1117321
subshadow
Posté le 12-06-2005 à 17:13:45  profilanswer
 

Ben nan c'est simplement que je demande de l'aide, je pensait qu'un forum était fais pour sa...
non?


---------------
Mon Topic à Upper
n°1117331
KangOl
Profil : pointeur
Posté le 12-06-2005 à 17:21:22  profilanswer
 

Dis, tu as cherché dans les pages d'or ?


---------------
Nos estans firs di nosse pitite patreye...
n°1117332
subshadow
Posté le 12-06-2005 à 17:21:38  profilanswer
 

Les pages d'or?


---------------
Mon Topic à Upper
n°1117333
KangOl
Profil : pointeur
Posté le 12-06-2005 à 17:22:33  profilanswer
 

c'est un expression :o
 
fait un recherche (google, koders, forums) avant de poser un question :o


---------------
Nos estans firs di nosse pitite patreye...
n°1117336
chrisbk
-
Posté le 12-06-2005 à 17:23:15  profilanswer
 

bin tu utilises cin pour recuperer l'entrée utilisateur et tu fais un switch dessus

n°1117341
subshadow
Posté le 12-06-2005 à 17:27:19  profilanswer
 

no comment.


Message édité par subshadow le 12-06-2005 à 19:23:23

---------------
Mon Topic à Upper
n°1117342
subshadow
Posté le 12-06-2005 à 17:27:29  profilanswer
 

Merci chris!


---------------
Mon Topic à Upper
n°1117343
chrisbk
-
Posté le 12-06-2005 à 17:27:56  profilanswer
 

vla que je vais encore me faire gueuler dessus alors que j'aide [:pingouino]

mood
Publicité
Posté le 12-06-2005 à 17:27:56  profilanswer
 

n°1117345
subshadow
Posté le 12-06-2005 à 17:29:55  profilanswer
 

Non chris, c'est pas toi! ;)
 
C'est kangoOl qui m'envois vers google! ;)


---------------
Mon Topic à Upper
n°1117465
jagstang
Pa Capona ಠ_ಠ
Posté le 12-06-2005 à 19:18:29  profilanswer
 

Taz a vu ce topic ?


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°1117468
chrisbk
-
Posté le 12-06-2005 à 19:19:02  profilanswer
 

on s'en fout non ?

n°1117483
subshadow
Posté le 12-06-2005 à 19:25:38  profilanswer
 

Chrisbk, sa m'a bien aidé ce que tu m'a dis...
 
J'ai reussi à faire la fonction switch, et j'ai appris pas mal de chose....
 
Mais la, malgres mes recherches, je ne trouve pas comment allez plus loins...
 
C'est à dire, dans mon switch, j'ai 4 case,  donc qui doivent renvoyer vers quelque chose, mais comment faire ces quelques choses?
 
Comment les introduire je veux dire....
 
Tu vois comment faire?


---------------
Mon Topic à Upper
n°1117490
chrisbk
-
Posté le 12-06-2005 à 19:30:18  profilanswer
 

switch(monInt) {
 case 1 :
    ...  
    break;
 case 2 :  
    ...
    break;
}
 
 
tu remplace les ... par ce qui t'interesse

n°1117533
subshadow
Posté le 12-06-2005 à 19:58:21  profilanswer
 

Code :
  1. //Choix entre les multiplication division soustraction ou addition
  2. cout<<"Je veux:\n1-Additionner\n2-Soustraire\n3-Multiplier\n4-Diviser"<<endl;
  3. //Choix à taper
  4. cin>>choix;
  5. //Switch pour le choix
  6. switch (choix)
  7. {
  8. case 1 : choix = 1;
  9. case 2 : choix = 2;
  10. case 3 : choix = 3;
  11. case 4 : choix = 4;
  12. default : cout<<"Erf, t'es con ou quoi? Tu sais pas compter jusqu'a 4?";
  13. }


 
C'est ce que j'avais fais justement, mais c'est après que je ne sais pas comment faire....
Si je tape "1" par exemple, je devrais allé à la sous categorie: addition, mais comment faire cette sous categorie?
 
PS: Et à quoi sers le break? Je n'ai pas d'erreur de compil sans sa....
 
Encore merci de ton aide!


---------------
Mon Topic à Upper
n°1117538
Elmoricq
Modérateur
Posté le 12-06-2005 à 20:02:24  profilanswer
 

Le break permet de sortir du switch une fois que tu as fini avec le cas en cours.
Sinon, il exécutera tout à partir du cas trouvé, jusqu'à la fin du switch.

n°1117541
subshadow
Posté le 12-06-2005 à 20:05:21  profilanswer
 

A oki je vois, donc il est très necessaire.
Merci l'ami! ;)


---------------
Mon Topic à Upper
n°1117542
Normad
Ah! Vanilla-San
Posté le 12-06-2005 à 20:05:44  profilanswer
 

1- Tes catégories, tu les mets dans les "case" [:pingouino]
2- Le break... le switch-case du C/C++ utilise le principe du fall-through.
Qu'est-ce que ça veut dire?
Tout simplement que quand tu arrives à la fin du "case 1", le programme va continuer non pas parce ce qui se trouve à la fin du switch mais par le "case 2".
 
Donc dans ton code si on rentre "1", le programme va exécuter:

Code :
  1. choix=1;
  2. choix=2;
  3. choix=3;
  4. choix=4;
  5. cout<<"Erf, t'es con ou quoi? Tu sais pas compter jusqu'a 4?";


et non pas simplement

Code :
  1. choix = 1;


J'ajouterais que les commandes sont quelque peu inutiles, dans la mesure où à chaque fois tu réaffectes dans "choix" la valeur qui y est déjà -_-
 
Donc ce que tu dois faire:

Code :
  1. switch(choix)
  2. {
  3.     case 1:
  4.         // Traitement en cas d'addition
  5.         break; // pour ne pas utiliser le fall-through
  6.     case 2:
  7.         // Traitement en cas de soustraction
  8.         break;
  9.     case 3:
  10.         // Traitement en cas de multiplication
  11.         break;
  12.     case 4:
  13.         // Traitement en cas de division
  14.         break;
  15.     default:
  16.         // Traitement en cas d'erreur de saisie
  17. }
  18. // Suite du code


subshadow a écrit :

A oki je vois, donc il est très necessaire.
Merci l'ami! ;)


Il n'est pas nécessaire.
Il est important de savoir l'utiliser, nuance, mais on peut vouloir utiliser le fall-through, par exemple si on a des traitements qui s'effectuent sur plusieurs branches du switch.


Message édité par Normad le 12-06-2005 à 20:06:51

---------------
[Masklinn intérimaire Vediorbis] Kami-sama wa Ecchi ga dai-kirai desu!
n°1117555
subshadow
Posté le 12-06-2005 à 20:13:00  profilanswer
 

Merci beaucoup normad! :jap:
 
Par contre, j'ai quelques difficultées la!!!
 
Enfait, le "case 1" veux dire "choix=1"???
 
Traitement en cas d'addition, etc, sa veus dire quoi traitement?  
 
Desolé de toutes ces questions, mais je debute... :sweat:  


---------------
Mon Topic à Upper
n°1117558
Normad
Ah! Vanilla-San
Posté le 12-06-2005 à 20:18:57  profilanswer
 

subshadow a écrit :

Merci beaucoup normad! :jap:
 
Par contre, j'ai quelques difficultées la!!!
 
Enfait, le "case 1" veux dire "choix=1"???


Oui
switch(xyz) va dire au compilateur "teste les valeurs de xyz"
et les "case ijk" signifient "si la valeur testée [dans le switch] est ijk alors fait ça"
 
Donc quand t'as

Code :
  1. switch(x) { case 1: /* code */ }


ben le /* code */ va s'effectuer si x==1

Citation :

Traitement en cas d'addition, etc, sa veus dire quoi traitement?


Le traitement, ce sont les opérations que tu effectues.
Tu as une entrée, tu traites ton entrée (effectue des traitements dessus > des calculs par exemples) et tu récupères une sortie.


---------------
[Masklinn intérimaire Vediorbis] Kami-sama wa Ecchi ga dai-kirai desu!
n°1117559
fhr
Posté le 12-06-2005 à 20:21:19  profilanswer
 

Si tu es dans le case 1, ça veut dire que l'utilisateur veut faire une addition, donc à toi de l'amener à faire une addition, par exemple :
 
demander a,demander2,retourner a+b.
 

Code :
  1. case 1:
  2. int a,b;
  3. cin>>a;
  4. cin>>b;
  5. cout<<"Resultat de l'addition :"<<a<<" + "<<b<<" = "<<a+b;


 

n°1117560
tholdan
Posté le 12-06-2005 à 20:21:45  profilanswer
 

subshadow a écrit :

Merci beaucoup normad! :jap:
 
Par contre, j'ai quelques difficultées la!!!
 
Enfait, le "case 1" veux dire "choix=1"???
 
Traitement en cas d'addition, etc, sa veus dire quoi traitement?  
 
Desolé de toutes ces questions, mais je debute... :sweat:


Oui, apparement "case 1" veut dire "choix=1" et le traitement en cas d'addition, c'est ce que le programme va faire si l'utilisateur choisi de faire une addition : tu demande à l'utilisateur de rentrer deux chiffres successivement, et après le programme additionne les deux entrées. :)


---------------
Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn
n°1117607
subshadow
Posté le 12-06-2005 à 21:16:18  profilanswer
 

Oki merci à tous, j'essais sa!
Mais mon but de faire avec 4 termes, sa va etre très dur....


---------------
Mon Topic à Upper
n°1117645
subshadow
Posté le 12-06-2005 à 22:28:29  profilanswer
 

Sa y es j'ai reussi! :)
Merci à tous!
 
Seulement, encore besoin de votre aide....
 

Code :
  1. case 1 :
  2.     cout<<"Entrer les termes a additionner:"<<endl;
  3.     //Definition de la valeur des termes
  4.     cout<<"a=";
  5.     cin>>a;
  6.     cout<<"b=";
  7.     cin>>b;
  8.     cout<<"c=";
  9.     cin>>c;
  10.     cout<<"d=";
  11.     cin>>d;


 
Voila, enfait, l'utilisateur est obliger de rentrer 4 termes à additionner, mais je voudrais qu'il puisse en rentrer  2 3 ou 4 comme il veux....
 
J'ai pensé refaire un switch par dessus, mais bon....
 
Alors, qu'en pensez vous?


---------------
Mon Topic à Upper
n°1117778
mcyrb
Mieux vaut tard que plus tard
Posté le 13-06-2005 à 00:51:35  profilanswer
 

Esce que tu prefere qu'il dise à l'avance le nombre de termes qu'il souhaite entrer ou es ce qu'une fin de saisie de terme se caracterise par quelque chose de particulier (comme un caractère * ou ce que tu veux) ?
 
Sinon ce que je peux te conseiller c'est pas un switch (lol ca risque d'etre super lourd) mais de faire une boucle où le nombre d'executions correspond au nombre de termes (ou au nombre de termes -1, tout dépend de comment tu fais ton algo).
 
Enfin mon principal conseil serait quand même de bien penser l'algorithme de ton programme plutot que de vouloir sortir des switch à chaque coin de rue  ;)
 
EDIT: Un autre petit conseil: une addition de 4 termes n'implique pas la présence de 4 variables, imagine je veux additionner 1000 termes... tu crois que je vais m'amuser à déclarer 1000 variables ?


Message édité par mcyrb le 13-06-2005 à 01:07:29
n°1117807
subshadow
Posté le 13-06-2005 à 07:45:13  profilanswer
 

Merci!!!!
 
Mais non, je prefere le caractere * ou autre qui designe qu'il n'ya pas de nombre....
 
Je pense que ce sera plus court.....
 
Et pour ton edit, j'ai pas tout compris....?


---------------
Mon Topic à Upper
n°1118196
mcyrb
Mieux vaut tard que plus tard
Posté le 13-06-2005 à 12:28:09  profilanswer
 

subshadow a écrit :

Merci!!!!
 
Mais non, je prefere le caractere * ou autre qui designe qu'il n'ya pas de nombre....
 
Je pense que ce sera plus court.....
 
Et pour ton edit, j'ai pas tout compris....?


 
Mon edit signifie que:

Code :
  1. cout << "a=";
  2. cin >> a;
  3. cout << "b=";
  4. cin >> b;
  5. cout << "c=";
  6. cin >> c;
  7. cout << "d=";
  8. cin >> d;
  9. int resultat = a + b + c + d;
  10. cout << "Résultat : " << resultat << endl;


Equivaut à:

Code :
  1. cout << "a=";
  2. cin >> a;
  3. cout << "b=";
  4. cin >> b;
  5. a = a + b;
  6. cout << "c=";
  7. cin >> b;
  8. a = a + b;
  9. cout >> "d=";
  10. cin >> b;
  11. a = a + b;
  12. cout << "Résultat : " << a << endl;


Meme résultat avec 2 variables.
Et une addition de 1000 termes se fait aussi avec 2 variables.
 
Enfin j'avais mal lu le post de fhr donc si comme lui tu veux réécrire littéralement l'addition à la fin ca change tout ce que je viens de dire  ;)  
 
Sinon je te laisse de débrouiller si t'as compris ce que je voulais dire avec mon histoire de boucle.


Message édité par mcyrb le 13-06-2005 à 12:34:23
n°1118242
subshadow
Posté le 13-06-2005 à 12:56:49  profilanswer
 

J'ai pas super bien compris, mais je vais essayer de chercher....
PArce que j'ai pas compris ta technique est plus longue, donc quel interet?
Mais merci beaucoup....
 


---------------
Mon Topic à Upper
n°1118274
mcyrb
Mieux vaut tard que plus tard
Posté le 13-06-2005 à 13:32:40  profilanswer
 

C'est pas le nombre de lignes qui compte ;)
 
Et puis ma méthode vu que c'est toujours la mm chose qui se repete tu peux la transformer en boucle qui tournera autant que necessaire... (et qui peut tourner 1000 fois pour une addition de 1000 termes).
Je serais curieux de voir comment tu programmerais une addition de 1000 termes.


Message édité par mcyrb le 13-06-2005 à 13:35:49
n°1118981
subshadow
Posté le 13-06-2005 à 23:36:29  profilanswer
 

LOL!
 
Je debut juste, faut se rappeller! :D
 
Merci beaucoup de ton aide!
 
J'avance graçe à tout le monde!


---------------
Mon Topic à Upper
n°1119354
ritzle
Posté le 14-06-2005 à 12:03:37  profilanswer
 

le mieux c'est de faire une boucle while qui continue tant qu'on a pas rentré '*' par exemple, et de mettre tous les termes de l'addition dans un tableau. Et on fait l'addition à la sortie de la boucle, ou à chaque occurence de la boucle, au choix.
Voila, je te laisse chercher "boucle" et "tableau"

n°1121266
subshadow
Posté le 15-06-2005 à 19:32:33  profilanswer
 

Merci beaucoup!
 
Je viens de commander: "C++ pour les nuls", un petit livre sympatique qui devrait bien m'inicier au c++! :)


---------------
Mon Topic à Upper
n°1121286
Elmoricq
Modérateur
Posté le 15-06-2005 à 19:56:40  profilanswer
 

[:le poney de mr pink]  
 
Je pense que tu aurais mieux fait de commander Le langage C++, de Bjarne Stroustrup.
C'est le monsieur qui est à l'origine du C++.


Message édité par Elmoricq le 15-06-2005 à 19:58:03
n°1121437
subshadow
Posté le 16-06-2005 à 02:07:23  profilanswer
 

Ouai mais c'set pas le même price, et peut etre pas la même fasson d'expliquer, alors que l'autre edition, je connais! ;)
Sa je connaissait pas! :)


---------------
Mon Topic à Upper
n°1745631
inblack
Posté le 12-06-2008 à 18:24:28  profilanswer
 

y a pas une edition pour les tres nuls...parce que ca risque d'etre compliqué...
:d:d:d

n°1746457
kyntriad
Posté le 14-06-2008 à 17:10:00  profilanswer
 

inblack a écrit :

y a pas une edition pour les tres nuls...parce que ca risque d'etre compliqué...
:d:d:d


 
En même temps vu le code qui est présent dans ton thread, c'est un peu osé de se moquer des débutants.
 
Bonne chance Subshadow. edit de la pelle  :pt1cable:


Message édité par kyntriad le 15-06-2008 à 02:52:17

---------------
You can't start a fire with moonlight
n°1746545
Elmoricq
Modérateur
Posté le 14-06-2008 à 21:34:57  profilanswer
 

Pelle d'or of teh day.
 
http://hfr-rehost.net/www.nextgeneration.fr/docs/hfr/magiccards/deterrage.png


Message édité par Elmoricq le 14-06-2008 à 21:35:32
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Aide pour programme

 

Sujets relatifs
Aide pour Programme de génération aléatoire de texte (Noob)urgent, svp, j'ai besoin de l'aide sur ce programme en c
aide programme gestion emailsbesoin d'aide pour un programme
[Aide pour débutant] Programme pour lire info sur port parallèleAide de méthode de programmation pour mon programme
aide pour un programme en C (TARJAN)débutant c++ gtk cherche aide pour petit programme
Aide pour un petit programme très simple ![C++] Demande d'aide pour un programme
Plus de sujets relatifs à : Aide pour programme


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR