tps python
This commit is contained in:
parent
60590b91e1
commit
8907816d4d
BIN
python/tp_intro_turtle/sujet.pdf
Normal file
BIN
python/tp_intro_turtle/sujet.pdf
Normal file
Binary file not shown.
154
python/tp_intro_turtle/sujet.tex
Normal file
154
python/tp_intro_turtle/sujet.tex
Normal file
@ -0,0 +1,154 @@
|
|||||||
|
\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}
|
BIN
python/tp_variables/sujet.pdf
Normal file
BIN
python/tp_variables/sujet.pdf
Normal file
Binary file not shown.
142
python/tp_variables/sujet.tex
Normal file
142
python/tp_variables/sujet.tex
Normal file
@ -0,0 +1,142 @@
|
|||||||
|
\documentclass[11pt,a4paper]{../../template_cours}
|
||||||
|
|
||||||
|
\usepackage{minted}
|
||||||
|
|
||||||
|
\title{Introduction à Python — Des dessins variables}
|
||||||
|
\author{Adrian Amaglio}
|
||||||
|
\def\thesequence{Programmation}
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
Durée : 1h
|
||||||
|
|
||||||
|
% ---
|
||||||
|
\section{La tortue de Python}
|
||||||
|
Ouvrez un nouveau fichier python vide, et faites le commencer par les lignes suivantes.\\
|
||||||
|
La première active l’usage de la tortue Python, les suivantes vous permettrons de tracer un carré rapidement.
|
||||||
|
\begin{info}
|
||||||
|
\begin{minted}{python}
|
||||||
|
from turtle import *
|
||||||
|
def carre(longueur, angle=0):
|
||||||
|
"""Cette fonction trace un carré de centre 0,0 de longueure et d’inclinaison variables"""
|
||||||
|
up() # Ces 3 lignes placent la tortue au centre du dessin
|
||||||
|
goto(0,0)
|
||||||
|
setheading(angle)
|
||||||
|
forward(longueur/2) # Ces 3 lignes placent la tortue dans un angle de notre futur carré
|
||||||
|
left(90)
|
||||||
|
forward(longueur/2)
|
||||||
|
down()
|
||||||
|
for i in range(4): # Ces 3 lignes tracent un carré
|
||||||
|
left(90)
|
||||||
|
forward(longueur)
|
||||||
|
\end{minted}
|
||||||
|
\end{info}
|
||||||
|
|
||||||
|
% ---
|
||||||
|
\begin{exercice}
|
||||||
|
À la suite des lignes précédentes, écrivez les instructions suivantes :
|
||||||
|
\begin{minted}{python}
|
||||||
|
carre(50)
|
||||||
|
carre(100, 45)
|
||||||
|
\end{minted}
|
||||||
|
Lancez le programme.\\
|
||||||
|
Vous devriez constater que l’instruction carre(50) dessine un carré de côté 50 pixels et que l’instruction carre(100, 45) dessine un carré de côté 100 pixels et incliné à 45°.
|
||||||
|
\end{exercice}
|
||||||
|
|
||||||
|
|
||||||
|
% ---
|
||||||
|
\begin{exercice}
|
||||||
|
Écrivez un programme qui trace 10 carrés de côté 100 pixels dont les angles seront de 0° pour le premier, 10° pour le second, 20°, 30°…
|
||||||
|
\\
|
||||||
|
Nous appellerons la forme ainsi créée « une fleur ».
|
||||||
|
\end{exercice}
|
||||||
|
|
||||||
|
\begin{exercice}
|
||||||
|
Modifiez le programme précédent pour qu’il utilise une boucle.
|
||||||
|
\end{exercice}
|
||||||
|
|
||||||
|
% ---
|
||||||
|
\begin{exercice}
|
||||||
|
Complétez votre programme pour y ajouter une autre fleur, dont les carrés seront de côté 150px.
|
||||||
|
\end{exercice}
|
||||||
|
|
||||||
|
|
||||||
|
% ---
|
||||||
|
\begin{exercice}
|
||||||
|
Modifiez votre programme pour que le nombre de fleur tracé par la tortue dépende de la variable « nombre\_fleur ».\\
|
||||||
|
Chaque fleur devra être 50 pixels plus grande que la précédente.
|
||||||
|
\end{exercice}
|
||||||
|
|
||||||
|
\begin{exercice}
|
||||||
|
Sauvegardez votre programme dans un fichier python, à un endroit où vous pourrez le retrouver plus tard.
|
||||||
|
\end{exercice}
|
||||||
|
|
||||||
|
\section{Des grands carrés}
|
||||||
|
Ouvrez un nouveau fichier python et ajoutez-y les premières lignes, comme dans la partie précédente.
|
||||||
|
\begin{exercice}
|
||||||
|
Écrivez un programme qui dessine 50 carrés.\\
|
||||||
|
L’inclinaison et la longueur de côtés des carrés doit augmenter pour chaque carré tracé.
|
||||||
|
\end{exercice}
|
||||||
|
|
||||||
|
|
||||||
|
\begin{exercice}
|
||||||
|
Utilisez l’instruction suivante pour changer la couleur de dessin :
|
||||||
|
\begin{minted}{python}
|
||||||
|
pencolor(r,v,b)
|
||||||
|
\end{minted}
|
||||||
|
Où r, v et b sont des valeurs entre 0 et 1 qui décrivent la quantité de Rouge, Vert et Bleu dans la couleurs souhaitée.
|
||||||
|
\\
|
||||||
|
On peut remplacer r, v et/ou b par l’instruction random() pour obtenir une valeur aléatoire.
|
||||||
|
Il faut alors ajouter au début de votre programme, la ligne :
|
||||||
|
\begin{minted}{python}
|
||||||
|
from random import random
|
||||||
|
\end{minted}
|
||||||
|
Par exemple, pour donner une couleur aléatoire, on peut utiliser la ligne suivante, qui fait un tirage aléatoire pour le rouge, un autre pour le vert et un troisième pour le bleu.
|
||||||
|
\begin{minted}{python}
|
||||||
|
pencolor(random(),random(),random())
|
||||||
|
\end{minted}
|
||||||
|
\end{exercice}
|
||||||
|
|
||||||
|
\begin{exercice}
|
||||||
|
Modifiez votre programme pour qu’après avoir dessiné les 50 carrés, il les dessine à nouveau dans l’ordre inverse.\\
|
||||||
|
Pour faire varier un compteur de 50 à 0, la boucle suivante peut être utilisée :
|
||||||
|
\begin{minted}{python}
|
||||||
|
for compteur in range(50, 0, -1):
|
||||||
|
\end{minted}
|
||||||
|
\end{exercice}
|
||||||
|
|
||||||
|
\begin{exercice}
|
||||||
|
Sauvegardez votre programme dans un fichier python, à un endroit où vous pourrez le retrouver plus tard.
|
||||||
|
\end{exercice}
|
||||||
|
|
||||||
|
\section{Les tables de multiplications}
|
||||||
|
|
||||||
|
\begin{exercice}
|
||||||
|
Écrivez un programme qui affiche la table de multiplication de 1 comme suit :\\
|
||||||
|
1x1=1\\
|
||||||
|
1x2=2\\
|
||||||
|
…\\
|
||||||
|
Pour afficher une variable et un texte sur la même ligne, on utilisera le signe « + » :\\
|
||||||
|
Attention à bien entourer un texte de guillemets et une variable de la fonction str().
|
||||||
|
\begin{minted}{python}
|
||||||
|
print('valeur = ' + str(ma_variable))
|
||||||
|
\end{minted}
|
||||||
|
\end{exercice}
|
||||||
|
|
||||||
|
\begin{exercice}
|
||||||
|
Écrivez un programme qui affiche la table de multiplication de 10.
|
||||||
|
\end{exercice}
|
||||||
|
|
||||||
|
\begin{exercice}
|
||||||
|
Écrivez un programme qui affiche les tables de multiplications de 1 à 12.\\
|
||||||
|
La boucle suivante fera varier le nombre de 1 à 12 :
|
||||||
|
\begin{minted}{python}
|
||||||
|
for nombre in range(1,13):
|
||||||
|
\end{minted}
|
||||||
|
\end{exercice}
|
||||||
|
|
||||||
|
\begin{exercice}
|
||||||
|
Sauvegardez votre programme dans un fichier python, à un endroit où vous pourrez le retrouver plus tard.
|
||||||
|
\end{exercice}
|
||||||
|
|
||||||
|
|
||||||
|
\end{document}
|
Loading…
Reference in New Issue
Block a user