Les instructions conditionnelles

Si … alors

Important

En algorithmique l’instruction Si condition alors instruction A est un bloc qui permet de réaliser un test conditionnel :

instruction A ne sera exécutée que si condition est vraie : img_if

Comparaison de l’algorithmique avec Python

Algorithme

Entrer la valeur t
Si t > 10 alors
Afficher « La valeur choisie est plus grande que 10. »


  1. Que se passe-t-il si l’utilisateur choisit d’entrer la valeur 14 ?

  2. Que se passe-t-il si l’utilisateur choisit d’entrer la valeur 8 ?

Python

1
2
3
t=float(input("Entrer une valeur "))
if t > 10 :
   print("La valeur choisie est plus grande que 10.")

Tester votre code Python ci-dessous avec trinket.io

Danger

En Python, il ne faut pas oublier les deux points à la fin de la condition du if et le décalage horizontal du bloc d’instructions que l’on appelle une indentation :
  • les deux points indiquent le début du bloc d’instructions propres à la fonction.

  • La fin de l’indentation indique la fin du bloc d’instructions propres à la fonction.

Si … alors … sinon

Important

En algorithmique le bloc d’instruction Si condition alors instruction A sinon instruction B permet de réaliser un test conditionnel plus complet en proposant deux alternatives :

Si condition est vraie alors instruction A sera exécutée et si condition est fausse instruction B sera exécutée :

_images/schema_if_elset.png

Comparaison de l’algorithmique avec Python

Algorithme

Entrer la valeur t
Si t < 4 alors
Afficher « Vous avez perdu ! »
Sinon
Afficher « Vous avez gagné ! »


Pour traiter les 3 premières questions vous n’utiliserez pas Python !

  1. Que se passe-t-il si l’utilisateur choisit d’entrer la valeur \(2\pi\)?

  2. Que se passe-t-il si l’utilisateur choisit d’entrer la valeur \(\frac{5}{\sqrt{2}}\)?

  3. Que se passe-t-il si l’utilisateur choisit d’entrer la valeur 4 ?


On a traduit ci-dessous cette algorithme en langage Python :

  1. Tester ce programme avec les nombres 7 puis 2,4 et enfin 4.

  2. Sauriez-vous transformer ce programme en une fonction qui s’appellerait test et qui prendrait comme argument le nombre t ?

Python

1
2
3
4
5
t=float(input("Entrer une valeur "))
if t < 4 :
   print("Vous avez perdu !")
else :
   print("Vous avez gagné !")

Tester votre code Python ci-dessous avec trinket.io

Exercices

Exercice 1

Note

En python pour tester si des valeurs a et b sont égales on écrit a == b

Il ne faut pas écrire a = b ( qui dans ce cas est une affectation )

  1. Le programme suivant est incomplet , sauvegarder le sous le nom PythonTD4Prog1.py
     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
    from math import * # importation  au cas où des outils de calculs de la bibliothèque math
    
    def vect(A,B): # A et B correspondent à deux  listes de  coordonnées : p.ex. A=[1,3] et B=[5,9]
        """
        La fonction vect(A,B)  renvoie les coordonnées d'un vecteur AB 
        en mettant en argument deux listes A et B respectivement constituées par 
        les coordonnées des deux points A et B. 
        """
        abs=B[0]-A[0] #  calcul de  xB-xA
        ord= ... #  calcul de yB-yA
        L=[abs,ord] # cette liste contient les coordonnées du vecteur AB
        return(L)
        
    def det(u,v): # u et v correspondent à deux  listes de  coordonnées : p.ex. u=[4,5] et v=[1,3]
        """
        La fonction det(u,v) renvoie le déterminant de deux vecteurs u et v 
        en mettant en argument deux listes u et v respectivement constituées par 
        les coordonnées des deux vecteurs u et v.
        """
        d = ... # calcul de xy'-yx' où  u=[x,y] et v=[x',y']
        ...   # renvoie du résultat du déterminant
    
    def alignement(A,B,C):
        """
        La fonction alignement(A,B,C) détermine si 3 points  A,B,C sont alignés
        en mettant en argument trois listes A,B,C respectivement constituées par 
        les coordonnées des trois points A,B,C. 
        """
        AB=vect(A,B)  # Calcul des coordonnées du vecteur ...
        AC=...
        if ... == 0 : 
            print("Les trois points sont alignés.")
        else :
            print("...")   
    
  2. Compléter ce programme ( là où il y a les 3 petits points…) en tenant compte des commentaires inclus dans celui-ci.

Tester votre code Python ci-dessous avec trinket.io

  1. Dans la console , exécuter :

    >>> E=[7,12]
    >>> F=[10,20]
    >>> vect(E,F)
    

    Interpréter le résultat d’un point de vue géométrique.

  1. Dans la console , exécuter :

    >>> u=[5,3]
    >>> v=[3,10]
    >>> det(u,v)
    

    Interpréter le résultat d’un point de vue géométrique.

  2. À l’aide de ce programme déterminer si les points M(4,13/2) N(-1.5,1) et R(7.8,10.3) sont alignés .

Tester votre code Python ci-dessous avec trinket.io

Exercice 2

  1. Sauvegarder le programme suivant sous le nom PythonTD4Prog2.py
    1
    2
    3
    4
    5
    def triplet_pythagoricien(a,b,c):
        if c**2 == a**2 + b**2 :
            return("Les nombres a,b,c forment un triplet de Pythagore")
        else :
            return("Les nombres a,b,c ne forment pas un triplet de Pythagore")
    

    Note

    En Python l’opérateur x == y signifie que x est égal à y .

    Voir aussi

    Si vous voulez en savoir plus, des compléments sont disponibles ici.

  2. Exécuter le programme.

  3. Dans la console , exécuter :

    >>> triplet_pythagoricien(3,4,5)
    

    Interpréter le résultat d’un point de vue géométrique.

  4. Dans la console , exécuter :

    >>> triplet_pythagoricien(5,4,3)
    

    L’affichage obtenu est-il cohérent avec le point de vue géométrique ?

  5. Modifier ce programme pour que la réponse soit cohérente avec le point de vue géométrique.

  6. À l’aide de ce programme déterminer un ou deux autres triplets de Pythagore.

Tester votre code Python ci-dessous avec trinket.io

Exercice 3

En vous servant des connaissances acquises au cours de ces premiers TD :

  1. Écrire un programme avec plusieurs fonctions qui permet de savoir si 4 points A,B,C,D forment un parallélogramme

  2. Améliorer celui-ci pour qu’il permette de savoir si ABCD est un rectangle.

Tester votre code Python ci-dessous avec trinket.io