Intervalle C++
Résolu/Fermé
Tarik
-
12 sept. 2021 à 18:36
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 - 17 sept. 2021 à 16:22
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 - 17 sept. 2021 à 16:22
6 réponses
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
Modifié le 13 sept. 2021 à 09:15
Modifié le 13 sept. 2021 à 09:15
Bonjour,
avec un test if peut-être ?
if(note >= 0 && note <= 20)
tu ne connais pas les base de C++ à ce que je vois ...
avec un test if peut-être ?
if(note >= 0 && note <= 20)
tu ne connais pas les base de C++ à ce que je vois ...
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
13 sept. 2021 à 13:03
13 sept. 2021 à 13:03
Bah, on a tous débuté ...
Par contre il y a surement de bons tutos sur le Net pour acquérir les bases, par exemple:
https://openclassrooms.com/fr/courses/1894236-programmez-avec-le-langage-c
Par contre il y a surement de bons tutos sur le Net pour acquérir les bases, par exemple:
https://openclassrooms.com/fr/courses/1894236-programmez-avec-le-langage-c
mais je connaissais le if juste je n'y avais pas pensé dans cette situation pcq je pensais qu'il fallait mettre l'intervalle en même temps de définir l'entier.
mais merci pour le lien je vais aller voir.
mais merci pour le lien je vais aller voir.
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
Modifié le 13 sept. 2021 à 14:51
Modifié le 13 sept. 2021 à 14:51
int permet de déclarer une variable entière
int note; if(note >= 0 && note <= 20) { //on fait un truc } else { // sinon, on fait autre chose }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
14 sept. 2021 à 09:25
14 sept. 2021 à 09:25
Bonjour,
Bah int ou float, le plus important est que Tarik apprenne les bases du langage, voire même les principes de la programmation dans un langage en général
(Je me demande si j'aurais débuté avec C++, d'ailleurs ...)
Bah int ou float, le plus important est que Tarik apprenne les bases du langage, voire même les principes de la programmation dans un langage en général
(Je me demande si j'aurais débuté avec C++, d'ailleurs ...)
mamiemando
Messages postés
33446
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 décembre 2024
7 812
Modifié le 17 sept. 2021 à 16:24
Modifié le 17 sept. 2021 à 16:24
Bonjour,
Traditionnellement on utilise une boucle
Note que la note doit être déclarée au préalable, et que la déclaration du type ne permet pas de spécifier une borne inférieure ou supérieure pour la note. C'est simplement parce que pour C++, (et n'importe quel langage d'ailleurs) un double / float / int occupent une place prédéterminée, indépendamment des contraintes que tu veux lui imposer. Ce sont donc deux aspects indépendants et qui n'interviennent pas sur la même instruction.
Contrairement à ce qui a été proposé par arscy, utiliser un
Pour demander une valeur à l'utilisateur en C++, on utilise traditionnellement le flux
Ensuite l'opérateur
Voici une manière simple d'écrire le programme :
Cependant ce n'est pas suffisant (par exemple si l'utilisateur saisit "éé", le C++ va considérer que la note saisie est 0). Pour régler le problème, on peut contrôler que le flux est correct, et si ça n'est pas le cas, nettoyer
Bonne chance
Traditionnellement on utilise une boucle
do ... whilepour demander une valeur devant vérifier une certaine contrainte, et on répète la boucle si la valeur saisie est non conforme.
Note que la note doit être déclarée au préalable, et que la déclaration du type ne permet pas de spécifier une borne inférieure ou supérieure pour la note. C'est simplement parce que pour C++, (et n'importe quel langage d'ailleurs) un double / float / int occupent une place prédéterminée, indépendamment des contraintes que tu veux lui imposer. Ce sont donc deux aspects indépendants et qui n'interviennent pas sur la même instruction.
Contrairement à ce qui a été proposé par arscy, utiliser un
doubleest surdimensionné (8 octets = 64bits), un
float(4 octets = 32 bits) prendra moins de place et est suffisamment précis dans ce cas d'usage. Les
doubles sont utilisés uniquement pour des calculs qui requièrent une grande précision. En vrai on pourrait faire d'ailleurs beaucoup mieux qu'un
float, mais passons.
Pour demander une valeur à l'utilisateur en C++, on utilise traditionnellement le flux
std::cin.
Ensuite l'opérateur
&est le ET bit à bit (donc qui permet de combiner deux masques). Il ne doit pas être confondu avec l'opérateur logique qui se note
&&en C++.
Voici une manière simple d'écrire le programme :
#include <iostream> int main(){ using namespace std; unsigned note; do { cout << "Saisir une note entre 0 et 20 : "; cin >> note; } while (note < 0 || note > 20); cout << "Note saisie : " << note << endl; return 0; }
Cependant ce n'est pas suffisant (par exemple si l'utilisateur saisit "éé", le C++ va considérer que la note saisie est 0). Pour régler le problème, on peut contrôler que le flux est correct, et si ça n'est pas le cas, nettoyer
std::cincomme expliqué ici (sans quoi on va déclencher une boucle infinie) :
#include <iostream> #include <limits> int main(){ using namespace std; unsigned note; do { cout << "Saisir une note entre 0 et 20 : "; cin >> note; if (cin.fail()) { cin.clear(); cin.ignore(numeric_limits<streamsize>::max(), '\n'); note = -1; } } while (note < 0 || note > 20); cout << "Note saisie : " << note << endl; return 0; }
Bonne chance
13 sept. 2021 à 12:51
Merci je vais essayer ça.
et non je ne connais pas encore les bases du C++, c'est peut etre pour ça que je demande de l'aide, excuse moi de débuter ...