Programmation B Stroustrup ..
Bonsoir à toutes et tous .
Je ne parviens pas a comprendre l'énoncé d'un exercice du livre :
Citation:
Ecrivez un programme consistant en une boucle while qui (à chaque passage dans la boucle ) lit deux ints, puis les affiche. Le programme doit quitter à la saisie d'un '|' final. (C'est le texte du livre .)
Si vous comprenez ??? Merci de m'expliquer .
Cordialement.
Programmation B Stroustrup
Bonsoir à toutes et tous .
Merci , mais ..
Citation:
@Trademark
Citation:
Je ne vois pas très bien ce que tu ne comprends pas, peut-être qu'en reformulant ça ira mieux:
"Lire au clavier, et puis afficher, deux nombres entiers jusqu'à ce que l'utilisateur entre le caractère '|'".
Toujours aussi "nébuleux".
Cordialement.
Programmation B Stroustrup
Bonsoir à toutes et tous .
@Bousk . Merci .
Voici je que j'ai réalisé : :cry:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
#include "std_lib_facilities.h"
int main()
{
int unNombre = 0 ;
while (unNombre != 12 , unNombre != 24 ) {
cout << " Entrez les nombres 12 ou 24 !" << '\n';
cin >> unNombre;
cout << unNombre << " Merci !" << '\n' ;
break ;
if (unNombre == '|' );
cout << unNombre << " Erreur ! Au revoir , à bientôt !" << '\n';
}
} |
Chutttt... Oui .
Je ne parviens toujours pas à comprendre . A chaque fois que ....
Quelles sont mes erreurs ??
Merci .
Cordialement.
Programmation B Stroustrup
Bonsoir à toutes et tous .
@Trademark . Merci pour tes explications .
Je tournicote lamentablement depuis pas mal de temps .
Si j'écris :
Code:
1 2 3 4 5 6 7
|
int unNombre = 0;
int deuxNombres = 0;
while (unNombre != 5 || deuxNombre != 7) // tant que les numéros saisis sont différents de 5 ou 7 on continue l'invite
cout << unNombre << deuxNombres << " Saisissez deux nombres de 0 à 9 !" <<'\n';
cin >> unNombre >> deuxNombres ; |
Pour démarrer est-ce juste ? C'était ma première idée .
Le break , c'est pour stopper la boucle .
Cordialement.
J'vais bien finir par comprendre ???
Programmation B Stroustrup
Bonsoir à toutes et tous .
@Trademark . Merci .
Oui , je pense cette fois avoir compris une partie de mon problème .
Je doit demander à l'utilisateur de rentrer deux nombres ..... lui dire vous avez inscrit 'x' et 'y' et continuer l'invite tant qu'il ne saisi pas '|' .
Je me retrouve avec mon éternel problème : Comment vérifier la saisie de nombres ou de lettres . J'ai beau chercher sur le net , je ne trouve pas d'explication "franche".
Cordialement .
Programmation B Stroustrup
Bonjour à toutes et tous .
@Bousk , merci .
J'ai enfin réussi à "comprendre" le logarithme d'une boucle .(Je crois.)
Mon oeuvre :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
#include "std_lib_facilities.h"
#include <limits>
int main()
{
int a ;
int b ;
while (!(a && b == 0))
{
cout << " Entrez deux nombres !" << '\n';
cin >> a >> b;
if (!(cin.fail() || a < 0 || b < 0 && a > 100 || b > 100))
{
cout << " Vous avez choisi : " << a << " et " << b << " Merci !" << '\n' ;
cin.clear();
cin.ignore(numeric_limits<streamsize>::max() , '\n');
} else if (a && b != 0) {
cout << " Erreur ! Arrêt du programme !" << '\n';
break;
}
}
return 0;
} |
Qu'en pensez-vous ???
Le break sert à stopper la boucle .... infinie .
Cordialement.
Programmation B Stroustrup
Bonsoir à toutes et tous .
@Bousk .Merci !.
Aie ... à ce point .:cry:
Me donnerais -tu le corrigé ??? :oops:
Il faut que je digère ...
Cordialement.
Programmation B Stroustrup
Bonsoir à toutes et tous .
@Bousk . Merci encore et toujours .
Citation:
Désolé pour le ton, mais je sais que c'est pas ton premier message et à chaque fois tes if sont foireux.
Pas de problèmes ..
Mais :
Citation:
Ecrivez un programme consistant en une boucle while
do while c'est pareille ???
Cordialement.
Programmation B Stroustrup
Bonjour à toutes et à tous .
@Bousk . Merci .
Je suis perplexe :
Code:
while (n1 != '|' && n2 != '|')
Je décompose :
tant que n1 et n2 sont différents de la barre droite on continue ... Mais il n'y a rien en mémoire .
Oui cela fonctionne . Mais ?
J'ai retouché et amélioré mon code .
Cela fonctionne "mieux avec des char" mais ce sont int demandés ?.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
#include "std_lib_facilities.h"
#include <limits>
int main()
{
char a = 0;
char b = 0;
while (true) // retourne vrais donc on continue
{
cout << '\n' << " Entrez deux nombres !" << '\n';
cin >> a >> b;
if (a == '|' || b == '|') { // si les entrées correspondent à deux barres , fin du programme
cout << " Erreur ! Arrêt du programme !" << '\n';
break;
}
if (a >= '0' || b >= '0' && a <= '9' || b <= '9') // si les entrées sont comprises entre 0 et 9 on continue
{
cout << '\n' << " Vous avez choisi : " << a << " et " << b << " Merci !" << '\n' ;
cin.clear(); // on défini l'état du flux , on efface les erreurs et on continue
cin.ignore(numeric_limits<streamsize>::max() , '\n'); // on vide le buffer ( " ignore() permet d'extraire les cractères du buffer ")
}
if (a > b) {
cout << '\n' << "Le plus grand nombre est : " << a << " Le plus petit est : " << b << '\n';}
else if (a < b){
cout << '\n' << "Le plus petit nombre est : " << b << " Le plus grand est : " << a << '\n';}
else if (a == b){
cout << '\n' << "Les deux nombres sont égaux ! " << a << " et " << b << '\n';}
}
return 0;
} |
Programmation B Stroustrup
Bonsoir à toutes et tous ;
@Bousk.Merci.
Citation:
Tu testes tes programmes ?! Tu le lances, tu mets des valeurs bidons et tu t'aperçois immédiatement que ça marche pas.
Oui je teste mes programmes , et ils fonctionnent comme désiré .
_Saisie de 2 nombres .
_Affichage des 2 nombres .
_Et nouvelle demande .
_Affichage du + grand .
_Affichage du + petit .
_Fin du programme si entré | .
Citation:
Ton test est toujours faux. Enfin je pense plutôt qu'il sera toujours vrai justement..
Code:
if (a >= '0' || b >= '0' && a <= '9' || b <= '9')
Ben .. C'est le but non ?
Cordialement .