Feat: ajoute 3B sur les boucles et fix l'utilisation des leds
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
7652b5c9d8
commit
4882eb6a66
BIN
1NSI/02_Programmation_Python_et_microbit/3B_boucles.pdf
Normal file
BIN
1NSI/02_Programmation_Python_et_microbit/3B_boucles.pdf
Normal file
Binary file not shown.
181
1NSI/02_Programmation_Python_et_microbit/3B_boucles.tex
Executable file
181
1NSI/02_Programmation_Python_et_microbit/3B_boucles.tex
Executable 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}
|
@ -104,7 +104,7 @@
|
|||||||
Par exemple faire déplacer un point sur la matrice.
|
Par exemple faire déplacer un point sur la matrice.
|
||||||
|
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\begin{minipage}{0.5\linewidth}
|
\begin{minipage}{0.7\linewidth}
|
||||||
\lstinputlisting{./scripts/04_for_led.py}
|
\lstinputlisting{./scripts/04_for_led.py}
|
||||||
\end{minipage}
|
\end{minipage}
|
||||||
\end{center}
|
\end{center}
|
||||||
|
@ -2,7 +2,7 @@ Programmation Python et microbit
|
|||||||
################################
|
################################
|
||||||
|
|
||||||
:date: 2022-09-04
|
:date: 2022-09-04
|
||||||
:modified: 2022-09-22
|
:modified: 2022-09-24
|
||||||
:authors: Benjamin Bertrand
|
:authors: Benjamin Bertrand
|
||||||
:tags: Python, Programmation, Architecture
|
:tags: Python, Programmation, Architecture
|
||||||
:category: 1NSI
|
: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
|
.. image:: ./1B_microbit.pdf
|
||||||
:height: 200px
|
:height: 200px
|
||||||
:alt: Bilan microbit
|
:alt: Bilan microbit
|
||||||
|
|
||||||
|
|
||||||
Étape 2: Succession d'instruction et prise en main
|
Bilan 2: Variable, type et conditions
|
||||||
--------------------------------------------------
|
-------------------------------------
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
.. image:: ./2B_bases_programmation.pdf
|
.. image:: ./2B_bases_programmation.pdf
|
||||||
:height: 200px
|
:height: 200px
|
||||||
:alt: Bilan variables et conditions
|
:alt: Bilan variables et conditions
|
||||||
|
|
||||||
|
|
||||||
Étape 3: Boucle while
|
Bilan 3: Boucle while
|
||||||
---------------------
|
---------------------
|
||||||
|
|
||||||
|
.. image:: ./3B_boucles.pdf
|
||||||
Étape 4: Boucle for
|
:height: 200px
|
||||||
-------------------
|
:alt: Bilan sur les boucles
|
||||||
|
|
||||||
Étape 5: Conditions et évènements
|
|
||||||
---------------------------------
|
|
||||||
|
|
||||||
Étape 6: Un peu tout mélangé
|
|
||||||
----------------------------
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Binary file not shown.
@ -2,5 +2,6 @@ from microbit import *
|
|||||||
import time
|
import time
|
||||||
|
|
||||||
for i in range(5):
|
for i in range(5):
|
||||||
led.plot(i, 0)
|
display.set_led(i, 0, 9)
|
||||||
|
# set_led(colonne, ligne, intensité)
|
||||||
time.sleep(0.5)
|
time.sleep(0.5)
|
||||||
|
Loading…
Reference in New Issue
Block a user