cours-snt/python/tp_intro_turtle/sujet.tex

153 lines
5.2 KiB
TeX
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

\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 lexercice :
\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 lactivité 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 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}
\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 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}
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.
\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 quil 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 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}
\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 quil 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 à laide des fonctions « begin\_fill » et « end\_fill ».
Voici lexemple dun triangle que lon 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 à 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}
\end{document}