a lot of stuff again

This commit is contained in:
Adrian Amaglio 2020-11-26 12:20:52 +01:00
parent a325f92fb6
commit 7c8056b72b
7 changed files with 191 additions and 5 deletions

View File

@ -53,6 +53,6 @@
\begin{picture}(1,0.35)%
\lineheight{1}%
\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}%
\endgroup%

1
python/latex.py Normal file
View File

@ -0,0 +1 @@
jobname="tpintro"

11
python/test.py Normal file
View 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

Binary file not shown.

View File

@ -0,0 +1,2 @@
from turtle import *

154
python/tp_intro/tpintro.tex Normal file
View 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 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}
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 quil trace bien un triangle.\\
Noubliez pas la première ligne (import) qui doit être en haut de chaque programme.
\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{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 langle en degrés entre chaque côtés du polygone et la variable $longueur\_cote$ contiendra la longueur dun 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 lexemple 1.
Mais il est maintenant possible de changer tous les angles dun coup en modifiant la valeur de la variable $angle$ à la ligne 2 !\\
\end{example}
\begin{exercice}
À laide des deux variables de lexemple 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 laction « avancer de 10 pixels » 180 fois :
\begin{minted}{python}
for compteur in range(180):
forward(10)
\end{minted}
\textbf{Pour quune action soit répétée, il faut quelle soit sous la ligne « for » et quelle 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 dune 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 lon veut tracer.
\begin{exercice}
Écrivez un programme python qui est capable de tracer nimporte 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 jai eu.
\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()
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 dun couple « case blanche + case noire ».
\item La seconde ligne du damier est la répétition dun 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}

View File

@ -96,7 +96,7 @@ breaklinks=true,
% --- 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{\thesequence}{Séquence 0}
@ -132,6 +132,7 @@ breaklinks=true,
\rhead{\thesequence}
\usepackage{lastpage}
\renewcommand{\footrulewidth}{0.4pt}% default hline is 0pt
\lfoot{\theauthor}
\cfoot{\thepage \,/ \pageref{LastPage}}
\rfoot{\thelicence}
@ -196,7 +197,7 @@ breaklinks=true,
auto counter,
% number within=chapter
]{#1}{%
breakable,
%breakable, % Bug, add a cartouche on new page, over text
enhanced,
colback=white,
colbacktitle=white,
@ -242,10 +243,27 @@ breaklinks=true,
\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
% ---
\title{Template de cours}
\date{\academicyear}
\author{Best teacher EUW}
\title{}
\author{}