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.
|
||||
|
||||
\begin{center}
|
||||
\begin{minipage}{0.5\linewidth}
|
||||
\begin{minipage}{0.7\linewidth}
|
||||
\lstinputlisting{./scripts/04_for_led.py}
|
||||
\end{minipage}
|
||||
\end{center}
|
||||
|
@ -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
|
||||
|
||||
|
||||
|
||||
|
Binary file not shown.
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user