155 lines
5.6 KiB
TeX
155 lines
5.6 KiB
TeX
\documentclass[11pt,a4paper]{../../template_cours}
|
||
|
||
\usepackage{minted}
|
||
|
||
\title{Introduction à Python — Dessiner avec la tortue}
|
||
\author{Adrian Amaglio}
|
||
\def\thesequence{Programmation}
|
||
|
||
\begin{document}
|
||
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 :
|
||
\begin{minted}{python}
|
||
from turtle import *
|
||
\end{minted}
|
||
|
||
%Pour que la fenêtre de dessin ne se ferme pas juste après la fin du tracé, ajoutez cette ligne \textbf{à la fin du programme} :
|
||
%\begin{minted}{python}
|
||
%exitonclick()
|
||
%\end{minted}
|
||
|
||
% Des élèves recopient tout sans réfléchir, je laisse ça là pour détecter ceux qui ne lisent pas le sujet.
|
||
Le but de l’activité sera de diriger le curseur (A.K.A. la tortue) pour tracer les formes demandées.
|
||
\\\textbf{À titre indicatif,} voici les instructions que nous utiliserons :
|
||
|
||
Pour aller tout droit de 20 pixels :
|
||
\begin{minted}{python}
|
||
forward(20)
|
||
\end{minted}
|
||
|
||
Pour tourner sur la gauche de 45° :
|
||
\begin{minted}{python}
|
||
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
|
||
\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 qu’il trace bien un triangle.\\
|
||
N’oubliez pas la première ligne (import) qui doit être en haut de chaque programme.
|
||
\end{exercice}
|
||
|
||
\begin{exercice}
|
||
Modifiez ce programme Python pour qu’il dessine un carré (polygone régulier à 4 côtés).
|
||
\end{exercice}
|
||
|
||
\begin{exercice}
|
||
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{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 l’angle en degrés entre chaque côtés du polygone et la variable $longueur\_cote$ contiendra la longueur d’un côté en pixels.
|
||
\begin{example}
|
||
Ce programme python trace un triangle équilatéral de côté 50px
|
||
\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)
|
||
\end{minted}
|
||
Il est strictement équivalent au programe de l’exemple 1.
|
||
Mais il est maintenant possible de changer tous les angles d’un coup en modifiant la valeur de la variable $angle$ à la ligne 2 !\\
|
||
\end{example}
|
||
|
||
\begin{exercice}
|
||
À l’aide des deux variables de l’exemple précédent, tracez un polygone régulier à 16 côtés.
|
||
\\\textbf{Faites vérifier le programme par le professeur}\\
|
||
\end{exercice}
|
||
|
||
\section{Des boucles}
|
||
\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 l’action « avancer de 10 pixels » 180 fois :
|
||
\begin{minted}{python}
|
||
for compteur in range(180):
|
||
forward(10)
|
||
\end{minted}
|
||
\textbf{Pour qu’une action soit répétée, il faut qu’elle soit sous la ligne « for » et qu’elle 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 d’une boucle.
|
||
\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 l’on veut tracer.
|
||
\begin{exercice}
|
||
Écrivez un programme python qui est capable de tracer n’importe 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 j’ai eu.
|
||
\section{Damier (Bonus)}
|
||
On peut colorier nos polygones à l’aide des fonctions « begin\_fill » et « end\_fill ».
|
||
Voici l’exemple d’un triangle que l’on remplit :
|
||
\begin{minted}{python}
|
||
begin_fill()
|
||
forward(50)
|
||
left(120)
|
||
forward(50)
|
||
left(120)
|
||
forward(50)
|
||
end_fill()
|
||
\end{minted}
|
||
|
||
\begin{exercice}
|
||
Écrivez un programme qui trace un damier de 6 cases par 6 cases.
|
||
Les couleurs des cases doivent alterner blanc et noir.
|
||
\\\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 d’un couple « case blanche + case noire ».
|
||
\item La seconde ligne du damier est la répétition d’un 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.
|
||
\end{itemize}
|
||
\end{exercice}
|
||
|
||
\end{document}
|