C++ {revenir au début d'un programme}

Résolu/Fermé
lolseb Messages postés 76 Date d'inscription dimanche 31 octobre 2004 Statut Membre Dernière intervention 27 février 2011 - 31 janv. 2008 à 17:31
 maxfares - 3 avril 2012 à 01:10
Bonjour,
Je suis un tout nouveau en C++ et j'ai quelque soucis avec un exercice j'ai rien trouvé sur internet pour m'aider... il parle tous de boucle avec Whyle, For, Do whyle et d'autre... Mais moi c'est pas sa que je veux. L'excerice nous dit une fois les moyennes calculé, l'opérateur doit pouvoir chosir si il veut continuer ou non. S'il dit non, le programme se ferme, sinon il recommence en lui demandant les variables, coment je peux faire!? La fonction return, j'ai esayer sa marche po... De plus c'ets pas un exercie que je doit rendre c'est pour m'amuser que je le fait chez moi et aussi parceque sa m'interesse et je trouve sa rigolo.

Voici mon programme :


#include <math.h>
#include <conio.h>
#include <stdio.h>

int main()
{
double X,Y,Z1,Z2,Z3; //Variable de calcul
printf("\nIci ce sont les 44calculs de moyennes avec deux valeurs : \n");
printf("\tVeuillez donner une valeur positive : ");
scanf("%lf",&X);
printf("\tVeuillez donner une seconde valeur positive : ");
scanf("%lf",&Y);
printf("\nResultats :");
;
Z1 = (X+Y)/2; //calcul moyenne Arythmétique
;
printf("\nMoyenne Arythmetique : %lf",Z1);
;
Z2 = sqrt((X*Y)); //calcul moyenne Geométrique
;
printf("\nMoyenne Geometrique : %lf",Z2);
;
Z3 = (2/((1/X)+(1/Y))); //calcul moyenne Geométrique
;
printf("\nMoyenne Harmonique : %lf",Z3);
printf("\n\n\n\n\n\t\t Soyez heureux je me suis fait chier \2\2\2"); //rire
getch();
;
}

Merci. Lolseb

16 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 840
31 janv. 2008 à 17:51
Alors déjà, c'est "while" et pas "whyle" !
Et sinon, while c'est de l'anglais et ça signifie "tant que"
Donc :

//Initialisation de la variable reponse (contiendra la réponse de l'utilisateur)
char rep='O'; 

//Tant Que rep = O (je boucle)
while(rep=='O'){

   //Tu mets tes variables, tes données

   //Demande à l'utilisateur s'il veut continuer, tapez O pour Oui ou N pour Non
   cout << "Continuer (O/N) : ";
   //Mets la réponse de l'utilisateur dans la variable rep
   cin >> rep;
   //Reboucle si l'utilisateur a tapé O
}

1
lolseb Messages postés 76 Date d'inscription dimanche 31 octobre 2004 Statut Membre Dernière intervention 27 février 2011
31 janv. 2008 à 17:47
Ouai mais je suis vraiment débutant alors je voit pas comment le faire.... si tu pouvait m'expliquer... comment marche ce Whyle...
0
Ouai mais je suis vraiment débutant alors je voit pas comment le faire.... si tu pouvait m'expliquer... comment marche ce Whyle...
Utilise:
 Do { procédures} While (condition)

Ou bien utilises un GOTO
apprendre le C++
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 840
31 janv. 2008 à 17:52
Un goto n'est pas recommandé ! Ça produit un code très sale. Vaut mieux utiliser du while ou do while ;)
0
grad > fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022
1 févr. 2008 à 15:24
oui ça entraîne des erreurs,mais on peux l'utiliser pour un programme aussi simple et "séquentiel"
0
lolseb Messages postés 76 Date d'inscription dimanche 31 octobre 2004 Statut Membre Dernière intervention 27 février 2011
31 janv. 2008 à 17:53
OK, masi cout, et cin ne corespond à aucune fonction dans mon logiciel....
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 840
31 janv. 2008 à 17:58
Je te recommande de prendre des tutoriaux, tu en trouveras pleins sur le net.
En début de code tu dois inclure des bibliothèques : #include <stdio.h>
Ensuite tu écris : using namespace std; //Ça inclue les fonctions standards dans ton espace de nom, donc plus besoin d'écrire std::cout.
Et là ça marchera ;)
0
lolseb Messages postés 76 Date d'inscription dimanche 31 octobre 2004 Statut Membre Dernière intervention 27 février 2011
31 janv. 2008 à 18:04
voilà ce que j'ai fait...
mais sa me fat une boucle à l'infinit....

#include <math.h>
#include <conio.h>
#include <stdio.h>
using namespace std;

int main()
{
double X,Y,Z1,Z2,Z3; //Variable de calcul
char rep='O';
printf("\nIci ce sont les 44calculs de moyennes avec deux valeurs : \n");
while(rep=='O'){
printf("\n\tVeuillez donner une valeur positive : ");
scanf("%lf",&X);
printf("\tVeuillez donner une seconde valeur positive : ");
scanf("%lf",&Y);
printf("\nResultats :");
;
Z1 = (X+Y)/2; //calcul moyenne Arythmétique
;
printf("\nMoyenne Arythmetique : %lf",Z1);
;
Z2 = sqrt((X*Y)); //calcul moyenne Geométrique
;
printf("\nMoyenne Geometrique : %lf",Z2);
;
Z3 = (2/((1/X)+(1/Y))); //calcul moyenne Geométrique
;
printf("\nMoyenne Harmonique : %lf",Z3);
printf("\n\n\n\n\n\t\t Soyez heureux je me suis fait chier \2\2\2"); //rire
getch();
printf("\n\n\n\n\n\t\t Voulez vous continuer!? O pour Oui, N pour non.");
;
}

}
0
c'est du langage C pas C++
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 840
31 janv. 2008 à 18:14
J'ai dit une bêtise dans mon dernier post. Ce n'est pas #include <stdio.h> mais #include <stdio>. Ce n'est pas obligé, mais ça fait plus C++.

En fait c'est plutôt du C que tu fais. Tu utilises printf, scanf etc. Dans ce cas, enlève "using namespace std" !

int main()
{
double X,Y,Z1,Z2,Z3; //Variable de calcul
int rep=1;
printf("\nIci ce sont les 44calculs de moyennes avec deux valeurs : \n");
while(rep==1){
printf("\n\tVeuillez donner une valeur positive : ");
scanf("%lf",&X);
printf("\tVeuillez donner une seconde valeur positive : ");
scanf("%lf",&Y);
printf("\nResultats :");
;
Z1 = (X+Y)/2; //calcul moyenne Arythmétique
;
printf("\nMoyenne Arythmetique : %lf",Z1);
;
Z2 = sqrt((X*Y)); //calcul moyenne Geométrique
;
printf("\nMoyenne Geometrique : %lf",Z2);
;
Z3 = (2/((1/X)+(1/Y))); //calcul moyenne Geométrique
;
printf("\nMoyenne Harmonique : %lf",Z3);
printf("\n\n\n\n\n\t\t Soyez heureux je me suis fait chier \2\2\2"); //rire
getch();
printf("\n\n\n\n\n\t\t Voulez vous continuer!? 1 pour Oui, 2 pour non.");
scanf("%d",&rep);
} 


0
lolseb Messages postés 76 Date d'inscription dimanche 31 octobre 2004 Statut Membre Dernière intervention 27 février 2011
31 janv. 2008 à 18:22
AH oaui masi c'est génial tout sa ^^ Et c'est quoi la diférence entre les deux !? C et C++ (j'ai commencé les cours aujourd'hui du C...

Et si je veux faire défiler du texte, enfin que le texte apparait petit à petit, une solution !?
0
lolseb Messages postés 76 Date d'inscription dimanche 31 octobre 2004 Statut Membre Dernière intervention 27 février 2011
31 janv. 2008 à 18:32
Ah j'allais oublier, sa bug en fait sa marceh masi ca va pas puisque si j'appuis sur une touche autre qu'un chiffre sa fait recommencer le programme sauf que mes selections de nombre sont impossible....
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 840
31 janv. 2008 à 18:58
En fait le C++ a été inventé pour créer des classes en C.
En C++, généralement, au lieu d'utiliser printf, tu utilises cout, etc.
Mais je te conseille de d'abord de familiariser avec le C ;) Le site siteduzero est très bien fait pour débuter.
Tu as dit que ça ne marche pas pour les caractères. Très juste, dans ce cas, utilise char rep. Dans le while rep=='O', et scanf("%c",&rep).
Mais il est possible que ça ne marche pas très bien, que tu aies des comportements bizarres. Pour résoudre, il y a des solutions, mais peut-être un peu compliqué à mettre en oeuvre quand on débute.
Je te conseille de laisser ton programme comme ça, et de continuer l'apprentissage du langage ;)

Cordialement
0
lolseb Messages postés 76 Date d'inscription dimanche 31 octobre 2004 Statut Membre Dernière intervention 27 février 2011
31 janv. 2008 à 22:23
Ok je vais continuer comme sa on verra bien... mais vraiment merci de l'aide c'ets bien sympatque je n'hesiterais pas à vous demandez conseil ^^
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 840
31 janv. 2008 à 22:51
A ton service ;)
0
dandypunk Messages postés 831 Date d'inscription jeudi 3 janvier 2008 Statut Membre Dernière intervention 11 septembre 2011 83
1 févr. 2008 à 02:56
Avant de passer à C++apprend le C
ref le langage C B.W. Kernighan D.M. Ritchie (MASSON ISBN 2-225-82070-8) c'est la bible
0
lolseb Messages postés 76 Date d'inscription dimanche 31 octobre 2004 Statut Membre Dernière intervention 27 février 2011
1 févr. 2008 à 15:00
OUAI... enfin je fait sa pour m'amuser non pour faire des gros truc de malade... et j'ia trés peu de connaisance, je vasi essayer de faire mon m^me proramme avec une fenêtre et des selections, sa doit être possible... à mon niveau...
0
evilcool Messages postés 11 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 19 mai 2009 1
19 mai 2009 à 13:35
pour eviter une boucle infini fais un truc du genre :

int MaSortie = 0;

while(MaSortie == 0)
{

Ton programme....

Fin Du Programme...

printf("veux Continuer ou pas ? 1 pour sortir 0 pour continuer ");

scanf("%", &MaSortie);

}

Vla :D
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 840
19 mai 2009 à 21:50
Salut,
scanf("%d", &MaSortie);
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 840
31 janv. 2008 à 17:45
Salut,

Le while() est exactement ce que tu cherches ;)
Exemple
char rep='O';

while(rep=='O'){
   bla bla bla;
   ...
   cout << "Continuer (O/N) : ";
   cin >> rep;
}

-1