Feat: ajoute 3B sur les boucles et fix l'utilisation des leds
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Bertrand Benjamin 2022-09-24 09:40:07 +02:00
parent 7652b5c9d8
commit 4882eb6a66
6 changed files with 192 additions and 22 deletions

View File

@ -0,0 +1,181 @@
\documentclass[a4paper,10pt]{article}
\usepackage{myXsim}
\usepackage{minted}
\author{Benjamin Bertrand}
\title{Python et micro:bit - Cours}
\date{Septembre 2022}
\pagestyle{empty}
\begin{document}
\maketitle
\setcounter{section}{1}
\section{Corpus élémentaire de Python (suite)}
\setcounter{subsection}{4}
\subsection{Boucle non bornée}
\begin{definition}[Boucle while]
Lorsque l'on veut répéter des actions \textbf{tant que} quelque chose est vrai, on utilise une boucle \mintinline{python}{while}.
\begin{center}
\begin{minipage}{0.5\linewidth}
\begin{minted}[bgcolor=base3,linenos]{python}
while condition:
instruction 1
instruction 2
instruction 3
\end{minted}
\end{minipage}
\end{center}
La condition doit être de type booléen ou sera considéré comme tel.
\end{definition}
\textbf{Exemple:}
On veut écrire un programme qui modélise la situation suivante: une ville compte 3 millions d'habitants. Sa population augmente de 2\% par an. Combien d'année faudra-t-il attendre pour que la population ait doublée.
\begin{multicols}{2}
\begin{minted}[bgcolor=base3,linenos]{python}
population = 3
double = population * 2
taux = 2/100
annee = 0
while population < double:
population = population * (1 + taux)
annee = annee + 1
print("La population a doublé après ", annee, "ans")
\end{minted}
\columnbreak
Tableau d'états
\begin{tabular}{|*{4}{p{1.5cm}|}}
\hline
& & & \\
\hline
& & & \\
\hline
& & & \\
\hline
& & & \\
\hline
& & & \\
\hline
& & & \\
\hline
& & & \\
\hline
\end{tabular}
\end{multicols}
\afaire{compléter le tableau d'états en prenant une colonne par variable. Que va afficher le programme?}
\subsection{Boucle bornée}
\begin{definition}[Boucle for]
Lorsque que l'on veut répéter des actions sur un ensemble de valeurs données, on utilise la boucle \mintinline{python}{for}.
\begin{center}
\begin{minipage}{0.5\linewidth}
\begin{minted}[bgcolor=base3,linenos]{python}
for element in iterateur:
instruction 1
instruction 2
instruction 3
\end{minted}
\end{minipage}
\end{center}
À chaque tour de boucle, la variable \mintinline{python}{element} prendra les valeurs successives de l'itérateur.
\end{definition}
\pagebreak
\textbf{Quelques itérateurs:}
\begin{multicols}{3}
Range(n):
\begin{minted}[bgcolor=base3,linenos]{python}
for i in range(3):
print(i)
\end{minted}
Table d'états
\begin{tabular}{|p{2cm}|}
\hline
i \\
\hline
\\
\hline
\\
\hline
\\
\hline
\\
\hline
\\
\hline
\end{tabular}
\columnbreak
Chaine de caractères:
\begin{minted}[bgcolor=base3,linenos]{python}
for lettre in "AZERTY":
print(lettre)
\end{minted}
Table d'états
\begin{tabular}{|p{2cm}|}
\hline
lettre \\
\hline
\\
\hline
\\
\hline
\\
\hline
\\
\hline
\\
\hline
\end{tabular}
\columnbreak
Liste:
\begin{minted}[bgcolor=base3,linenos]{python}
for chose in ["a", 3, True, 5]:
print(chose)
\end{minted}
Table d'états
\begin{tabular}{|p{2cm}|}
\hline
chose \\
\hline
\\
\hline
\\
\hline
\\
\hline
\\
\hline
\\
\hline
\end{tabular}
\end{multicols}
\end{document}

View File

@ -104,7 +104,7 @@
Par exemple faire déplacer un point sur la matrice.
\begin{center}
\begin{minipage}{0.5\linewidth}
\begin{minipage}{0.7\linewidth}
\lstinputlisting{./scripts/04_for_led.py}
\end{minipage}
\end{center}

View File

@ -2,7 +2,7 @@ Programmation Python et microbit
################################
:date: 2022-09-04
:modified: 2022-09-22
:modified: 2022-09-24
:authors: Benjamin Bertrand
:tags: Python, Programmation, Architecture
:category: 1NSI
@ -42,40 +42,28 @@ Plan de travail
Étape 1: Identification des capacités de la carte microbit
Bilan 1: Identification des capacités de la carte microbit
----------------------------------------------------------
Bilan:
.. image:: ./1B_microbit.pdf
:height: 200px
:alt: Bilan microbit
Étape 2: Succession d'instruction et prise en main
--------------------------------------------------
Dans cette étape, les élèves apprennent à manipuler les images sur la matrice de led et à utiliser quelques capteurs.
Avant de laisser les élèves se lancer dans la suite des exercices, on fait une présentation du "workflow" pour programmer, compiler puis flasher un programme sur micorbit.
Bilan 2: Variable, type et conditions
-------------------------------------
.. image:: ./2B_bases_programmation.pdf
:height: 200px
:alt: Bilan variables et conditions
Étape 3: Boucle while
Bilan 3: Boucle while
---------------------
Étape 4: Boucle for
-------------------
Étape 5: Conditions et évènements
---------------------------------
Étape 6: Un peu tout mélangé
----------------------------
.. image:: ./3B_boucles.pdf
:height: 200px
:alt: Bilan sur les boucles

View File

@ -2,5 +2,6 @@ from microbit import *
import time
for i in range(5):
led.plot(i, 0)
display.set_led(i, 0, 9)
# set_led(colonne, ligne, intensité)
time.sleep(0.5)