a lot of stuff again
This commit is contained in:
parent
a325f92fb6
commit
7c8056b72b
@ -53,6 +53,6 @@
|
|||||||
\begin{picture}(1,0.35)%
|
\begin{picture}(1,0.35)%
|
||||||
\lineheight{1}%
|
\lineheight{1}%
|
||||||
\setlength\tabcolsep{0pt}%
|
\setlength\tabcolsep{0pt}%
|
||||||
\put(0,0){\includegraphics[width=\unitlength,page=1]{../licences/cc-by-sa.pdf}}%
|
\put(0,0){\includegraphics[width=\unitlength,page=1]{../../licences/cc-by-sa.pdf}}%
|
||||||
\end{picture}%
|
\end{picture}%
|
||||||
\endgroup%
|
\endgroup%
|
||||||
|
1
python/latex.py
Normal file
1
python/latex.py
Normal file
@ -0,0 +1 @@
|
|||||||
|
jobname="tpintro"
|
11
python/test.py
Normal file
11
python/test.py
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
from turtle import *
|
||||||
|
|
||||||
|
begin_fill()
|
||||||
|
forward(50)
|
||||||
|
left(120)
|
||||||
|
forward(50)
|
||||||
|
left(110)
|
||||||
|
forward(50)
|
||||||
|
|
||||||
|
end_fill()
|
||||||
|
exitonclick()
|
BIN
python/tp_intro/tpintro.pdf
Normal file
BIN
python/tp_intro/tpintro.pdf
Normal file
Binary file not shown.
2
python/tp_intro/tpintro.py
Normal file
2
python/tp_intro/tpintro.py
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
from turtle import *
|
||||||
|
|
154
python/tp_intro/tpintro.tex
Normal file
154
python/tp_intro/tpintro.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}
|
@ -96,7 +96,7 @@ breaklinks=true,
|
|||||||
|
|
||||||
% --- Register some information about the document
|
% --- Register some information about the document
|
||||||
% ---
|
% ---
|
||||||
\newcommand{\thelicence}{\def\svgwidth{.1\columnwidth}\input{../licences/cc-by-sa.pdf_tex}}
|
\newcommand{\thelicence}{\def\svgwidth{.1\columnwidth}\input{../../licences/cc-by-sa.pdf_tex}}
|
||||||
\newcommand{\thelevel}{SNT}
|
\newcommand{\thelevel}{SNT}
|
||||||
\newcommand{\thesequence}{Séquence 0}
|
\newcommand{\thesequence}{Séquence 0}
|
||||||
|
|
||||||
@ -132,6 +132,7 @@ breaklinks=true,
|
|||||||
\rhead{\thesequence}
|
\rhead{\thesequence}
|
||||||
|
|
||||||
\usepackage{lastpage}
|
\usepackage{lastpage}
|
||||||
|
\renewcommand{\footrulewidth}{0.4pt}% default hline is 0pt
|
||||||
\lfoot{\theauthor}
|
\lfoot{\theauthor}
|
||||||
\cfoot{\thepage \,/ \pageref{LastPage}}
|
\cfoot{\thepage \,/ \pageref{LastPage}}
|
||||||
\rfoot{\thelicence}
|
\rfoot{\thelicence}
|
||||||
@ -196,7 +197,7 @@ breaklinks=true,
|
|||||||
auto counter,
|
auto counter,
|
||||||
% number within=chapter
|
% number within=chapter
|
||||||
]{#1}{%
|
]{#1}{%
|
||||||
breakable,
|
%breakable, % Bug, add a cartouche on new page, over text
|
||||||
enhanced,
|
enhanced,
|
||||||
colback=white,
|
colback=white,
|
||||||
colbacktitle=white,
|
colbacktitle=white,
|
||||||
@ -242,10 +243,27 @@ breaklinks=true,
|
|||||||
\myenvironment{further}{Pour aller plus loin}{greentitle}{greentitleback}
|
\myenvironment{further}{Pour aller plus loin}{greentitle}{greentitleback}
|
||||||
|
|
||||||
|
|
||||||
|
% --- Include tiks figures from external files
|
||||||
|
% --- Those figures supports beamer options that are ignored in article mode
|
||||||
|
% ---
|
||||||
|
% `mode=tex` means we will use the source file of the figures directly.
|
||||||
|
\usepackage[mode=tex]{standalone}
|
||||||
|
\usepackage{tikz}
|
||||||
|
\usetikzlibrary{calc,positioning}
|
||||||
|
|
||||||
|
% Create fake \onslide and other commands for standalone picture
|
||||||
|
\usepackage{xparse}
|
||||||
|
\NewDocumentCommand{\onslide}{s t+ d<>}{}
|
||||||
|
\NewDocumentCommand{\only}{d<>}{}
|
||||||
|
\NewDocumentCommand{\uncover}{d<>}{}
|
||||||
|
\NewDocumentCommand{\visible}{d<>}{}
|
||||||
|
\NewDocumentCommand{\invisible}{d<>}{}
|
||||||
|
|
||||||
|
|
||||||
% --- Some default values
|
% --- Some default values
|
||||||
% ---
|
% ---
|
||||||
\title{Template de cours}
|
|
||||||
\date{\academicyear}
|
\date{\academicyear}
|
||||||
\author{Best teacher EUW}
|
\title{}
|
||||||
|
\author{}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user