153 lines
5.2 KiB
TeX
153 lines
5.2 KiB
TeX
\documentclass[11pt,a4paper]{../../template/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 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 l’exercice :
|
||
\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}
|
||
|
||
\section{Triangles, carrés et plus si affinités}
|
||
|
||
Voici un programme Python qui trace deux traits de 100 pixels
|
||
\begin{example}
|
||
\begin{minted}{python}
|
||
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 deux traits.\\
|
||
N’oubliez pas la première ligne (import) qui doit être en haut de chaque programme.
|
||
\end{exercice}
|
||
|
||
\begin{exercice}
|
||
Complétez ce programme pour qu’il affiche un triangle.
|
||
\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{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 qu’elles soient sous la ligne « for » et qu’elles soient précédées de 4 espaces.}
|
||
\end{example}
|
||
\begin{exercice}
|
||
Recopiez ce programme et exécutez le. Vérifiez qu’il trace bien un triangle.
|
||
\end{exercice}
|
||
\begin{exercice}
|
||
Modifiez ce programme pour qu’il trace un carré, puis un hexagone. Quelles modifications faites vous ?
|
||
\end{exercice}
|
||
|
||
%
|
||
\section{Des variables}
|
||
Nous allons essayer de modifier le programme pour qu’il soit capable de tracer n’importe quel polygone.
|
||
Nous aurons besoin d’une 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.
|
||
\begin{minted}{python}
|
||
nb_cotes = 3
|
||
for compteur in range(nb_cotes):
|
||
forward(100)
|
||
left(360/nb_cotes)
|
||
\end{minted}
|
||
\end{example}
|
||
|
||
\begin{exercice}
|
||
Recopiez ce programme et vérifiez qu’il trace bien un triangle.
|
||
\end{exercice}
|
||
|
||
\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 t’il ?
|
||
\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 (c’est un sous-programme) capable de tracer n’importe quel polygone.
|
||
Nous pourrons alors exécuter ce sous-programme dès que besoin.
|
||
\begin{example}
|
||
\begin{minted}{python}
|
||
def polygone(nb_cotes):
|
||
for compteur in range(nb_cotes):
|
||
forward(100)
|
||
left(360/nb_cotes)
|
||
polygone(3)
|
||
polygone(5)
|
||
\end{minted}
|
||
\end{example}
|
||
|
||
\begin{exercice}
|
||
Recopiez ce programme et vérifier qu’il trace bien deux polygone. Vous pouvez maintenant en une seule ligne, tracer le polygone de votre choix.
|
||
\end{exercice}
|
||
|
||
\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()
|
||
polygone(4)
|
||
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 Écrivez une fonction carre() traçant un carré et carreN() traçant un carré noir. Vous pourrez ainsi construire le damier à l’aide de ces deux fonctions.
|
||
\item Écrivez une fonction ligne() qui trace une ligne de damier.
|
||
\item Essayez ensuite d’exécuter la fonction ligne() pour tracer le damier.
|
||
\end{itemize}
|
||
\end{exercice}
|
||
|
||
\end{document}
|