Magistère l3
TP 1 Python Séances 1 et 2
variables, boucles, fonctions
Exercice 1 variable/tests
● Écrire un programme qui calcule la valeur absolue d'un entier.
● Écrire un programme qui arrondit un flottant en entier en suivant les règles de l'arrondi
Exercice 2 boucles
● Ecrire un programme qui calcule la factorielle d'un entier.
● Ecrire un programme qui calcule la partie entière de la racine carré d'un nombre entier (sans utiliser sqrt).
Exercice 3 Dessins
Turtle est un package python qui permet d'effectuer des dessins. Pour importer toutes les fonctions du package, tapez :
from turtle import *
Vous utiliserez les fonctions :
● forward(integer) # avance le crayon sur la distance donnée
● backward(integer) # recule le crayon sur la distance donnée
● up() # lève la main. Dans ce mode ci quand vous vous déplacez vous n'écrivez plus
● down() # descend la main pour pouvoir écrire
● left(integer) # tourne la main de nombre de degré vers la gauche
● right(integer) # tourne la main de nombre de degré vers la droite
● clear() # efface le dessin
● reset() # efface le dessin et réinitialise le curseur
● done() #à mettre à la fin du programme
Donner les programmes qui effectue les dessins suivants :
● Carré de taille 10 avec une boucle
● 5 carrés de taille 10 penchés de 10° en plus à chaque étape
● Carrés imbriqués
Magistère l3
Exercice 3 Roulette
(NB: fonctions à utiliser: “randint” du module random pour avoir un nombre aléatoire, pour cela faire:
from random import randint)
La roulette est un jeu de hasard dans lequel chaque joueur, assis autour d'une table de jeu, mise sur un numéro ou la parité du numéro qu'il espère être tiré. Le tirage du numéro s'effectue à l'aide d'une bille jetée dans un récipient circulaire tournant et muni d'encoches ayant des numéros de différentes couleurs. La roulette est construite comme suit :
● 37 cases numérotées de 0 à 36
● Le zéro n'est ni pair ni impair Deux types de mise :
● Mise sur un numéro (plein) ⇒ gain : 36 fois la mise
● Mise sur une chance simple (pair/ impair) ⇒ gain 2 fois la mise
● Quand le 0 sort, la banque gagne la mise On estime l'espérance de gain de la façon suivante :
1. Faire une simulation de jeu où le joueur mise au hasard 1 jeton sur une case. Quelle est l'espérance de gain au bout de 10000 parties ?
2. Faire de même avec un joueur qui joue pair ou impair
Une martingale est une technique permettant d'augmenter les chances de gain aux jeux de hasard tout en respectant les règles de jeu. La martingale simple consiste à jouer une chance simple à la roulette (noir ou rouge, pair ou impair, passe ou manque) de façon à gagner, par exemple, une unité dans une série de coups en doublant sa mise si l'on perd, et cela jusqu'à ce que l'on gagne. Exemple : le joueur mise 1 unité sur le pair. Si le pair sort, il redémarre une autre série et il a gagné 1 unité (2 unités de gain moins l'unité de mise), si l'impair sort, il double sa mise en pariant 2 unités sur le pair et ainsi de suite jusqu'à ce qu'il gagne.
1. Recalculer l'espérance de gain au bout de 1000 parties (somme jouée - somme gagnée) 2. Le joueur dispose de 100 unités au départ, quelle est le nombre de parties nécessaire
pour se ruiner en moyenne ?
Exercice 4 Fonctions
● Reécrire l’exercice 2 sous la forme de fonctions. Pour la factorielle, donnez une version itérative et une version récursive.
● Faire une fonction qui dessine un carré de taille arbitraire.
● Faire une fonction qui dessine un polygone régulier (le nombre de côtés et la taille sont passés en paramètres).
Magistère l3
Exercice 5 Jeu de recherche d'un nombre
Faire un programme qui fait deviner un nombre compris entre 1 et 1000 à un joueur. A chaque étape le joueur propose un nombre, l'ordinateur annonce si ce nombre est plus grand ou plus petit que l'original. Si le joueur trouve le nombre, l'ordinateur indique le nombre d'essais qui ont été nécessaires. Faire une version où l’ordinateur essaye de trouver le nombre.
Exercice 6 ** Fractales
La célèbre fractale du “flocon” de Von Koch est construite récursivement de la manière suivante :
1. dessiner un flocon de longueur x/3, 2. tourner à gauche de 60 degrés, 3. dessiner un flocon de longueur x/3, 4. tourner à droite de 120 degrés, 5. dessiner un flocon de longueur x/3, 6. tourner à gauche de 60 degrés, 7. dessiner un flocon de longueur x/3.
La seule exception survient lorsque x est inférieur à 3. Dans ce cas, il suffit de dessiner un segment de droite de longueur x.
Écrire une fonction récursive qui dessine un flocon de Von Koch, en utilisant les fonctions de la librairie turtle.
Exercice 7 Pierre Feuille Ciseau
Faire un programme qui simule une partie de pierre-feuille-ciseau contre l’ordinateur. Dans un premier temps l’ordinateur joue au hasard. Dans un second temps, l’ordinateur joue en
considérant que le joueur humain suit la stratégie suivante :
● Quand il gagne, il rejoue le même coup la fois suivante
● Quand il perd, il joue le coup opposé à celui qui l’a fait perdre (ex : s’il perd avec ciseau, il joue pierre)