TP If Then Else Correction. Exercice 1 Écrire une suite d’instructions en langage Python sur votre feuille qui connaissant deux variables réels renvoie le plus grand des deux et spécifie l’égalité s’ils sont égaux. a=input("donner un reel") b=input("donner un reel") a=float(a) b=float(b) if a>b: print("le max de ", a," et", b , "est", a) if a<b: print("le max de ", a," et", b , "est", b) if a==b: print( a," et", b , "sont egaux.") Écrire ces instructions dans l’éditeur puis lancer exécuter dans l’interpréteur. Tester avec a = 3 et b = 5. Exercice 2 Écrire une suite d’instructions Python sur votre feuille qui prend en entrée un réel et qui affiche sa valeur absolue. a=input("donner un reel") a=float(a) if a>=0: a=a else: a=-a print("la valeur absolue de ",a,"est", a) Écrire ces instructions dans l’éditeur. Tester avec x = 14 puis x = −4. Exercice 3 1. Que fait la fonction randint ? Taper >>> help(randint) . Traduire. from random import randint 1 2. Quelle bibliothèque faut-il importer ? Comment simule-t-on le résultat d’un dé à 6 faces avec la fonction randint ? randint(1,6) 2. Traduire avec Python gain final (positif ou négatif) lors de ce jeu : Une personne joue avec un dé à 16 faces, il mise une somme S : si le résultat est pair et compris entre 1 et 5, il gagne 3 fois sa mise, si le résultat est pair et compris entre 6 et 10, il gagne 2 fois sa mise, si le résultat est pair et compris entre 11 et 16 alors il gagne sa mise et si le résultat est impair, il perd sa mise. S=input("quelle est votre mise") S=int(S) de=randint(1,16) if (1<=de<=5) and (de%2==0) : G=2*S elif (6 <= de <=10) and (de%2==0): G=S elif (11<=de<=16) and (de%2==0): G=0 else: G=-S print("vous avez gagné", S) Ecrire les instructions dans l’éditeur et tester le avec S ∈ {20; 5}. Exercice 4 On désire sécuriser une enceinte pressurisée. On se fixe une pression seuil et un volume seuil : pSeuil = 2.3 vSeuil = 7.41 On demande de saisir la pression et le volume courant de l’enceinte et d’écrire un script qui simule le comportement suivant : si le volume et la pression sont supérieurs aux seuils : afficher ”arrêt immédiat” ; si seule la pression est supérieure à la pression seuil : afficher ” demander de diminuer la pression de l’enceinte” si seul le volume est supérieur au volume seuil : afficher ” demander de diminuer le volume de l’enceinte ” ; sinon déclarer que ”tout va bien”. Ce comportement sera implémenté par une alternative multiple. p=input("quelle est la pression ?") p=float(p) v=input("quelle est le volume ?") v=float(v) pS=2.3 vS=7.41 2 if (p>pS) and (v>vS): print("Arret immediat") elif (p>pS): print("diminuer la pression") elif (v>vS): print("diminuer le volume") else: print("all is good!") Exercice 5 1. Deviner ce que va renvoyer la dernière instruction : >>> a, b = 1, 2 >>> a = b >>> b = a >>> print(a, b) >>> 2, 2 2. Écrire sur votre feuille des instructions permettant l’échange de deux variables X et Y données. Par exemple, si X contient la valeur 3 et Y contient la valeur 5 alors à la suite d’instructions, X doit contenir 5 et Y doit contenir 3 sans écrire Y = 3 biensur ! ! ! A quoi faut-il penser ? a=input("donner un reel") b=input("donner un reel") a=float(a) b=float(b) z=a a=b b=z On comprend la notion de variable de sauvegarde, rôle joué par la variable z. Exercice 6 On considère la suite (un )n définie par : u0 = b et ∀n ∈ N, un+1 3un 3un < 1 3un − 1 1 ≤ 3un < 2 = 3un − 2 3un ≥ 2 Écrire les instructions Python permettant de demander à un utilisateur extérieur une valeur de u0 . u=input("donner une valeur reelle") u=float(u) 3 Écrire les instructions Python permettant de calculer le terme suivant un+1 connaissant le terme un . if 3*u<1: u=3*u elif 1<= 3*u <2: u=3*u-1 else: u=3*u-2 # c’est bien la variable u qui devient 3*u-2 Calculer avec la valeur u0 = 0.1 . Que vaut u1 ? u2 ? 4