diff --git a/licences/cc-by-sa.pdf_tex b/licences/cc-by-sa.pdf_tex index 4b9ff47..47b8216 100644 --- a/licences/cc-by-sa.pdf_tex +++ b/licences/cc-by-sa.pdf_tex @@ -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% diff --git a/python/latex.py b/python/latex.py new file mode 100644 index 0000000..da7f48d --- /dev/null +++ b/python/latex.py @@ -0,0 +1 @@ +jobname="tpintro" diff --git a/python/test.py b/python/test.py new file mode 100644 index 0000000..cb9d1c1 --- /dev/null +++ b/python/test.py @@ -0,0 +1,11 @@ +from turtle import * + +begin_fill() +forward(50) +left(120) +forward(50) +left(110) +forward(50) + +end_fill() +exitonclick() diff --git a/python/tp_intro/tpintro.pdf b/python/tp_intro/tpintro.pdf new file mode 100644 index 0000000..2242517 Binary files /dev/null and b/python/tp_intro/tpintro.pdf differ diff --git a/python/tp_intro/tpintro.py b/python/tp_intro/tpintro.py new file mode 100644 index 0000000..00a6cc2 --- /dev/null +++ b/python/tp_intro/tpintro.py @@ -0,0 +1,2 @@ +from turtle import * + diff --git a/python/tp_intro/tpintro.tex b/python/tp_intro/tpintro.tex new file mode 100644 index 0000000..f7e17ef --- /dev/null +++ b/python/tp_intro/tpintro.tex @@ -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} diff --git a/template_cours.cls b/template_cours.cls index df2d399..b4c232d 100755 --- a/template_cours.cls +++ b/template_cours.cls @@ -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{}