Problème de compréhension boucle do while
Bonjour à toutes et tous .
Je recherche un correcteur (Bénévole.) sympa .
J'ai créé un petit morceau de code , que je ne parviens pas à faire fonctionner selon mes désirs .
Je voudrais (Pour le moment .)tester l'entrée "longueur ":
1° Si l'utilisateur n'écrit pas des nombres , afficher un message d'erreur ,et continuer le programme .
2° Si l'utilisateur entre des nombres .. ras ..
Voici mon oeuvre ... .... :calim2:
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 41 42 43 44 45 46 47 48 49 50 51 52
|
#include "std_lib_facilities.h"
int main()
{
double a , b , c , e ; // pour stocker les surfaces
double va = 0 , vb = 0 ; // pour stocker les volumes
double longueur = 0 ;
double largeur = 0, largeur_b = 0 ;
double hauteur = 0 ;
double epaisseur = 0 ;
double nombres = ( nombres > 0 , nombres < 1999);
cout << '\n' << "Entrez la longueur de votre conteneur en mètre :" << '\n';
cin >> longueur;
do
{
if (!(longueur != nombres))
cout << '\n'<< "Erreur , veuillez entrer des nombres : " << '\n';
break ;
cout << '\n'<< "Entrez la longueur de votre conteneur en mètre : " << '\n';
cin >> longueur;
}
while (longueur == nombres);
cout <<'\n' << "Entrez la largeur de votre conteneur :" << '\n';
cin >> largeur ;
a = (longueur * largeur);
cout << "Surface de base de votre conteneur : \n " << a << " m2" << '\n';
cout << '\n' << "Entrez sa hauteur en mètre : \n ";
cin >> hauteur ;
va = (a * hauteur);
cout << "Volume total de votre conteneur : \n " << va << " m3 " << '\n';
cout << '\n' << "Entrez l'épaisseur des planches en mètre : \n ";
cin >> epaisseur;
b = ((longueur * hauteur) * epaisseur) * 2 ; // calculer le volume des 2 grands côtès
//cout << "Volume des grands côtés : " << b << '\n'; // pour controler l'exactitude des opérations
largeur_b = (largeur - (epaisseur * 2 )); // calculer la largeur des 2 petits côtés
//cout << "Largeur du petit côté :" << largeur_b << '\n'; // pour controler l'exactitude des opérations
c = ((largeur_b * 2) * hauteur)* epaisseur; // calculer le volume des 2 petits côtés
//cout << "Volume des petits côtés 2 : " << c << '\n'; // pour controler l'exactitude des opérations
e = ((longueur * largeur) *epaisseur) * 2; // fond et couvercle
//cout << "Volume du fond et du couvercle :" << e << '\n'; // pour controler l'exactitude des opérations
vb = (b + c + e ) ;
cout << '\n' << "Le volume de bois utilisé est de : \n " << vb << " m3" << '\n';
cout << '\n' << "La contenace de votre conteneur est de : \n " << va - vb << " m3" << '\n' << '\n';
} |
Merci .
Cordialement.
probleme de comprehension boucle do while
Bonsoir à toutes et tous .
Bon je ne voulais pas l'annoncer d'entré , mais je pense que mes problèmes proviennent du fait que l'énoncé de mon contrôle de départ est faux .
J'ai tenté plusieurs solutions sans succès :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
cout << '\n' << "Entrez la longueur de votre conteneur en mètre :" << '\n';
cin >> longueur;
do
{
if (!(longueur == longueur > 0 || longueur < 1999))
cout << '\n'<< "Erreur , veuillez entrer des nombres : " << '\n';
break ;
cout << '\n'<< "Entrez la longueur de votre conteneur en mètre : " << '\n';
cin >> longueur;
}
while (longueur == longueur > 0 || longueur < 1999);
cout <<'\n' << "Entrez la largeur de votre conteneur :" << '\n';
cin >> largeur ; |
Cela ne me donne pas le résultat escompté .
Que dois-je mettre et pourquoi je ne trouve pas ??
Code:
if (!(longueur == longueur >0 || longueur < 1999 ))
Merci .
Cordialement.
Problème de compréhension boucle do while
Bonsoir à toutes et tous .
Merci @GeantVert13 .
Oui je pense avoir compris le renvois booléen . Vrais ou Faux , Oui ou Non .
Je voudrais tester l'entrée :
Donc longueur == a des nombres , c'est la que je coince ...
Ma première idée :
Code:
1 2
| (longueur == 1,2,3,4,5,6,7,8,9,0)
(longueur == 1||2||3||4||5||6||7||8||9||0) |
cela ne fonctionne pas non plus .
En fait je ne parvient pas à trouver comment vérifier .
Si c'est oui == à des nombres fait cela ,
Si c'est non fait ceci .
Ca m'énerve ...
Cordialement.
Problème de compréhension boucle do while
Bonjour à toutes et tous .
@Bousk . Merci pour ton aide .
Citation:
J'ai beau relire, je ne parviens pas à comprendre ce que tu veux réaliser comme test.
Je désirerait juste comprendre comment vérifier que l'utilisateur entre des nombres . Si il écrit abcde à la place , afficher un message d'erreur qui lui demande d'inscrire des chiffres et redemande la longueur du conteneur en mètre .
Merci .
En fait le test "primaire" , je pense avoir compris . Ce que je ne parviens pas à réaliser , c'est continuer le programme après le message d'erreur .
La console me renvoie :
Entrez la longueur de votre conteneur en mètre : // Si j'écris des nombres RAS
mp // Si j'écris mp le programme ce ferme
Erreur , entrez des nombres !
logout
programme terminé
Cordialement .
Problème de compréhension boucle do while
Bonjour à toutes et tous .
@Bousk Merci .
Je n'ai pas encore tout compris (Le fonctionnement , mon anglais est ...) mais mon code fonctionne exactement comme je le voulais .
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
|
int main()
{
double a , b , c , e ; // pour stocker les surfaces
double va = 0 , vb = 0 ; // pour stocker les volumes
double hauteur = 0 ;
double epaisseur = 0 ;
string input = "";
int longueur = 0 ; int largeur = 0 ; int largeur_b = 0;
while (true) {
cout << '\n' << "Entrez la longueur de votre conteneur en mètre :" << '\n';
getline(cin, input);
stringstream myStream(input);
if (myStream >> longueur)
break;
cout << '\n'<< "Erreur , veuillez entrer des nombres ! " << '\n';
}
while (true) {
cout << '\n' << "Entrez la largeur de votre conteneur en mètre :" << '\n';
getline(cin, input);
stringstream myStream(input);
if(myStream >> largeur)
break;
cout << '\n' << "Erreur , veuillez entrer des nombres ! " << '\n';
} |
Merci à tous .
Cordialement.
Problème de compréhension boucle do while
Bonsoir à toutes et tous .
Je me suis "trompé" ... car je n'ai encore pas tout compris .
Code:
int longueur = 0 ; int largeur = 0 ; int largeur_b = 0;
Avec cette partie , j'obtiens des résultats totalement faux si mes multiplications ont des virgules .
Donc :
Code:
1 2 3 4 5 6 7 8
|
double a , b , c , e ; // pour stocker les surfaces
double va = 0 , vb = 0 ; // pour stocker les volumes
double longueur = 0 ;
double largeur = 0 , largeur_b = 0 ;
double hauteur = 0 ;
double epaisseur = 0 ;
string input = ""; |
Cordialement .