TD4 - 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.")

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é !")

Exercices

Exercice 1

  1. Sauvegarder le programme suivant sous le nom PythonTD4Prog1.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.

Exercice 2

En vous servant du TD3 et du TD4:
  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.