tp d’intro au python V2

This commit is contained in:
Adrian Amaglio 2021-09-21 00:41:46 +02:00
parent 3bd4c21cca
commit 243fbafb3f
2 changed files with 60 additions and 62 deletions

Binary file not shown.

View File

@ -11,7 +11,7 @@ Durée : 1h
% ---
\section{La tortue de Python}
Pour pouvoir utiliser la tortue de Python, nous allons écrire la ligne suivante tout en haut de notre fichier python :
Pour activer la tortue de Python, nous allons écrire la ligne suivante tout en haut de notre fichier python ; veillez à la garder tout le long de lexercice :
\begin{minted}{python}
from turtle import *
\end{minted}
@ -35,30 +35,26 @@ Pour tourner sur la gauche de 45° :
left(45)
\end{minted}
Pour tourner sur la droite de 45° :
\begin{minted}{python}
right(45)
\end{minted}
\section{Triangles, carrés et plus si affinités}
Voici un programme Python qui trace un triangle équilatéral de côté 50px
Voici un programme Python qui trace deux traits de 100 pixels
\begin{example}
\begin{minted}{python}
forward(50)
left(120)
forward(50)
left(120)
forward(50)
\end{minted}
\end{example}
\begin{exercice}
Copiez collez ce programme dans votre éditeur python et exécutez le pour vérifier quil trace bien un triangle.\\
Copiez collez ce programme dans votre éditeur python et exécutez le pour vérifier quil trace bien deux traits.\\
Noubliez pas la première ligne (import) qui doit être en haut de chaque programme.
\end{exercice}
\begin{exercice}
Complétez ce programme pour quil affiche un triangle.
\end{exercice}
\begin{exercice}
Modifiez ce programme Python pour quil dessine un carré (polygone régulier à 4 côtés).
\end{exercice}
@ -67,72 +63,77 @@ forward(50)
Une fois que vous arrivez à tracer un carré à lécran, adaptez le programme pour dessiner un octogone (polygone régulier à 8 côtés).
\end{exercice}
%
\section{Répétons des instructions}
\begin{example}
Vous aurez remarqué que pour tracer des polygones, on copie colle les instructions forward et left.
Pour éviter cette pratique inefficace, nous allons utiliser une boucle pour répéter des instructions.
Par exemple, le programme suivant trace un triangle en répétant trois fois les instructions forward et left.
\begin{minted}{python}
for compteur in range(3):
forward(100)
left(120)
\end{minted}
\textbf{Pour que des actions soient répétées, il faut quelles soient sous la ligne « for » et quelles soient précédées de 4 espaces.}
\end{example}
\begin{exercice}
Recopiez ce programme et exécutez le. Vérifiez quil trace bien un triangle.
\end{exercice}
\begin{exercice}
Modifiez ce programme pour quil trace un carré, puis un hexagone. Quelles modifications faites vous ?
\end{exercice}
%
\section{Des variables}
Il commence à être fatigant de recopier toujours les mêmes chiffres.\\
Nous allons utiliser deux variables qui nous permettent de stocker une valeur en mémoire pour la réutiliser plus tard.\\
Ici, la variable $angle$ contiendra langle en degrés entre chaque côtés du polygone et la variable $longueur\_cote$ contiendra la longueur dun côté en pixels.
Nous allons essayer de modifier le programme pour quil soit capable de tracer nimporte quel polygone.
Nous aurons besoin dune variable, contenant le nombre de côtés du polygone.
Le reste du programme tracera ce polygone.
\begin{example}
Ce programme python trace un triangle équilatéral de côté 50px
Ce programme python trace un triangle équilatéral.
\begin{minted}{python}
# Dans un premier temps, on fixe les valeurs de nos variables
angle = 120
longueur_cote = 50
# Dans un second temps, on les utilise pour notre programme
forward(longueur_cote)
left(angle)
forward(longueur_cote)
left(angle)
forward(longueur_cote)
nb_cotes = 3
for compteur in range(nb_cotes):
forward(100)
left(360/nb_cotes)
\end{minted}
Il est strictement équivalent au programe de lexemple 1.
Mais il est maintenant possible de changer tous les angles dun coup en modifiant la valeur de la variable $angle$ à la ligne 2 !\\
\end{example}
\begin{exercice}
À laide des deux variables de lexemple précédent, tracez un polygone régulier à 16 côtés.
\\\textbf{Faites vérifier le programme par le professeur}\\
Recopiez ce programme et vérifiez quil trace bien un triangle.
\end{exercice}
\section{Des boucles}
\begin{exercice}
Modifiez la valeur stockée dans la variable nb\_cotes (vous pouvez par exemple mettre 4, 6, 8 ou 180). Que se passe til ?
\end{exercice}
\section{Écrire un sous-programme}
Pour tracer plusieurs polygone, il nous faudrait copier-coller notre programme.
Le résultat serait difficile à lire et donc à comprendre…
Nous allons créer une fonction (cest un sous-programme) capable de tracer nimporte quel polygone.
Nous pourrons alors exécuter ce sous-programme dès que besoin.
\begin{example}
Une boucle sert à répéter une instruction un nombre précis de fois.
Par exemple, la boucle suivante sert à répéter laction « avancer de 10 pixels » 180 fois :
\begin{minted}{python}
for compteur in range(180):
forward(10)
def polygone(nb_cotes):
for compteur in range(nb_cotes):
forward(100)
left(360/nb_cotes)
polygone(3)
polygone(5)
\end{minted}
\textbf{Pour quune action soit répétée, il faut quelle soit sous la ligne « for » et quelle soit précédée de 4 espaces.}
\end{example}
\begin{exercice}
Tracez maintenant un polygone régulier à 180 côtés.
Vous vous aiderez dune boucle.
Recopiez ce programme et vérifier quil trace bien deux polygone. Vous pouvez maintenant en une seule ligne, tracer le polygone de votre choix.
\end{exercice}
\section{Polygones en folie}
Nous allons ajouter une dernière variable à notre programme python. Elle se nome $nombre_cotes$ et représente le nombre de côtés du polygone que lon veut tracer.
\begin{exercice}
Écrivez un programme python qui est capable de tracer nimporte quel polygone ayant un nombre de côtés définis par la variable $nombre\_cotes$.
\\
\textbf{Faites vérifier le programme par le professeur}\\
Le programme commencera par ces lignes :
\begin{minted}{python}
nombre_cotes = 6
longueur_cote = 20
\end{minted}
\end{exercice}
% Le damier est assez dur à faire sans fonctions, il a occupé tous les élèves rapides que jai eu.
\section{Damier (Bonus)}
On peut colorier nos polygones à laide des fonctions « begin\_fill » et « end\_fill ».
Voici lexemple dun triangle que lon remplit :
\begin{minted}{python}
begin_fill()
forward(50)
left(120)
forward(50)
left(120)
forward(50)
polygone(4)
end_fill()
\end{minted}
@ -142,12 +143,9 @@ end_fill()
\\\textbf{Faites vérifier le programme par le professeur}
\\Indices :
\begin{itemize}
\item La première ligne du damier peut être vue comme la répétition dun couple « case blanche + case noire ».
\item La seconde ligne du damier est la répétition dun couple « Case noire + case blanche ».
\item On peut faire dans un premier temps une boucle qui dessine la première ligne.
\item On peut ensuite écrire les instructions permettant de se placer pour pouvoir dessiner la seconde ligne.
\item Dans un troisième temps on peut faire la boucle qui dessine la seconde ligne.
\item Finalement, on peut répéter les opérations précédentes 3 fois pour tracer tout le damier.
\item Écrivez une fonction carre() traçant un carré et carreN() traçant un carré noir. Vous pourrez ainsi construire le damier à laide de ces deux fonctions.
\item Écrivez une fonction ligne() qui trace une ligne de damier.
\item Essayez ensuite dexécuter la fonction ligne() pour tracer le damier.
\end{itemize}
\end{exercice}