2.6 ENTREE DE VARIABLES ET CONDITIONS


INTRODUCTION


Effectuer ou non certaines lignes d'un programme en fonction de telle ou telle condition fait partie des instructions de base de tous les langages de programmation.
Les instructions situées après le if ne sont exécutées que si la condition est vraie, et si elle est fausse, le programme exécute les instructions situées après le else.


VERIFIER UNE VALEUR ENTREE

    
              

Le carré ne sera tracé que si la longueur demandée pour son côté est inférieure à 300 pixels.

La taille souhaitée pour le carré est placée dans la variable nommée s.
Si s est < (inférieur) à 300,
  alors on trace le carre(s)

sinon
  on affiche "Ce carré est trop grand"





A MEMORISER


Les instructions après if ne sont exécutées que si la condition est vraie, et, dans le cas contraire, les instructions après else seront exécutées.
Le bloc else n'est pas obligatoire
, essayez !

Notez les deux points après la condition if et après else, ainsi que l'indentation des blocs de programme.





CHOIX MULTIPLE

              

Nous voulons dessiner des carrés dans un choix de 4 couleurs différentes.

L'utilisateur choisira la couleur du carré en saisissant un chiffre dans la boîte de dialogue de saisie.
Ce chiffre est mémorisé dans la variable nommée n.

Si n est égal à 1, le programme se prépare à colorier le carré en rouge.

Dans un cas contraire (si n est différent de 1), si n est égal à 2, le programme se prépare à colorier le carré en vert.

Dans un cas contraire (si n est différent de 1 et de 2), si n est égal à 3, le programme se prépare à colorier le carré en jaune.










Sinon (si n est différent de 1, de 2, et de 3, soit dans tous les autres cas), alors le programme se prépare à colorier le carré en noir.
L'instruction fill(10,10) colorie la zone fermée comprenant le point (10,10) avec la couleur de remplissage préselectionnée.
N
ous avons choisi le point (10,10), qui est forcément à l'intérieur du carré, mais nous aurions pu choisir par exemple (50,50), vu que le carré mesure 100 pixels de côté.



A MEMORISER


Les conditions sont vérifiées une par une.
Si la condition suivant le if n'est pas remplie, alors la condition est suivant le elif est vérifiée.
Elif est une abréviation de else if
. Si aucune condition n'est vérifiée,  les instructions suivant le else sont exécutées.

Remarquez que les tests d'égalité en langage Python sont faits avec un double signe égal (==).
C'est un peu étrange, mais nécessaire puisque que le signe égal unique est utilisé pour l'affectation d'une variable. 
Remarquez l'utilisation des opérateurs de comparaison : >, >=, <, <=, ==, =! (différent de).

L'instruction fill(x,y) permet de colorier dans la couleur prédéfinie à l'aide de la commande setFillColor("couleur"), toute zone fermée auquel appartient le point (x,y)





CHOIX DE COULEURS, VARIABLES BOOLEENNES


Nous allons réaliser un dessin comprenant des étoiles de couleur sur un fond noir, comme ci-contre :

Le remplissage ultérieur avec l'instruction fill(x,y) suppose que l'intérieur de la figure ne soit pas déjà occupé par une autre figure.
Nous allons donc utiliser les instructions startPath() et fillPath() que nous avons déjà étudiées.
L'instruction askColor() ouvre la boîte de dialogue ci-dessous qui permet de choisir précisément la couleur parmi un large éventail :




La fonction etoile() possède deux paramètres : la taille des branches mais aussi un paramètre booléen dont la valeur peut être vrai ou faux, et détermine si l'étoile doit être rempli ou non.


Remarque : remplacée dans la dernière instruction le "True" par un "False", que se passe-t-il ?




A MEMORISER


La fonction askColor(texte,couleur) ouvre une boîte de dialogue pour demander à l'utilisateur de choisir une couleur.
Cette fonction a un paramètre pour le texte dans la barre de titre "Quelle couleur ?" et une autre pour la couleur qui est sélectionnée comme valeur par défaut.

La fonction retourne la couleur choisie (ou la couleur par défaut) lorsque vous cliquez sur le bouton OK, et la valeur "none" (aucune couleur) si v
ous cliquez sur le bouton "Annulez".
Le programme teste cette possibilité et s'arrête dans ce cas à l'aide de l'instruction "break".

Une variable ou un paramètre booléen ne peut prendre que deux valeurs "True" (vrai) ou "False" (faux).
Le nom vient du mathématicien George Boole, qui a inventé ll'algèbre boole, bien utile en informatique.
Pour tester la valeur d'une variable booléenne, vous pouvez écrire if remplir: au lieu de if remplir=="True":, c'est plus élégant et plus lisible, deux qualités primordiales d'un programme  informatique.




EXERCICES




1Vous demanderez à l'utilisateur dans une boîte de dialogue la taille du carré à dessiner.
Si la valeur fournie par l'utilisateur est inférieure à 50, vous dessinerez un carré rouge plein, sinon un vert.


2La tortue doit dessiner un escalier de 10 marches dont les 5 premières seront bleues les 5 dernières rouges (figure a).
Vous utiliserez une fonction que vous répèterez dix fois et une variable compteur pour compter les marches construites.
(a)
(b)
3
La tortue de dessiner une spirale de 15 spires, les 5 premières seront vertes, les 5 suivantes rouges et les dernières noires (figure b).
Chaque trait est plus long que le précédent de 5 pixels.



  Traduit assez librement (et légèrement adapté) de PROGRAMMIERKONCEPT de J. Arnold, T. Kohn, et Aegidius Plüss