Utilisation de variable drapeau en Python

Fermé
Eli - 21 oct. 2022 à 17:50
 PierrotLeFou - 28 oct. 2022 à 02:41

Bonjour,

Je dois réaliser un programme Python dans le cadre de mes cours d'informatique mais je n'arrive pas à comprendre comment correctement se servir des "variables drapeaux".

Voilà l'énoncé :

Ecrire un programme qui demande à l'utilisateur plusieurs nombres successivement en affichant "Nombre ?" jusqu'à ce que l'utilisateur entre le nombre 0. Le programme doit alors afficher "Tous -", ou "Tous +", ou "Seulement 0", ou "Ni tous +, ni tous -" selon que l'utilisateur n'a rentré que des nombres négatifs, ou bien que des nombres positifs, ou bien seulement zéro, ou bien aucun des cas précédents. Dans ce dernier cas (Ni tous +, ni tous -), le programme doit afficher "Somme -", ou "Somme=0", ou "Somme +" selon que la somme totale des nombres donnés par l'utilisateur est strictement négative, nulle ou strictement positive.

Exemple 1
Nombre ? 9
Nombre ? 7.2
Nombre ? 3.4
Nombre ? 0
Tous +

Exemple 2
Nombre ? -4
Nombre ? -2.1
Nombre ? 0
Tous -

Exemple 3
Nombre ? 0
Seulement 0

Exemple 4
Nombre ? -2
Nombre ? 5
Nombre ? -1.1
Nombre ? 0.5
Nombre ? 0
Ni tous +, ni tous -.
Somme +.

Exemple 5
Nombre ? -2.2
Nombre ? 1.1
Nombre ? 1.1
Nombre ? 0
Ni tous +, ni tous -
Somme = 0.

Exemple 6
Nombre ? -10.5
Nombre ? 1.1
Nombre ? 1.1
Nombre ? 0
Ni tous +, ni tous - 
Somme -

Quelqu'un pourrait m'éclairer ?

3 réponses

Bonsoir,  une variable « drapeau » n'est rien d'autre qu'une variable de type booléen ou entier, c'est pas plus compliqué que cela.

Dans ton programme, on pourrait imaginer grouper tous ces flags dans un simple dictionnaire (dict) si tu les as abordés, sinon, de simples variables.

Pour savoir s'il y a un nombre négatif parmi ceux saisis, tu devras d'abord initialiser au préalable une variable booléenne définie à False, et lors de chaque saisie utilisateur, tu vérifies si le nombre est positif, auquel cas tu passeras la valeur de ta variable à True. Pas bien difficile à réaliser cet exercice.

Et si tu as des difficultés, présente ce que tu as déjà réalisé  ;=)

Bonne programmation.
 

1
jee pee Messages postés 40579 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 21 décembre 2024 9 460
Modifié le 21 oct. 2022 à 20:06

Bonjour,

Un drapeau (flag) est un booléen qui peut prendre les valeurs True ou False. Tu dois donc initialiser 2 drapeaux à False,

drapeauPlus = drapeauMoins = False

et après chaque input tu testes zéro, c'est la fin, si nombre négatif

if nombre < 0:
   drapeauMoins = True

 la même chose sur nombre positif, et tu réalises un somme des montants saisis.

En fin tu testes les 2 drapeaux pour afficher le résultat des saisies

if drapeauPlus and drapeauxMoins:
   print("Ni tous +, ni tous -", somme)
else:

1

merci beaucoup !

0
PierrotLeFou
28 oct. 2022 à 02:41

Je suis peut-être en retard ...
Un entier non nul (positif ou négatif) est considéré comme valant True, sinon il est considéré comme valant False.
Les "flags" pourraient être la somme des uns et des autres. Pas vraiment de variables booléennes en plus.

0