Booleen C++

Fermé
ubuntu i love you Messages postés 14 Date d'inscription vendredi 4 février 2011 Statut Membre Dernière intervention 8 février 2011 - 5 févr. 2011 à 20:09
ubuntu i love you Messages postés 14 Date d'inscription vendredi 4 février 2011 Statut Membre Dernière intervention 8 février 2011 - 6 févr. 2011 à 16:47
Bonjour a tous
Je suis debutant en C++ et je voudrais que vous regardiez ce code, je veux qu'il me retourne un vrai ou faux selon que le caractere soit une majuscule ou non, mais je ne sais pas comment fonctionne le booleen... Merci




#include <iostream>
#include "entreeSortie.h"
#include "chaine.h"




using namespace std;

bool Majuscule (const char a);


int main ()
{
char a;
ecrire(uneChaine("Saisir un caratere : "));
lire (a);
Majuscule(a);
}

bool Majuscule (const char a)
{

if ( a>= 'A' && a<= 'Z')
{
return(TRUE);
}
else
{
return(FALSE);
}
}





J'utilise code blocks comme IDE...


5 réponses

M.had Messages postés 19 Date d'inscription samedi 2 octobre 2010 Statut Membre Dernière intervention 19 décembre 2012
5 févr. 2011 à 21:36
tu peux ajouter une variable booléenne par exemple: b=Majuscule(a);
et puis ecrire(b); ou bien cout<<b; pour afficher le résultat!
0
ubuntu i love you Messages postés 14 Date d'inscription vendredi 4 février 2011 Statut Membre Dernière intervention 8 février 2011
6 févr. 2011 à 08:37
Ok, merci poour l'explication du booleen =)
Mais ça ne marche toujours pas.. Dans le sujet de l'exo on me demande d'utiliser une fonction Majuscule qui retourne un boooleen, mais lorsque j'excute, le resultat retourné est toujours 0 meme si c'est une Majuscule...
0
ubuntu i love you Messages postés 14 Date d'inscription vendredi 4 février 2011 Statut Membre Dernière intervention 8 février 2011
6 févr. 2011 à 08:49
(a>= 'A' && a<= 'Z') est ce que cette expression est bien correcte ou je me trompe?
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
6 févr. 2011 à 12:54
Cette expression est correcte et renvoie true lorsque le caractère est une lettre majuscule sans accent, et false sinon.

Voici un petit programme de test. Attention : il affiche 0 et 1 à la place de false et true.

#include <iostream>

bool majuscule(const char a)
{
	return a>='A' && a<='Z';
}

int main()
{
	char a;
	
	while (true)
	{
		std::cout << "Saisir un caractere : ";
		std::cin >> a;
		std::cout << majuscule(a) << std::endl;
	}

	return 0;
}
0
ubuntu i love you Messages postés 14 Date d'inscription vendredi 4 février 2011 Statut Membre Dernière intervention 8 février 2011
6 févr. 2011 à 16:03
AH oui, merci bp, ça marche ! =)
Mais tu peux stp m'expliquuait ce qu'il y a de faux dans mon code? parce que je comprend pas...
Et "std ::cout" est ce que c'est equivalent a ecrire (parce que je connais pas...)?
Merci de ton aide
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
6 févr. 2011 à 16:12
Tout dépend de ce que fait ecrire (et lire).
Si ça t'affiche toujours 0 alors que majuscule est correct c'est que c'est ecrire qui est faux !

Regarde ton fichier EntreeSortie.h, je suppose que la méthode ecrire appelle std::cout qui est la manière standard d'écrire à l'écran en C++ (std pour standard), de même que ta méthode lire doit certainement utiliser std::cin.

Remarque : je ne l'ai pas utilisé mais quand on a using namespace std; on peut directement utiliser cout et cin, sans mettre les std:: devant.
0
ubuntu i love you Messages postés 14 Date d'inscription vendredi 4 février 2011 Statut Membre Dernière intervention 8 février 2011
6 févr. 2011 à 16:47
Merci bp, j'ai compris en fait, c'etait une bete erreur, j'avais simplement oublier d'afficher le resultat de la fonction avec ecrire(Majuscule(a)); Allala etourderie !
Merci de ton aide !
0

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

Posez votre question
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
5 févr. 2011 à 21:55
En C++ true et false sont en minuscules, pas en majuscules.
Si tu comprends comment on fait un if, tu sais ce qu'est un booléen, puisque les conditions des if (et des while) sont des booléens.

De plus ça ne sert à rien de faire if (booleen) return true; else return false;
C'est strictement équivalent à return booleen;

Du coup tu auras :

bool Majuscule (const char a) 
{ 
    return (a>= 'A' && a<= 'Z');
}
-1