%\documentclass{article} %DÉSACTIVER POUR A5
\documentclass[a5paper]{article} %ACTIVER POUR A5

%########
% Packages #
%########

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}

%######Affichage des maths
\DecimalMathComma %pour ne plus avoir d'espace après la virgule dans l'écriture décimale des nombres

\usepackage{amsmath}
\usepackage{amssymb,amsthm}
\usepackage{mathrsfs}
\usepackage{amsopn}

\usepackage[np]{numprint}%écriture des nombres avec des espaces et en écriture scientifique

\usepackage{dsfont} %Pour faire le 1 double barre de la fonction caractérisitque dans un enironnement maths. \mathds{1}
%\usepackage{bbold} %Double barre mais en petit pour tout les nombres dans un enironnement maths.\mathbb{1}

%######Graphique
\usepackage[dvipsnames]{xcolor}
\usepackage{graphicx}
\usepackage{pgf}
\usepackage{tikz}
\usepackage{tkz-tab}
\usetikzlibrary{shapes,arrows}

\usepackage{geometry} 
\geometry{hscale=0.85,vscale=0.85,centering}

%######Tableau
\usepackage{array} %pour centrer dans un tableau
\usepackage{colortbl} %pour colorier les cellules lignes colonnes d'un tableau: \rowcolor{}, \columncolor{}, \cellcolor{purple!25}
\usepackage{tabularx} %quelques amélioraions de l'environnement tabular
\usepackage{diagbox} %Pour faire une diagonale dans une case d'un tableau: \diagbox{bas gauche}{haut droit}
\usepackage{multirow} %fusionner des cellules horizontalement

%######Hyperliens dans les pdf

\usepackage[colorlinks=true,linkcolor=magenta,urlcolor=magenta]{hyperref}% Pour créer des liens à l'intérieur du pdf: \hyperlink{label}{texte du lien} permettra d'atteindre la cible identifiée par \hypertarget{label}{texte de la cible}. Les textes du lien et de la cible peuvent être vides.

%######Des symboles et images

\usepackage{marvosym} %Image de téléphone protable avec la commande \Mobilefone

\usepackage{fdsymbol} %Notamment le cœur plein: \varheartsuit

\usepackage{eurosym}%pour afficher le symbole euro

%######Vrac

\usepackage{enumerate}%énumération avec des lettres 
\usepackage{tasks}%Pour avoir une liste en ligne utiliser \begin{tasks}(2) (pour deux colonnes) et non pas enumerate puis \task et non pas \item 

\usepackage{stmaryrd}%pour faire des "intervalles" d'entiers \llbracket et \rrbracket

\usepackage{xlop}%poser les calculs en colonne: \opdiv[displayintermediary=nonzero,voperation=top,shiftdecimalsep=none]{27}{45}
\opset{decimalsepsymbol={,}}

\usepackage{verbatim}%pour utiliser commande \exclure et normalement pour faire l'affichage tel quel sans compiler le texte. 
%\usepackage{alltt}%Pour utiliser une commande latex dans un environnement verbatim il faut utiliser: alltt
%Pour écrire juste suelques mots en verbatim au milieu d'un phrase: \verb|quelques mots|

\usepackage{fancyhdr}

%######Algo

\usepackage{listings} % \begin{lstlisting} \end{lstlisting} affiche du code comme le fait le langage choisi. \lstset{language=Pascal} \lstset{language=Python} pour choisir le langage dans le document avant chaque programme ou avant le \begin{document} pour l'appliquer à tout le document. 
%\lstset{} permet d'indiquer toutes les options. Pas de caractère accentué (option lourdingue à rajouter) qui vont s'ppliquer pour toute la suite du document: \lstset{language=Python}
%Il espossible d'inclure un code python d'un fichier extérieur \lstinputlisting{source_filename.py}.
%Il est possible de définir une présentation personnalisé par un ensemble de configuration enregistré dans un fichier de style
\lstdefinestyle{pythonstyle}{
	language=Python,
	backgroundcolor=\color{gray!30},   
	commentstyle=\color{Plum},
	keywordstyle=\color{blue},
	numberstyle=\tiny\color{black},
	stringstyle=\color{ForestGreen},
	basicstyle=\ttfamily\color{black},
	breakatwhitespace=false,         
	breaklines=true,                 
	captionpos=b,                    
	keepspaces=true,                 
	numbers=none,                   
	numbersep=5pt,                  
	showspaces=false,                
	showstringspaces=false,
	showtabs=false,                  
	tabsize=1
}
\lstset{style=pythonstyle}

\lstdefinestyle{bashstyle}{
	language=bash,
	backgroundcolor=\color{black},   
	commentstyle=\color{white},
	keywordstyle=\color{magenta},
	numberstyle=\tiny\color{black},
	stringstyle=\color{white},
	basicstyle=\ttfamily\footnotesize\color{white},
	breakatwhitespace=false,         
	breaklines=true,                 
	captionpos=b,                    
	keepspaces=true,                
	numbers=left,                    
	numbersep=5pt,                  
	showspaces=false,                
	showstringspaces=false,
	showtabs=false,                  
	tabsize=1
}
%\lstset{style=bashstyle}

\usepackage[french]{algorithm2e}%pseudocode

\usepackage{scratch3}

%############### Formule developpée molécule chimie

\usepackage{chemfig}

%#####################
% Commande et environnement #
%#####################

\theoremstyle{plain}

%Pour redéfinir les commande section (changer la couleur centrer):
\usepackage{titlesec}
\titleformat{\section}[block]{\color{blue}\Large\bfseries\filcenter}{}{1em}{}
\titleformat{\subsection}[hang]{\color{purple}\large\bfseries}{\thesubsection}{1em}{}
\titleformat{\subsubsection}[hang]{\color{RoyalBlue} \bfseries}{\thesubsubsection}{1em}{}
\titleformat{\paragraph}[hang]{}{}{1em}{}

\renewcommand{\thesection}{{}}
\renewcommand{\thesubsection}{\color{purple}\Roman{subsection}}
\renewcommand{\thesubsubsection}{\color{RoyalBlue}\arabic{subsubsection}}

\newenvironment{correction}{\color{Brown}}{\medskip}

\newenvironment{sujet}{}{\medskip}

%environnement bareme
\newenvironment{bareme}{\color{RoyalBlue}\footnotesize \hfill }{\footnotesize \emph{~points}}

%environnement détais du barème
\newenvironment{details}{\color{RoyalBlue}\noindent ~\\}{~\\}

%environnement notabene
\newenvironment{notabene}{\color{PineGreen}\noindent ~\\}{~\\}

%environnement exemples
\newenvironment{exemples}{\color{RoyalBlue} \medskip \noindent \underline{Exemples.}}{}

%environnement remarques
\newenvironment{remarques}{\medskip \noindent {\color{BlueViolet}\underline{Remarques.}}\color{BlueViolet}}{}

\newenvironment{lecon}{\color{black}}{}

\newenvironment{culturegenerale}{\color{Violet}}{}

%Pour redéfinir les environnements exercices et autres avec de la couleur
\newsavebox{\selvestebox}
\newenvironment{colbox}[1]
{\newcommand\colboxcolor{#1}%
	\begin{lrbox}{\selvestebox}%
		\begin{minipage}{\dimexpr\columnwidth-2\fboxsep\relax}}
		{\end{minipage}\end{lrbox}%
	\begin{center}
		\colorbox{\colboxcolor}{\usebox{\selvestebox}}
\end{center}}

%environnement exercice
\newcounter{Exercice}
\setcounter{Exercice}{1}
\newcounter{Exercicecorrection}
\newenvironment{exercice}[1]{ \setcounter{Exercicecorrection}{\theExercice} \color{blue} \begin{colbox}{blue!10} \hfill \small {\color{RoyalBlue}Exercice \theExercice. #1} \hfill \addtocounter{Exercice}{1}}{ \end{colbox} }

%environnement exercicecorrection
\newenvironment{exercicecorrection}{\medskip \small \color{Brown} \noindent \underline{Correction de l'exercice \theExercicecorrection}
	
}{}

\newenvironment{exerciceapplication}{ \setcounter{Exercicecorrection}{\theExercice} \color{blue} \begin{colbox}{blue!10} \hfill \small {\color{RoyalBlue}Exercice \theExercice. Application.} \hfill \addtocounter{Exercice}{1} }{ \end{colbox} }

\newenvironment{concours}{\setcounter{Exercicecorrection}{\theExercice} \small \color{blue} \medskip \hfill {\color{RoyalBlue}Exercice \theExercice. Concours.} \hfill \addtocounter{Exercice}{1} }{\medskip}

\newenvironment{recherche}{\setcounter{Exercicecorrection}{\theExercice} \small \color{blue} \medskip \hfill { \color{RoyalBlue}Exercice \theExercice. Recherche.} \hfill \addtocounter{Exercice}{1} }{\medskip}

%environnement definition
\newcounter{Definition}
\setcounter{Definition}{1}
\newenvironment{definition}{\medskip \noindent {\color{orange}Définition \theDefinition} \addtocounter{Definition}{1} \newline \noindent \begin{tabular}{|m{12cm}|}\hline \\ }{\\ \hline \end{tabular}}

%environnement théorème il est possible d'ajouter un titre de théorème en mettant entre accolade le titre après le begin{theoreme}
\newcounter{Theoreme}
\setcounter{Theoreme}{1}
\newenvironment{theoreme}[1]{\medskip \noindent {\color{purple}Théorème \theTheoreme #1} \addtocounter{Theoreme}{1} 
	
	\noindent \begin{tabular}{|m{12cm}|}\hline \\ }{\\ \hline \end{tabular}}

%environnement proposition
\newcounter{Proposition}
\setcounter{Proposition}{1}
\newenvironment{proposition}[1]{\medskip \noindent {\color{PineGreen}Proposition \theProposition #1} \addtocounter{Proposition}{1}
	
	\noindent \begin{tabular}{|m{12cm}|}\hline \\ }{\\ \hline \end{tabular}}

%environnement propriété
\newcounter{Propriete}
\setcounter{Propriete}{1}
\newenvironment{propriété}[1]{\medskip \noindent {\color{PineGreen}Propriété \thePropriete #1} \addtocounter{Propriete}{1}
	
	\noindent \begin{tabular}{|m{12cm}|}\hline \\ }{\\ \hline \end{tabular}}

%environnement lemme
\newcounter{Lemme}
\setcounter{Lemme}{1}
\newenvironment{lemme}[1]{\medskip \noindent {\color{PineGreen}Lemme \theLemme #1} \addtocounter{Lemme}{1}
	
	\noindent \begin{tabular}{|m{12cm}|}\hline \\ }{\\ \hline \end{tabular}}

%environnement corollaire
\newcounter{Corollaire}
\setcounter{Corollaire}{1}
\newenvironment{corollaire}[1]{\medskip \noindent {\color{PineGreen}Corollaire \theCorollaire #1} \addtocounter{Corollaire}{1} 
	
	\noindent \begin{tabular}{|m{12cm}|}\hline \\ }{\\ \hline \end{tabular}}

%environnement démonstration
\newcounter{Demonstration}
\setcounter{Demonstration}{1}
\newenvironment{preuve}[1]{\medskip \noindent {\color{PineGreen} Démonstration} \addtocounter{Demonstration}{1} \color{violet} 
	
}{\hfill $\blacksquare$}

%environnement conclusion encadré et coloré
\newenvironment{conclusion}
{\color{PineGreen}\begin{tabular}{|c|}\hline \\ \begin{minipage}{0.85\linewidth} \begin{center} }
			{\end{center} \end{minipage} \\ \\ \hline \end{tabular} }

%Commande pour l'objectif et l'écrire en vert
\newcommand{\objectif}[1]{{\color{PineGreen}#1}
	
	\medskip}

%########################
%Test conditionnel pour l'affichage    #
%########################
\newif\ifs
%\strue%affiche la boite à trous
\sfalse%affiche la réponse

%Pour faire une case à trou complétable sur le pdf
\newcounter{Trous}
\setcounter{Trous}{1}
\newcommand{\trous}[2][3cm]{
	\ifs
	\begin{Form}
		\TextField[name=\theTrous ,bordercolor=,borderwidth=0, backgroundcolor=gray!20, align=1,  width=#1 ,height=0.2cm, bordersep=0,color=black] {}
	\end{Form}
	\xspace
	\else
	#2
	\fi
	\addtocounter{Trous}{1}
}

%#########################
%en tête puis pied de page
%#########################

\pagestyle{empty}
\pagestyle{fancy} 
\renewcommand{\headrulewidth}{0pt}%Pas de ligne horizontale en haut
\lhead[]{}%entre crochets pages paires entre accolades pages impaires
\chead[\small ]{\footnotesize \href{http://unemainlavelautre.net/2ieme.html}{Programmer en Python.} }% l left, c center, r right
\rhead[]{}
\lfoot[]{}
\cfoot[\small -\thepage -]{\small -\thepage -}
\rfoot[]{}

%############################
%les environnements qu'on affiche ou pas  #
%############################

\newcommand{\exclure}[1]{\renewenvironment{#1}{\begingroup\comment}{\endcomment\endgroup\ignorespaces}}
\exclure{details}
\exclure{bareme}
\exclure{notabene}
%\exclure{exercicecorrection}\exclure{correction}\exclure{preuve}\exclure{exemples}%papi
%\exclure{remarques}\exclure{corollaire}\exclure{lemme}\exclure{proposition}\exclure{theoreme}\exclure{culturegenerale}\exclure{definition}\exclure{lecon}
%\exclure{sujet}

%###############################
%#Double numérotation des pages#
%###############################
%\pagenumbering{roman} %À mettre juste avant \begin{document}. DOnc simplement décommenter.
%\pagenumbering{arabic} %À copier décommenté 

\begin{document}

\section{Programmer en Python.}

\subsection{Le langage Python pour les maths.}

Il est possible de tester les instructions en allant sur le \href{https://www.lelivrescolaire.fr/outils/console-python}{laboratoire du Livrescolaire}.

\begin{lecon}
	
	Python est un langage  informatique qui permet, entre autres, de faire des mathématiques.
	
\end{lecon}

\begin{notabene}
	
	J'écris les instructions en console Python au tableau et les élèves doivent  subodorer le résultat qui sera affiché.
	
	Je pense que pour cette leçon pas de prise de note.
	
\end{notabene}

\subsubsection{Addition.}

\begin{lecon}
	
	\begin{center}
		\begin{minipage}{3cm}
			\lstset{emph={fonction}, emphstyle=\color{red},
				emph={[2]variable1,variable2}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
>>>2+3
5
\end{lstlisting}
		\end{minipage}
	\end{center}

\end{lecon}

\subsubsection{Soustraction.}

\begin{lecon}
	
	\begin{center}
		\begin{minipage}{3cm}
			\lstset{emph={fonction}, emphstyle=\color{red},
				emph={[2]variable1,variable2}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
>>>2-3
-1
\end{lstlisting}
		\end{minipage}
	\end{center}
	
\end{lecon}

\subsubsection{Multiplication.}

\begin{lecon}
	
	\begin{center}
		\begin{minipage}{3cm}
			\lstset{emph={fonction}, emphstyle=\color{red},
				emph={[2]variable1,variable2}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
>>>2*(-3)
-6
\end{lstlisting}
		\end{minipage}
	\end{center}
	
\end{lecon}

\subsubsection{Division.}

\begin{lecon}
	
	Pas question de fraction pour Python les divisions s'écrivent en ligne.
	
	\begin{center}
		\begin{minipage}{5cm}
			\lstset{emph={fonction}, emphstyle=\color{red},
				emph={[2]variable1,variable2}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
>>>2/3
0.6666666666666666
\end{lstlisting}
		\end{minipage}
	\end{center}
	
\end{lecon}

\begin{remarques}
	
	\begin{enumerate}
		\item Python ne donne pas d'écriture sous forme de fraction irréductible.
		
		\item L'indicateur de position dans l'écriture décimale n'est pas la virgule, comme en français, mais le point comme en anglais.
		
		\item Lorsque Python utilise la notation décimale cela signifie qu'il utilise des valeurs approchées.
		
		\begin{center}
			\begin{minipage}{3cm}
				\lstset{emph={fonction}, emphstyle=\color{red},
					emph={[2]variable1,variable2}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
>>3*2/3
2.0
\end{lstlisting}
			\end{minipage}
		\end{center}
		
	\end{enumerate}
	
\end{remarques}

\subsubsection{Puissance.}

\begin{lecon}
	
	\begin{center}
		\begin{minipage}{5cm}
			\lstset{emph={fonction}, emphstyle=\color{red},
				emph={[2]variable1,variable2}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
>>>3**2
9
\end{lstlisting}
		\end{minipage}
	\end{center}
	
\end{lecon}

\subsubsection{Affectation.}

\begin{lecon}
	
	Il est possible de donner un nom à un calcul cela s'appelle l'\emph{\color{purple}affectation}. L'affectation s'indique avec le signe égal. Pour afficher le résultat du calcul il faut utiliser la fonction \verb|print()|.
	
	\begin{center}
		\begin{minipage}{4cm}
			\lstset{emph={fonction}, emphstyle=\color{red},
				emph={[2]A,variable2}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
>>>A=3*(5-1)
>>>print(A)
12
\end{lstlisting}
		\end{minipage}
	\end{center}
	
\end{lecon}

\begin{remarques}
		
	\begin{enumerate}
		\item Affecter c'est enregistrer le calcul en lui donnant un nom.
		
		\item L'affectation n'indique pas le résultat.
		
		\item Il est alors possible d'utiliser \verb|A| dans d'autres calculs.
		
		\begin{center}
			\begin{minipage}{2cm}
				\lstset{emph={fonction}, emphstyle=\color{red},
					emph={[2]A,variable2}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
>>>2-A/3
-2.0
\end{lstlisting}
			\end{minipage}
		\end{center}
		
		\item La lettre \verb|A| dans laquelle est enregistré le résultat du calcul est appelée une \emph{\color{purple}variable}.
		
	\end{enumerate}
	
\end{remarques}

\subsubsection{Exercices.}

\begin{exercice}{}
	
	Conjecturez puis vérifiez le résultat retourné par Python avec les instructions suivantes.
	
	\begin{tabular}{m{5cm}m{5cm}}
		
		\begin{enumerate}
			\item \begin{minipage}{2cm}
				\lstset{emph={fonction}, emphstyle=\color{red},
					emph={[2]variable1,variable2}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
2-(3-1)
\end{lstlisting}
			\end{minipage}
			
			\item \begin{minipage}{2cm}
				\lstset{emph={fonction}, emphstyle=\color{red},
					emph={[2]variable1,variable2}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
4/(6-1)
\end{lstlisting}
			\end{minipage}
			
			\item \begin{minipage}{2cm}
				\lstset{emph={fonction}, emphstyle=\color{red},
					emph={[2]variable1,variable2}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
3+4**2
\end{lstlisting}
			\end{minipage}
			
		\end{enumerate}
		
		&
		
		\begin{enumerate}
			\setcounter{enumi}{3}
			\item \begin{minipage}{3cm}
				\lstset{emph={fonction}, emphstyle=\color{red},
					emph={[2]variable1,variable2}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
1/3+1/3+1/3
\end{lstlisting}
			\end{minipage}
			
			\item \begin{minipage}{3cm}
				\lstset{emph={fonction}, emphstyle=\color{red},
					emph={[2]variable1,variable2}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
(2-3)*2**3
\end{lstlisting}
			\end{minipage}
			
			\item \begin{minipage}{3cm}
				\lstset{emph={fonction}, emphstyle=\color{red},
					emph={[2]variable1,variable2}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
1.1*12
\end{lstlisting}
			\end{minipage}
			
		\end{enumerate}
		
	\end{tabular}
	
\end{exercice}

\begin{exercicecorrection}
	
	\begin{enumerate}
		\item $-2$.
		
		\item $0.8$.
		
		\item $19$.
		
		\item $1.0$.
		
		\item $-8$.
		
		\item $13.1$.
		
	\end{enumerate}
	
\end{exercicecorrection}

\begin{exercice}{}
	
	\begin{notabene}
		
		Exercice cherchez l'erreur.
		
	\end{notabene}
	
	Dites pourquoi les instructions suivantes conduiront à un message d'erreur et proposez si possible une correction.
	
	\begin{tabular}{m{5cm}m{5cm}}
		
		\begin{enumerate}
			\item \begin{minipage}{2cm}
				\lstset{emph={fonction}, emphstyle=\color{red},
					emph={[2]variable1,variable2}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
>>>3/0
\end{lstlisting}
			\end{minipage}
			
			\item \begin{minipage}{2cm}
				\lstset{emph={fonction}, emphstyle=\color{red},
					emph={[2]variable1,variable2}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
>>>-3-*2
\end{lstlisting}
			\end{minipage}
			
		\end{enumerate}
		
		&
		
		\begin{enumerate}
			
			\setcounter{enumi}{2}
			\item \begin{minipage}{2cm}
				\lstset{emph={fonction}, emphstyle=\color{red},
					emph={[2]A,variable2}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
>>>2+1=A
\end{lstlisting}
			\end{minipage}
			
			\item \begin{minipage}{2cm}
				\lstset{emph={fonction}, emphstyle=\color{red},
					emph={[2]A,variable2}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
>>>A=2+1
>>>2A
\end{lstlisting}
			\end{minipage}
			
		\end{enumerate}
		
	\end{tabular}
	
\end{exercice}

\begin{exercicecorrection}
	
	\begin{enumerate}
		\item Impossibilité de diviser par $0$.
		
		\item Deux signes opératoires côte-à côte qui n'ont pas de sens: $-*$. En les intervertissant cela devient cohérent même si en mathématiques il faudrait des parenthèses.
		
		\item Le égale de Python n'est pas symétrique, il faut écrire: $A=2+1$.
		
		\item Le signe multiplié ne peut être implicite: $2*A$.
		
	\end{enumerate}
	
\end{exercicecorrection}

\subsection{Un programme.}

\begin{notabene}
	
	Si Python permet de manipuler d'autres objets que des nombres dans cette leçon nous nous limiterons aux nombres.
	
	Nous découvrirons les possibilités de Python au fur et à mesure.
	
\end{notabene}

\begin{lecon}
	
	Nous aurons parfois besoin de faire plusieurs calculs pour arriver à nos fins. Nous dirons qu'il s'agit d'un \emph{\color{purple}algorithme}.
	
	Pour réaliser un algorithme nous devrons réunir diverses instructions ce qui en informatique s'appelle un \emph{\color{purple}programme}.
	
	Le fichier informatique qui contient un programme est appelé un \emph{\color{purple}script}.
	
	\medskip
	Dans un script Python on indique une nouvelle instruction en passant à la ligne.
	
\end{lecon}

\begin{exemples}
	
	\begin{enumerate}
		\item ~
		
		\begin{notabene}
			
			Exemples script simple puis avec tableau d'état des variables.
			
		\end{notabene}
		
		\begin{center}
			\begin{minipage}{3cm}
				\lstset{emph={fonction}, emphstyle=\color{red},
					emph={[2]A,B}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
>>>A=2
>>>B=A**2-3*A+1
>>>print(B)
\end{lstlisting}
			\end{minipage}
		\end{center}
		
		Ce programme affiche $-1$.
		
		\item ~
		
		\begin{center}
			\begin{minipage}{3cm}
				\lstset{emph={fonction}, emphstyle=\color{red},
					emph={[2]A,B}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
>>>A=2
>>>B=3+A
>>>B=B+A
>>>print(B)
\end{lstlisting}
			\end{minipage}
		\end{center}
		
		Pour comprendre le fonctionnement d'un tel programme on peut utiliser un tableau d'état des variables dans lequel chaque ligne correspond à une instruction du programme et qui indique la valeur enregistrée dans chaque variable.
		
		\begin{center}
			
			\begin{tabular}{|c|c|c|}
				\hline 
				Instructions & $A$ & $B$
				\\
				\hline
				\verb|A=2| & $2$ & 
				\\
				\hline
				\verb|B=3+A| & $2$ & $5$
				\\
				\hline
				\verb|B=B+A| & $2$ & $7$
				\\
				\hline
			\end{tabular}
			
		\end{center}
		
		Donc lorsque l'instruction \verb|print| est effectuée la valeur mémorisée en $B$ est $7$.
		
	\end{enumerate}
	
\end{exemples}

\begin{exercice}{}
	
	Donnez les valeurs des variables à la fin de chacun des programmes (présentés hors d'un script) suivants.
	
	\begin{tabular}{m{5cm}m{5cm}}
	\begin{enumerate}
		\item ~
		
		\begin{minipage}{3cm}
			\lstset{emph={fonction}, emphstyle=\color{red},
				emph={[2]U,V}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
>>>U=4
>>>V=5
>>>U=U+V
>>>V=V-2*U
\end{lstlisting}
		\end{minipage}
		
		\item ~
		
		\begin{minipage}{4cm}
			\lstset{emph={fonction}, emphstyle=\color{red},
				emph={[2]MA,dt,F}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
>>>MA=10
>>>dt=4
>>>F=2
>>>MA=MA+dt**2+F
>>>F=F-dt
>>>dt=F-dt
\end{lstlisting}
		\end{minipage}
		
	\end{enumerate}
	&
	\begin{enumerate}
		\setcounter{enumi}{2}
		\item ~
		
		\begin{minipage}{4cm}
			\lstset{emph={fonction}, emphstyle=\color{red},
				emph={[2]a,b,c,d}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
>>>a=2
>>>b=1
>>>c=a+2*b-a**2
>>>d=c/(a+b)
\end{lstlisting}
		\end{minipage}
		
		\item ~
		
		\begin{minipage}{4cm}
			\lstset{emph={fonction}, emphstyle=\color{red},
				emph={[2]a,b,c}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
>>>a=1
>>>b=2
>>>c=3
>>>a=b
>>>b=c
>>>c=a
\end{lstlisting}
		\end{minipage}
		
	\end{enumerate}
	
\end{tabular}
	
\end{exercice}

\begin{exercicecorrection}
	
	\begin{enumerate}
		\item $U=9$, $V=-13$.
		
		\item $MA=28$, $dt=-6$, $F=-2$.
		
		\item $a=2$, $b=1$, $c=0$, $d=0$.
		
		\item $a=2$, $b=3$, $c=2$.
	\end{enumerate}
	
\end{exercicecorrection}

\begin{exercice}{}
	
	\begin{notabene}
		
		mettre des programmes de calcul de brevet en Python et 
	\end{notabene}

	Donnez les valeurs des variables à la fin de chacun des programmes (présentés dans un script) suivants.
	
	\begin{tabular}{m{5cm}|m{5cm}}
		\begin{enumerate}
			\item ~
			
			\begin{minipage}{3cm}
				\lstset{emph={fonction}, emphstyle=\color{red},
					emph={[2]a,b,c,d}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
a=7
b=a+5
c=a-5
d=b*c+25
\end{lstlisting}
			\end{minipage}
			
			\item ~
			
			\begin{minipage}{4cm}
				\lstset{emph={fonction}, emphstyle=\color{red},
					emph={[2]u,v}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
u=10
v=v-7
v=v*5
v=v-2*u
\end{lstlisting}
			\end{minipage}
			
			\item ~
			
			\begin{minipage}{4cm}
				\lstset{emph={fonction}, emphstyle=\color{red},
					emph={[2]a,b}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
a=4
b=a**2
b=b+3*a
b=b-10
\end{lstlisting}
			\end{minipage}
			
			\item ~
			
			\begin{minipage}{4cm}
				\lstset{emph={fonction}, emphstyle=\color{red},
					emph={[2]u,v,w,r}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
u=2
v=u+3
w=u*5
r=v*w
\end{lstlisting}
			\end{minipage}
			
		\end{enumerate}
		&
		\begin{enumerate}
			\setcounter{enumi}{4}
			\item ~
			
			\begin{minipage}{4cm}
				\lstset{emph={fonction}, emphstyle=\color{red},
					emph={[2]s,t}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
s=15
t=s**2
t=t+s
\end{lstlisting}
			\end{minipage}
			
			\item ~
			
			\begin{minipage}{4cm}
				\lstset{emph={fonction}, emphstyle=\color{red},
					emph={[2]a,b,c,d}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
a=5
b=a+2
c=b**2
d=c-a**2
\end{lstlisting}
			\end{minipage}
			
			\item ~
			
			\begin{minipage}{4cm}
				\lstset{emph={fonction}, emphstyle=\color{red},
					emph={[2]u,v,w,r}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
u=1
v=1+u
w=3*u
r=w-3
\end{lstlisting}
			\end{minipage}
			
			\item ~
			
			\begin{minipage}{4cm}
				\lstset{emph={fonction}, emphstyle=\color{red},
					emph={[2]a,b,c,d}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
a=2
b=7+a
c=a-7
d=b*c
d=d+50
\end{lstlisting}
			\end{minipage}
			
		\end{enumerate}
		
	\end{tabular}
	
\end{exercice}

\begin{exercicecorrection}
	
	\begin{enumerate}
		\item $a=7$, $b=12$, $c=2$, $d=49$. 
		
		\item Impossible $v$ n'est pas créé dans le programme.
		
		\item $a=4$, $b=64$.
		
		\item $u=2$, $v=5$, $w=10$, $r=50$.
		
		\item $s=15$, $t=240$.
		
		\item $u=1$, $v=2$, $w=3$, $r=0$.
		
		\item $a=2$, $b=9$, $c=-5$, $d=5$.
	\end{enumerate}
	
\end{exercicecorrection}

\subsection{Les résultats renvoyés par un programme.}

\begin{notabene}
	
	1.1+2.9 pour mettre en évidence le fait que le résultat renvoyé par une machine n'est pas exacte.
	
	Les machines ne travaillent qu'avec un petit nombre de nombres décimaux.
	
\end{notabene}

\begin{lecon}
	
	Les programmes informatiques ne renvoient pas des réponses exactes mais des valeurs approchées. Le mathématicien doit donc toujours rester circonspect quand au résultat donner par une machine (ordinateur ou calculatrice). Nous devrons notamment mesurer l'erreur commise lorsque nous donnons une valeur approchée.
	
	\medskip
	Nous considérerons que les résultats informatiques sont des \emph{\color{purple}conjectures}: il ne sont pas absolument fiables et doivent être démontrés.
	
\end{lecon}

\subsection{Choisir un calcul.}

\begin{lecon}
	
	Il est possible de prévoir deux calculs possibles dans un programme et de n'effectuer l'un ou l'autre que si une certaine condition est vérifiée. On retrouve la même formulation qu'en langage courant \og si \dots, alors, \dots, sinon \dots \fg{}.
	
\end{lecon}

\begin{exemples}
	
	\begin{enumerate}
		\item On souhaite obtenir $1$ si le nombre enregistré dans la lettre \verb|A| est strictement supérieur à $2$ et sinon $-1$.
		
		\begin{center}
			\begin{minipage}{4cm}
				\lstset{emph={fonction}, emphstyle=\color{red},
					emph={[2]A,variable2}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
if A>2:
  print(1)
else:
  print(-1)
\end{lstlisting}
			\end{minipage}
		\end{center}
		
		\begin{notabene}
			
			Faire un tableau d'état des variables avec introduction du booléen et du vrai ou faux en informatique.
			
		\end{notabene}
		
		\item Voici un programme qui affiche soit \og Bravo \fg{} soit \og Nul \fg{} suivant la note enregistrée dans la variable \verb|note|:
		
		\begin{center}
			\begin{minipage}{4cm}
				\lstset{emph={fonction}, emphstyle=\color{red},
					emph={[2]note,variable2}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
if note>12:
  print("Bravo")
else:
  print("Nul")
\end{lstlisting}
			\end{minipage}
		\end{center}
		
		
		\item 
		
		\begin{notabene}
			
			Booléen avec égal ==
			
			Et pas de sinon
			
		\end{notabene}
		
		Nous voulons vérifier si un nombre \verb|a| est un antécédent de $4$ par la fonction $x \mapsto 3x-5$.
		
		\begin{center}
			\begin{minipage}{6cm}
				\lstset{emph={fonction}, emphstyle=\color{red},
					emph={[2]note,variable2}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
if 3*a-5==1:
  print("antecedent")
\end{lstlisting}
			\end{minipage}
		\end{center}
		
	\end{enumerate}
	
\end{exemples}

\begin{remarques}
	
	\begin{enumerate}
		
		\item La condition à vérifier est indiquée juste après le \verb|if| et est suivie  de \og : \fg{}.
		
		\item Le \verb|else| est suivi de \og : \fg{}.
		
		\item Les instructions conditionnelles (celles qui ne sont pas forcément effectuées) sont décalées par rapport à la marge. Ce décalage est appelé en informatique une \emph{\color{purple}indentation}.
		
		\item La condition \verb|note>12| peut être vue comme une variable qui vaut $1$ si la condition est vraie et $0$ sinon. Une telle variable est appelée un booléen et il faut l'inclure dans le tableau d'état des variables.
		
		\item Dans les booléens (la condition donc) nous utiliserons le plus souvent les opérateurs de comparaison suivants:
		\begin{center}
			\begin{tabular}{|c|c|c|c|c|c|}
				\hline
				Maths &	$>$ & $<$ & $\geqslant$ & $\leqslant$ & $=$
				\\
				\hline 
				Python & \verb|>| & \verb|<| & \verb|>=| & \verb|<=| & \verb|==|
				\\
				\hline
			\end{tabular}
		\end{center}
		
	\end{enumerate}
	
\end{remarques}

\begin{exercice}{}
	
	Voici un programme écrit en Python.
	
	\begin{center}
		\begin{minipage}{3cm}
			\lstset{emph={fonction}, emphstyle=\color{red},
				emph={[2]M,n}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
if n<200:
  M=0.11*n
else:
  M=1.1*n
\end{lstlisting}
		\end{minipage}
	\end{center}
	
	Donnez la valeur enregistrée dans \verb|M| lorsque
	
	\begin{tasks}(3)
		\task $n=10$,
		
		\task $n=-120$,
		
		\task $n=199,99$,
		
		\task $n=200,0001$.
		
		\task $n=200$.
	\end{tasks}
	
\end{exercice}

\begin{exercicecorrection}
	
	\begin{tasks}
		\task $1.1$
		
		\task $-13.2$
		
		\task $21.9989$
		
		\task $22.0000011$
		
		\task $22$
	\end{tasks}
	
\end{exercicecorrection}

\begin{exercice}{}
	
	Donnez les valeurs des variables à la fin de ce programme.
	
	\begin{center}
		\begin{minipage}{3cm}
			\lstset{emph={fonction}, emphstyle=\color{red},
				emph={[2]a,N}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
N=18
if N>15:
  a=100-N*4
else:
  a=2*(N+10)
\end{lstlisting}
		\end{minipage}
	\end{center}
	
\end{exercice}

\begin{exercice}{}
	
	Un manuel numérique est proposé au tarif de $8$ euros par élève si le lycée a moins de $300$ élèves et $7,5$ euros sinon.
	
	Complétez le programme suivant dans lequel \verb|n| est le nombre d'élèves et \verb|P| est le prix correspondant payé pour le manuel numérique.
	
	\begin{center}
		\begin{minipage}{3cm}
			\lstset{emph={fonction}, emphstyle=\color{red},
				emph={[2]N,P}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
if n<301:
  P= ......
else:
  P= ......
\end{lstlisting}
		\end{minipage}
	\end{center}
	
\end{exercice}

\begin{exercicecorrection}
	
	
	\begin{center}
		\begin{minipage}{3cm}
			\lstset{emph={fonction}, emphstyle=\color{red},
				emph={[2]N,P}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
if n<301:
  P= 8*n
else:
  P= 7.5*n
\end{lstlisting}
		\end{minipage}
	\end{center}

\end{exercicecorrection}

\begin{exercice}{}
	
	\begin{notabene}
		
		Exercice 32 page 17 du manuel d'algorithmique Indice. Programmation et volumes.
		
		À décliner avec des surfaces.
		
	\end{notabene}
	
	Une carafe est constituée d'un cylindre de révolution de hauteur $4\ \mathrm{cm}$ et de rayon $8\ \mathrm{cm}$, surmonté d'un autre cylindre de révolution de hauteur $12\ \mathrm{cm}$ et de rayon $2 \ \mathrm{cm}$.
	
	\begin{center}
		
		\begin{tikzpicture}[scale=0.25]
			\fill[cyan] (-2,12) -- (-2,4) -- (-8,4) -- (-8,0) -- (8,0) -- (8,4) -- (2,4) -- (2,12) -- cycle;
			\draw (-2,16) -- (-2,4) -- (-8,4) -- (-8,0) -- (8,0) -- (8,4) -- (2,4) -- (2,16);
			\draw [dashed] (0,0) -- (0,16);
			\draw [>=latex, <->] (-2,14) -- (0,14);
			\draw (-4,14) node {$2\ \mathrm{cm}$};
			\draw [>=latex, <->] (0,-2) -- (8,-2) node [midway,below] {$8\ \mathrm{cm}$};
			\draw [>=latex, <->] (4,4) -- (4,16) node [sloped,midway,below] {$12\ \mathrm{cm}$};
		\end{tikzpicture}
		
	\end{center}
	
	\begin{enumerate}
		\item Calculez, en $\mathrm{cm}^3$, le volume d'eau dans la carafe quand la hauteur d'eau est $x$ centimètres, où $x$ est un nombre réel compris entre $0$ et $4$.
		
		\item Montrez que le volume d'eau dans la carafe quand la hauteur d'eau dans la carafe est $x$ centimètres, où $x$ est un nombre réel compris entre $4$ et $16$, est égale à $4\pi x+240\pi$ (en $\mathrm{cm}^3$).
		
		\item Complétez le programme ci-dessous afin qu'il retourne le volume d'eau dans la carafe (en $\mathrm{cm}^3$) selon la hauteur d'eau $h$ versée.
		
		\begin{center}
			\begin{minipage}{5cm}
				\lstset{emph={fonction}, emphstyle=\color{red},
					emph={[2]N,P}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
if ......:
    print(......)
else:
    print(......)
\end{lstlisting}
			\end{minipage}
		\end{center}
		
	\end{enumerate}
	
\end{exercice}

\begin{exercicecorrection}
	
	\begin{enumerate}
		\item \objectif{Calculons le volume $V_1(x)$ d'eau dans la carafe si $x\leqslant 4$.}
		
		Si $x \leqslant 4$ alors seul le cylindre du bas est rempli. Puisque son rayon est $r_1=8\ \mathrm{cm}$ et sa hauteur $h_1=x\ \mathrm{cm}$ son volume est:
		
		\begin{align*}
			V_1(x) &= \pi \times r_1^2 \times h_1\\
			&= \pi \times 8^2 \times x\ \mathrm{cm}^3
		\end{align*}
		
		\begin{conclusion}
			
			$V_1(x)=64\pi x\ \mathrm{cm}^3$.
			
		\end{conclusion}
		
		\item \objectif{Calculons le volume $V(x)$ d'eau dans la carafe si $x> 4$.}
		
		Si $x >4$ alors le cylindre du bas est entièrement rempli et celui du haut est rempli jusqu'à une hauteur $h_2= x-4\ \mathrm{cm}$. Puisque le rayon du cylindre du haut est $r_3=2\ \mathrm{cm}$ et sa hauteur $h_2=x-4\ \mathrm{cm}$ son volume est:
		
		\begin{align*}
			V_2(x) &= \pi \times r_2^2 \times h_2\\
			&= \pi \times 2^2 \times (x-4)\ \mathrm{cm}^3\\
			&= 4\pi (x-4)\ \mathrm{cm}^3\\
			&=\left(4\pi \times x - 4\pi \times 4\right)\ \mathrm{cm}^3\\
			&= 4\pi x -16\pi\ \mathrm{cm}^3
		\end{align*}
		
		Nous en déduisons le volume total d'eau en $\mathrm{cm}^3$ dans la carafe:
		
		\begin{align*}
			V &= V_1(4)+V_2(x)\\
			&= 64\pi \times 4 + 4\pi x -16\pi\\
			&= 4\pi x + 256\pi-16\pi 
		\end{align*}
		
		\begin{conclusion}
			
			Si $x>4$, alors: $V(x)=4\pi x +240\pi$.
			
		\end{conclusion}
		
		\item ~		
		
		\begin{center}
			\begin{minipage}{8cm}
				\lstset{emph={fonction}, emphstyle=\color{red},
					emph={[2]x,P}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
if x<=4:
    print(64*3.1416*x)
else:
    print(4*3.1416*x+240*3.1416)
\end{lstlisting}
			\end{minipage}
		\end{center}
		
	\end{enumerate}
	
\end{exercicecorrection}

\subsection{Répéter des calculs.}

\begin{lecon}
	
	Un des intérêts majeur de l'informatique est de permettre la répétition d'un grand nombre de calculs numériques.
	
	Nous allons voir deux façons de procéder à de telles répétitions.
	
\end{lecon}

\subsubsection{Boucle for.}

\begin{lecon}
	
	Une \emph{\color{purple}boucle for} (ou boucle bornée) permet de recommencer une instruction un nombre de fois choisi à l'avance.
	
	La boucle for utilise une variable, le plus souvent notée $k$, qui sert de compteur de répétition.
	
\end{lecon}

\begin{exemples}
	
	\begin{enumerate}
		\item Un salaire de $\np{1200}\ \text{\euro}$ augmente de $30\ \text{\euro}$ par mois pendant un an. Voici un algorithme calculant le salaire \verb|S| au bout d'un an.
		
		\begin{center}
			\begin{minipage}{6cm}
				\lstset{emph={fonction}, emphstyle=\color{red},
					emph={[2]S,k}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
S=1200
for k in range(1,12+1):
  S=S+30
print(S)
\end{lstlisting}
			\end{minipage}
		\end{center}
		
		Pour vérifier que cet algorithme fonctionne nous allons faire le tableau d'état des variables.
		
		\begin{notabene}
			
			Faire un tableau d'état des variables.
			
			Expliquer le rôle de compteur de $k$. 
			
			Expliquer le rôle d'accumulateur de $S$.
			
		\end{notabene}
	
		\item Nous souhaitons maintenant calculer la somme des $6$ premiers entiers naturels.
		
		\begin{center}
			\begin{minipage}{6cm}
				\lstset{emph={fonction}, emphstyle=\color{red},
					emph={[2]S,k}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
S=0
for k in range(1,5+1):
  S=S+k
print(S)
\end{lstlisting}
			\end{minipage}
		\end{center}
		
		\begin{notabene}
			
			
			Faire un tableau d'état des variables.
			
			On remarque que la variable $k$ peut intervenir dans le calcul.
			
		\end{notabene}
		
	\end{enumerate}
	
\end{exemples}

\begin{exercice}{}
	
	\begin{notabene}
		
		Exercice 40 page 21 du manuel d'algorithmique Indice. Programmation et volumes.
		
	\end{notabene}
	
	En prévision d'une course de vélo, Fanny suit le programme d'entraînement suivant sur douze samedi: elle parcourt $25$ kilomètres le premier samedi, puis augmente chaque semaine de $11$ kilomètres la distance parcourue.
	
	\begin{enumerate}
		
		\item Déterminez la distance $d$ parcourue le deuxième samedi et la distance totale $t$ parcourue au bout de deux samedis d'entraînement.
		
		\item Complétez l'algorithme ci-dessous afin que la variable $t$ contiennent en fin d'algorithme la distance totale parcourue au bout des douze samedis d'entraînement.
		
		\begin{center}
			\begin{minipage}{6cm}
				\lstset{emph={fonction}, emphstyle=\color{red},
					emph={[2]d,t,k}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
d=.......
t=.......
for k in range(2,12+1):
    d=......
    t=......
print(t)
\end{lstlisting}
			\end{minipage}
		\end{center}
				
	\end{enumerate}
	
\end{exercice}

\begin{exercicecorrection}
	
	\begin{enumerate}
		\item La distance parcourue le deuxième samedi est $d=25+11=36$.
		
		La distance totale parcourue le deuxième samedi est: $t=25+(25+11)=61$.
		
		\item L'algorithme complété:		
		
		\begin{center}
			\begin{minipage}{6cm}
				\lstset{emph={fonction}, emphstyle=\color{red},
					emph={[2]d,t,k}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
d=25
t=25
for k in range(2,12+1):
    d=d+11
    t=t+d
print(t)
\end{lstlisting}
			\end{minipage}
		\end{center}
		
	\end{enumerate}
	
\end{exercicecorrection}

\begin{exercice}{}
	
	\begin{notabene}
		
		Exercice 43 page 23 du manuel d'algorithmique Indice. Programmation et volumes.
		
	\end{notabene}
	
	On empile des sphères formant ainsi une pyramide base carrée.
	
	\begin{enumerate}
		\item Déterminez le nombre de sphères nécessaires pour constituer une pyramide de deux niveaux.
		
		\item Déterminez le nombre de sphères nécessaires pour constituer une pyramide de cinq niveaux.
		
		\item Sachant qu'il faut $140$ sphères pour construire une pyramide de sept niveaux, déterminez le nombre de sphères nécessaire pour construire une pyramide de huit niveaux.
		
		\item Complétez le programme ci-dessous pour qu'il retourne le nombre $b$ de sphères nécessaire pour constituer une pyramide comportant $n$ niveaux.
		
		\begin{center}
			\begin{minipage}{6cm}
				\lstset{emph={fonction}, emphstyle=\color{red},
					emph={[2]n,i}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
n=......
for i in range(1,n+1):
    .......
......
\end{lstlisting}
			\end{minipage}
		\end{center}
		
	\end{enumerate}
	
\end{exercice}

\subsubsection{Boucle While.}

\begin{lecon}
	
	Une \emph{\color{purple}boucle while} (ou boucle non bornée) permet de recommencer une instruction autant de fois que nécessaire pour qu'une condition (choisie à l'avance) devienne fausse. Exemple de l'élève: tant que ses notes sont faibles l'élève doit augmenter son travail.
	
	Une boucle while n'a pas de compteur de répétition; nous serons parfois amenés à en créer un. Si la condition est mal choisie la boucle est infinie (\og infinite loop \fg{}); on parle alors de bug.
	
	La condition, qui décide si la répétition doit se poursuivre ou pas, est une phrase (mathématique) qui est soit vraie soit fausse. Cette condition est appelée un \emph{\color{purple}booléen}. Si la phrase (le booléen) est vraie on lui associe la valeur $1$ sinon on lui associe la valeur $0$.
	
\end{lecon}

\begin{exemples}
	
	\begin{enumerate}
		\item On considère un carré d'aire $1\ \mathrm{cm}^2$ dont la surface est doublée autant de fois que nécessaire pour qu'elle dépasse $30\ \mathrm{cm}^2$.
		
		\begin{notabene}
			
			Faire une illustration des carrés au tableau et question subsidiaire: par combien est multiplié le côté du carré?
			
		\end{notabene}
		
		\begin{center}
			\begin{minipage}{4cm}
				\lstset{emph={fonction}, emphstyle=\color{red},
					emph={[2]S,k}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
S=1
while S<30:
  S=S*2
print(S)
\end{lstlisting}
			\end{minipage}
		\end{center}
		
		\begin{notabene}
			
			Tableau d'état des variables.
			
			Faire remarquer que si nous avons bien un accumulateur nous n'avons pas de compteur et passer au suivant.
						
		\end{notabene}
		
		\item Si dans l'exemple précédent nous souhaitons maintenant savoir combien de fois le carré a doublé pour dépasser les $30\ \mathrm{cm}^2$ nous pouvons ajouter un compteur dans la boucle.
		
		\begin{center}
			\begin{minipage}{4cm}
				\lstset{emph={fonction}, emphstyle=\color{red},
					emph={[2]S,k}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
S=1
k=0
while S<30:
  S=S*2
  k=k+1
print(S)
\end{lstlisting}
			\end{minipage}
		\end{center}
		
		\begin{notabene}
			
			
			Faire un tableau d'état des variables.
			
		\end{notabene}
		
	\end{enumerate}
	
\end{exemples}

\begin{exercice}{}
	
	\begin{notabene}
		
		Exercice 45 page 25 du manuel d'algorithmique Indice.
		
	\end{notabene}
	
	Dans l'algorithme ci-dessous, la variable $m$ contient un nombre entier.
	
	Selon la question posée, elle prendra différentes valeurs en début d'algorithme.
	
	\begin{center}
		\begin{minipage}{3cm}
			\lstset{emph={fonction}, emphstyle=\color{red},
				emph={[2]m}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
m=.......
while m>9:
    m=m-9
\end{lstlisting}
		\end{minipage}
	\end{center}
	
	\begin{enumerate}
		\item 
		
		\begin{enumerate}
			\item Si en début d'algorithme la variable $m$ reçoit $5$, quelle valeur contient-elle en fin d'algorithme?
			
			\item Si en début d'algorithme, la variable $m$ reçoit 1$15$, quelle valeur contient-elle en d'algorithme?
			
		\end{enumerate}
		
		\item Dans cette question, la valeur que reçoit la variable $m$ en début d'algorithme est $30$. Complétez le tableau suivant et déduisez-en la valeur $m$ après l'exécution de cet algorithme.
		
		\begin{center}
			\begin{tabular}{|c|c|c|}
				\hline
				Étapes & $m$ & Condition vérifiée?
				\\
				\hline
				Avant la boucle & $30$ & oui
				\\
				\hline
				1er passage dans la boucle & \dotfill & \dotfill
				\\
				\hline
				2e passage dans la boucle & \dotfill & \dotfill
				\\
				\hline
				\dotfill & \dotfill & \dotfill
				\\
				\hline
			\end{tabular}
		\end{center}
		
		En fin d'algorithme la valeur de $m$ est: \dotfill 
		
		\item La variable $m$ peut-elle contenir $21$ en fin d'algorithme?
		
		\item Quelles valeurs peut recevoir la variable $m$ en début d'algorithme pour que la boucle while soit parcourue?
		
	\end{enumerate}
	
\end{exercice}

\begin{exercice}{}
	
	\begin{notabene}
		
		Exercice 47 page 26 du manuel 2ieme bordas indice2ide cahier d'algorithmique.
		
	\end{notabene}
	
	Une ampoule destinée à recevoir du sérum est constituée d'un corps cylindrique de hauteur $100\ \mathrm{mm}$ et de deux demi-sphères de rayon $r$ millimètres. On veut déterminer à partir de quelle valeur entière du rayon, exprimée en millimètres, le volume de l'ampoule dépassera $20$ centilitres.
	
	\begin{enumerate}
		\item Montrez que le volume de l'ampoule, exprimé en $\mathrm{mm}^3$, est égale à $100\pi r^2+\frac{4}{3}\pi r^3$.
		
		\begin{center}
			\begin{tikzpicture}[scale=0.5]
			\draw[samples=100,domain=90:270] plot({-3+cos(\x)},{sin(\x)});
			\draw[samples=100,domain=-90:90] plot({3+cos(\x)},{sin(\x)});
			\draw (-3,1)--(3,1);
			\draw (-3,-1)--(3,-1);
			\draw[dashed,thin] (-3,1)--(-3,-1);
			\draw[dashed,thin] (3,1)--(3,-1); 
			\end{tikzpicture}
		\end{center}
		
		\item Complétez l'algorithme ci-dessous afin qu'en fin d'algorithme, la variable $r$ ait la valeur cherchée.
		
		\begin{center}
			
				\begin{minipage}{3cm}
					\lstset{emph={fonction}, emphstyle=\color{red},
						emph={[2]r,v}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
r=0
v=0
while ...:
  r= ...
  v= ...
print( ... )
\end{lstlisting}
				\end{minipage}
			
		\end{center}
		
		\item Programmez le précédent algorithme et répondez à la question.
		
	\end{enumerate}
	
\end{exercice}

\begin{exercicecorrection}
	
	\begin{enumerate}
		\item 
		
		\item $20\ \mathrm{\ell} = \np{20000}\ \mathrm{mm}^3$.
		
		\begin{center}
			
			\begin{minipage}{10cm}
				\lstset{emph={fonction}, emphstyle=\color{red},
					emph={[2]r,v}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
r=0
v=0
while v<20000:
    r=r+1
    v=100*3.1416*r**2+4/3*3.1416*r**3
print(r)
\end{lstlisting}
			\end{minipage}
			
		\end{center}
		
	\end{enumerate}
	
\end{exercicecorrection}

\begin{exercice}{}
	
	\begin{notabene}
		
		Exercice 48 page 25 du manuel d'algorithmique Indice. Programmation et volumes.
		
		À décliner avec des surfaces.
		
	\end{notabene}
	
\end{exercice}

\begin{exercice}{}
	
	\begin{notabene}
		
		Exercice 49 page 27 du manuel 2ieme bordas indice2ide cahier d'algorithmique.
		
	\end{notabene}
	
	Une entreprise de forage creuse des puits dans le désert afin d'atteindre le nappe d'eau phréatique. Cette entreprise facture le premier mètre creusé $100\ \text{\euro}$, le seconde mètre $140\ \text{\euro}$ et ainsi de suite en augmentant le prix de chaque nouveau mètre creusé de $40\ \text{\euro}$.
	
	\begin{enumerate}
		\item Calculez le prix $M$ du troisième mètre creusé, puis le prix total $s$ d'un puits de trois mètres de profondeur.
		
		\item Recopiez puis complétez le programme ci-dessous,dans lequel variable $p$ désigne la profondeur du puits (en mètres), afin qu'il retourne le prix en euros de ce puits. Utilisez ce programme pour déterminer le prix d'un puits de $8$ mètres de profondeur, puis celle d'un puits de $12$ mètres de profondeur.
		
		\begin{center}
			
			\begin{minipage}{5cm}
				\lstset{emph={fonction}, emphstyle=\color{red},
					emph={[2]max,M,s,n,p}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
p=......
M=100
s=100
n=1
while n<p:
    M=M+40
    s=.....
    n=.....
print(...)
\end{lstlisting}
			\end{minipage}
			
		\end{center}
		
		\item Une organisation humanitaire dispose d'un budget de $\np{4000}\ \text{\euro}$.
		
		\begin{enumerate}
			\item En utilisant le programme de la question 2, déterminez la profondeur maximale d'un puits que peut financer l'organisation.
			
			\item Recopiez et complétez la fonction ci-dessous afin su'elle renvoie cette profondeur maximale en prenant pour argument la somme maximale disponible.
			
			\begin{center}
				
				\begin{minipage}{5cm}
					\lstset{emph={fonction}, emphstyle=\color{red},
						emph={[2]max,M,s,n}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
max=.....
M=...
s=...
n=0
while ...:
    ......
    ......
print(n)
\end{lstlisting}
				\end{minipage}
				
			\end{center}
				
		\end{enumerate}
		
	\end{enumerate}
	
\end{exercice}

\subsection{Exercices.}

\begin{exercice}{}
	
	\begin{enumerate}
		\item Donnez les valeurs décimales de $\left( \frac{1}{2} \right)^1$, $\left( \frac{1}{2} \right)^2$ et $\left( \frac{1}{2} \right)^3$.
		
		\item On considère un nombre $a$ positif. Recopiez et complétez le programme suivant afin que $n$ contienne en fin de programme la plus petite valeur entière telle que $\left( \frac{1}{2} \right)^n$ soit strictement inférieur à $a$.
		
		\begin{center}
			\begin{minipage}{3cm}
				\lstset{emph={fonction}, emphstyle=\color{red},
					emph={[2]n,variable2}, emphstyle={[2]\color{orange}}}
\begin{lstlisting}{style=pythonstyle}
n=0
while .... :
    n= ....
\end{lstlisting}
			\end{minipage}
		\end{center}
		
	\end{enumerate}
	
\end{exercice}

\begin{exercice}{}
	
	On plie une feuille de $0,1$ millimètre d'épaisseur plusieurs fois sur elle-même.
	
	Combien de pliages seront nécessaires pour atteindre la Lune?
	
\end{exercice}

\end{document}

\section{Modèles.}

\subsection{Graphique}

\begin{center}
\begin{tikzpicture}[xscale=1,yscale=1]
\def\xY{-0.5};
\def\yY{-0.5};
\def\xZ{8.5};
\def\yZ{7};
\coordinate (Y) at (\xY,\yY);
\coordinate (Z) at (\xZ,\yZ);
\draw[xstep=0.1cm, ystep=0.1cm, line width=0.01cm,gray!50!white] (Y) grid (Z);
\draw[xstep=1cm, ystep=1cm, line width=0.02cm,black!70!white] (Y) grid (Z);
\draw (0,0)node[below left,fill=white]{\small $0$};
\foreach \x in {1, 2}	\draw[thick](\x,0.1cm)--(\x,-0.1cm) node[below,fill=white]{\footnotesize  \pgfmathparse{\x }\pgfmathprintnumber{\pgfmathresult}};
\foreach \y in {1,2}	\draw[thick](0.1cm,\y)--(-0.1cm,\y) node[left,fill=white]{\footnotesize  \pgfmathparse{\y }\pgfmathprintnumber{\pgfmathresult}};
\draw[ ->,very thick] (\xY, 0) -- (\xZ, 0) node[right]{$x$};
\draw[ ->,very thick] (0, \yY) -- (0, \yZ) node[above]{$y$};
\draw[blue, thick][samples=100,domain=0:7] plot(\x,{(\x +1)^2/exp(\x )});
\draw[blue] (3,2) node[fill=white] {$\mathcal{C}_B$};
\fill[color=gray , opacity=0.25] (-0.5, {(-(2/9)*((-0.5)*2)*(2*(-0.5))+(4/3)*(2*(-0.5))+4)/2})
-- plot [domain=-0.5:2] (\x,{(-(2/9)*(\x*2)*(2*\x)+(4/3)*(2*\x)+4)/2})
-- (2, {(-(2/9)*(2*2)*(2*2)+(4/3)*(2*2)+4)/2})
-- (2,0) 
--(-0.5,0)
-- cycle;
\draw[blue, thick] plot[smooth] coordinates {(-3,-1)(-2.5,-0.65)(-2,0)(-1.5,1)(-1,1.5)(-0.5,1.8)(0,2)(0.5,1.89)(1,1.6)(1.5,1.35)(2,1)(2.5,0.55)(3,0)(3.5,-0.9)(4,-1.5)(4.5,-1.82)(5,-2)};
\end{tikzpicture}
\end{center}

Pour évaluer la fonction f en a avec tikz: \pgfmathparse{f(a)}\pgfmathresult

Pour affecter la valeur a à la variable \x: \def\x{a}

\subsection{Dessin.}

\begin{tikzpicture}
\coordinate (A) at (0,0);
\coordinate (B) at (5,-1);
\coordinate (F) at (6,0);
\coordinate (C) at (7,1);
\coordinate (D) at (2,2);
\coordinate (O) at (3.5,0.5);
\coordinate (S) at (3.5,6);
\coordinate (J) at (3.5,3.5);
\coordinate (K) at (3,4.666);
\draw (A) node {$\bullet$};
\draw (B)node {$\bullet$};
\draw (F)node {$\bullet$};
\draw (C)node {$\bullet$};
\draw (D)node {$\bullet$};
\draw (O)node {$\bullet$};
\draw (S)node {$\bullet$};
\draw (J)node {$\bullet$};
\draw (K)node {$\bullet$};
\draw (A)node[below]{$A$};
\draw (B)node[below right]{$B$};
\draw (F)node[right]{$F$};
\draw (C)node[right]{$C$};
\draw (D)node[above right]{$D$};
\draw (O)node[above right]{$O$};
\draw (S)node[above]{$S$};
\draw (J)node[above right]{$J$};
\draw (K)node[below right]{$K$};
\draw[blue, thick](A)--(B)--(C);
\draw[blue, thick,dashed](A)--(D)--(C);
\draw[blue, thick](A)--(S);
\draw[blue, thick](B)--(S);
\draw[blue, thick](C)--(S);
\draw[blue, thick,dashed](D)--(S);
\draw[blue, thick,dashed](O)--(S);
\draw[blue, thick](F)--(S);
\draw[blue, thick,dashed](A)--(C);
\draw[blue, thick,dashed](D)--(B);
\draw[blue, thick,dashed](B)--(J)--(C);
\fill[color=gray , opacity=0.05] (A)--(B)--(C)--(D)--cycle;	
\fill[color=gray , opacity=0.1] (B)--(C)--(S)--cycle;
\fill[color=gray , opacity=0.15] (A)--(D)--(C)--(S)--cycle;
\fill[color=gray , opacity=0.20] (B)--(C)--(J)--cycle;			
\end{tikzpicture}

\subsection{Arbre nouveau 2 niveau.}

\begin{center}
\begin{tikzpicture}[xscale=1,yscale=1]
%Écarts entre entre racine et premier niveau
\def\xA{2};
%Nombre de nœuds du premiers niveau
\def\noA{2};
%Nombre de nœuds du deuxième niveau
\def\noB{6};
%Nombre de nœuds par embranchement du deuxième niveau
\def\noBe{3};
%Écarts entre nœuds du deuxième niveau
\def\xB{2+\xA};
\def\yB{1};
%Racine
\coordinate (O) at ({0},{-\yB/2});
%Pour ne pas écrire les mots above et below
\def\posA{above};
\def\posB{below};
%Position des nœuds du premier niveau
%Dessin des nœuds branches du premier niveau 
\foreach \nA/\A/\numero/\contenu/\ponderation/\position in {
	nA1/A1/1/$2^0$/$\np{1}$/\posA,
	nA2/A2/2/$2^1$/$\np{2}$/\posB
}{
	\coordinate (\A) at ({\xA},{\noB*\yB-(\noBe+1)/2*\yB-\noB*\yB/2-(\numero-1)*\yB*\noBe});
	\draw node (\nA) at (\A) {\contenu};
	\draw (O)--(\nA) node[midway, sloped, \position] {\ponderation};
};
%Position des nœuds, dessin des nœuds et des branches du deuxième niveau
\foreach \nA/\nB/\B/\numero/\contenu/\ponderation/\position in {
	nA1/nB1/B1/1/$3^0$/$\np{1}$/\posA,
	nA1/nB2/B2/2/$3^1$/$\np{2}$/\posB,
	nA1/nB3/B3/3/$3^2$/$\np{1}$/\posA,
	nA2/nB4/B4/4/$3^0$/$\np{2}$/\posB,
	nA2/nB5/B5/5/$3^1$/$\np{1}$/\posA,
	nA2/nB6/B6/6/$3^2$/$\np{2}$/\posB
}{
	\coordinate (\B) at ({\xB},{(\noB-\numero)*\yB-\noB*\yB/2});
	\draw node (\nB) at (\B) {\contenu};
	\draw (\nA)--(\nB) node[midway, sloped, \position] {\ponderation};
};
\end{tikzpicture}
\end{center}

\subsection{Arbre nouveau 3 niveaux.}

\begin{center}
\begin{tikzpicture}[xscale=1,yscale=1]
%Écarts entre entre racine et premier niveau
\def\xA{2};
%Nombre de nœuds du premiers niveau
\def\noA{3};
%Nombre de nœuds du deuxième niveau
\def\noB{6};
%Nombre de nœuds par embranchement du deuxième niveau
\def\noBe{2};
%Écarts entre nœuds du deuxième niveau
\def\xB{2+\xA};
\def\yB{1};
%Nombre de nœuds du troisième niveau
\def\noC{12};
%Nombre de nœuds par embranchement du troisième niveau
\def\noCe{2};
%Écarts entre nœuds du troisième niveau
\def\xC{2+\xB};
\def\yC{1};
%Racine
\coordinate (O) at ({0},{-\yB/2});
%Pour ne pas écrire les mots above et below
\def\posA{above};
\def\posB{below};
%Position des nœuds du premier niveau
%Dessin des nœuds branches du premier niveau 
\foreach \nA/\A/\numero/\contenu/\ponderation/\position in {
	nA1/A1/1/$2^0$/$\np{1}$/\posA,
	nA2/A2/2/$2^1$/$\np{1}$/\posA,
	nA3/A3/3/$2^2$/$\np{1}$/\posB
}{
	\coordinate (\A) at ({\xA},{\noC*\yC-(\noCe*\noBe+1)/2*\yC-\noC*\yC/2-(\numero-1)*\yC*\noBe*\noCe});
	\draw node (\nA) at (\A) {\contenu};
	\draw (O)--(\nA) node[midway, sloped, \position] {\ponderation};
};
%Position des nœuds, dessin des nœuds et des branches du deuxième niveau
\foreach \nA/\nB/\B/\numero/\contenu/\ponderation/\position in {
	nA1/nB1/B1/1/$3^0$/$\np{1}$/\posA,
	nA1/nB2/B2/2/$3^1$/$\np{1}$/\posB,
	nA2/nB3/B3/3/$3^0$/$\np{1}$/\posA,
	nA2/nB4/B4/4/$3^1$/$\np{1}$/\posB,
	nA3/nB5/B5/5/$3^0$/$\np{1}$/\posA,
	nA3/nB6/B6/6/$3^1$/$\np{1}$/\posB
}{
	\coordinate (\B) at ({\xB},{\noC*\yC-(\noCe+1)/2*\yC-\noC*\yC/2-(\numero-1)*\yC*\noCe});
	\draw node (\nB) at (\B) {\contenu};
	\draw (\nA)--(\nB) node[midway, sloped, \position] {\ponderation};
};

%Position des nœuds, dessin des nœuds et des branches du troisième niveau
\foreach \nB/\nC/\C/\numero/\contenu/\ponderation/\position in {
	nB1/nC1/C1/1/$5^0$/$\np{1}$/\posA,
	nB1/nC2/C2/2/$5^0$/$\np{1}$/\posA,
	nB2/nC3/C3/3/$5^1$/$\np{1}$/\posA,
	nB2/nC4/C4/4/$5^1$/$\np{1}$/\posA,
	nB3/nC5/C5/5/$5^0$/$\np{1}$/\posA,
	nB3/nC6/C6/6/$5^0$/$\np{1}$/\posA,
	nB4/nC7/C7/7/$5^1$/$\np{1}$/\posA,
	nB4/nC8/C8/8/$5^1$/$\np{1}$/\posA,
	nB5/nC9/C9/9/$5^0$/$\np{1}$/\posA,
	nB5/nC10/C10/10/$5^0$/$\np{1}$/\posA,
	nB6/nC11/C11/11/$5^1$/$\np{1}$/\posA,
	nB6/nC12/C12/12/$5^1$/$\np{1}$/\posA
}{
	\coordinate (\C) at ({\xC},{(\noC-\numero)*\yC-\noC*\yC/2});
	\draw node (\nC) at (\C) {\contenu};
	\draw (\nB)--(\nC) node[midway, sloped, \position] {\ponderation};
};
\end{tikzpicture}
\end{center}

\subsection{Arbre.}

\begin{center}
\begin{tikzpicture}[xscale=1,yscale=1]
\coordinate (A1) at (4,3);
\coordinate (A2) at (4,1);
\coordinate (A3) at (4,-1);
\coordinate (A4) at (4,-3);
\coordinate (B1) at (2,2);
\coordinate (B2) at (2,-2);
\coordinate (C1) at (0,0);
\draw node (A11) at (A1) {$1$};	
\draw node (A12) at (A2) {$2$};
\draw node (A13) at (A3) {$3$};
\draw node (A14) at (A4) {$4$};
\draw node (B11) at (B1) {$1$};
\draw node (B12) at (B2) {$2$};
\draw (B11)--(A11)node[midway,sloped,above]{\color{blue}$0,5$};
\draw (B11)--(A12)node[midway,sloped,below]{\color{blue}$0,5$};
\draw (B12)--(A13)node[midway,sloped,above]{\color{blue}$0,25$};
\draw (B12)--(A14)node[midway,sloped,below]{\color{blue}$0,25$};
\draw (C1)--(B11)node[midway,sloped,above]{\color{blue}$\frac{3}{8}$};
\draw (C1)--(B12)node[midway,sloped,below]{\color{blue}$\frac{5}{8}$};
\end{tikzpicture}
\end{center}

\subsection{Arbre bis.}

\begin{center}

\begin{tikzpicture}[scale=0.5]
%Création des nœuds
\foreach \A/\ord/\n in {A1/7/1, A2/5/7, A3/3/1, A4/1/7, A5/-1/1, A6/-3/7, A7/-5/1, A8/-7/7} \node (\A) at (8,\ord){\n};
\foreach \B/\ord/\n in {B1/6/1, B2/2/3, B3/-2/1, B4/-6/3} \node (\B) at (4,\ord) {\n};
\foreach \C/\ord/\n in {C1/4/1, C2/-4/2} \node (\C) at (0,\ord) {\n};
\foreach \D/\ord/\n in {D1/7/1, D2/5/7, D3/3/3, D4/1/21, D5/-1/2, D6/-3/14, D7/-5/6, D8/-7/42} \node (\D) at (12,\ord){\n};
%Branches entre les nœuds
\foreach \B/\A in {B1/A1, B1/A2, B2/A3, B2/A4, B3/A5, B3/A6, B4/A7, B4/A8} \draw (\B) -- (\A);
\foreach \C/\B in {C1/B1, C1/B2, C2/B3, C2/B4} \draw (\C) -- (\B);
\foreach \C in {C1, C2} \draw (-4,0) -- (\C);
\end{tikzpicture}

\end{center}

\subsection{Tab}

\begin{center}
\begin{tikzpicture}
\tkzTabInit[lgt=1.6 , espcl=1.6, deltacl=0.5]{$x$ /0.8, $f'$ /0.8, $f$ /1.6}
{$-\infty$ ,$1$, $+\infty$}
\tkzTabLine{,+,d,+,}%
\tkzTabVar {+/ $\mathrm{e}$, -D+ / $0$ / $+\infty$, - / $\mathrm{e}$ / }
\end{tikzpicture}
\end{center}

\subsection{Tab2.}

\begin{tikzpicture}
\tkzTabInit[lgt=1 , espcl=1.6]{$x$ /0.8, $C_M'$ /0.8, $C_M$ /2.4}
{$-\infty$ ,$-10$, $0$, $5$, $10$, $40$,  $+\infty$}
\tkzTabLine{,+,z,-,d,-,t,-,z,+,t,+,}%
\tkzTabVar {-/$-\infty$, +/$30$,-D+/$-\infty$ /$+\infty$,R/ /,-/$70$, R/ /, +/$+\infty$ }
\tkzTabVal[draw]{3}{5}{0.5}{}{$75$}
\tkzTabVal[draw]{5}{7}{0.5}{}{$\np{92,5}$}
\draw[fill=Red!80,opacity=0.2](M30) rectangle (M63);
\end{tikzpicture}

\subsection{Python}

\begin{center}
\begin{minipage}{5cm}
	\lstset{emph={fonction}, emphstyle=\color{red},
		emph={[2]variable1,variable2}, emphstyle={[2]\color{orange}}}
	\begin{lstlisting}{style=pythonstyle}
	def fonction(variable1):
	variable2=3
	\end{lstlisting}
\end{minipage}
\end{center}

\subsection{Bash}

%\begin{minipage}{5cm}
\begin{lstlisting}{style=bashstyle}
sudo apt update
sudo apt upgrade
\end{lstlisting}
\hfill {\tiny \href{http://unemainlavelautre.net/fichier.txt}{Pour copier-coller: clic droit, ouvrir dans une nouvelle fenêtre.}}
%\end{minipage}

\subsection{Pseudocode}

\begin{tabular}{|c|}
\hline
\begin{minipage}{8cm}
	\LinesNumbered
	\SetKw{entrer}{entrer}
	\SetKw{prend}{prend la valeur}
	\SetKw{afficher}{afficher}
	\begin{algorithm}[H]
		\SetAlgoLined
		\DontPrintSemicolon
		\entrer pi
		0\;
		\Tq{1}{
			2\;
			\eSi{3}{
				4\;
				5\;
			}{
				6\;
			}
		}
		
		\Pour{7}{
			\Si{8}{
				9\;
			}
		}
	\end{algorithm}
\end{minipage}
\\
\hline
\end{tabular}

\subsection{Tabularx}

Pour center dans une seule cellule \hfill avant et après le texte suffisent

\noindent
\begin{tabularx}{\linewidth}{|m{2.5cm}|*{6}{>{\centering\arraybackslash}X|}}
\hline
Nombre affiché sur la face & 1 & 2 & 3 & 4 & 5 & 6
\\
\hline
\end{tabularx}

\subsection{Tableau sans une case et diagonale.}


\begin{tabular}{|*{7}{c|}}
\cline{2-7} \multicolumn{1}{c|}{}& Moyenne & Minimum & Quartile 1 & Médiane &	Quartile 3 & Maximum
\\
\hline
Série $T$ &	\backslashbox{$v_n$}{$u_n$}&	67&	70&	72&	74& 78
\\
\hline
Série $P$ &&&&&& 
\\
\hline
\end{tabular}

\subsection{Tableau ligne colonne.}

\begin{tabular}{|*{11}{c|}}
\hline
\multirow{2}*{Fournisseur} & \multicolumn{8}{c|}{Critères} & \multirow{2}*{Note globale} & \multirow{2}*{Classement}
\\
\cline{2-9}
& Sécurité &&&&&&&&&
\\
\hline
&  &&&&&&&&&
\\
\hline
\end{tabular}\\

\subsection{Retrait dans la marge.}

\hspace*{-1cm}

\subsection{Note dans la marge}

\marginpar{\color{red}$\heartsuit$}

\subsection{Notation modulo.}

$3 \equiv 1 \mod{2}$

\subsection{Diapositive.}

%Pour afficher la page en paysage il faut modifier
%\usepackage[a5paper,landscape]{article} %ACTIVER POUR A5
%\geometry{hscale=0.9,vscale=0.9,centering} %ACTIVER POUR A5

\pagecolor{cyan!25}

\begin{center}

\begin{tikzpicture}
\coordinate (AA) at (-9,6.5);
\node (AA) at (AA) {};
\coordinate (BB) at (9,6.5);
\node (BB) at (BB) {};
\coordinate (CC) at (9,-6.5);
\node (CC) at (CC) {};
\coordinate (DD) at (-9,-6.5);
\node (DD) at (DD) {};
\draw (AA)--(BB)--(CC)--(DD)--(AA);
\end{tikzpicture}

\end{center}

\subsection{Binomiale.}

\begin{enumerate}[*]
\item Épreuve de Bernoulli.

\begin{enumerate}[$\bullet$]
	\item Expérience: lancer un dé.
	\item Succès: \og Obtenir $6$ \fg{}.
	\item Probabilité de succès: $p=\frac{1}{6}$.
\end{enumerate}

\item Schéma de Bernoulli.

L'épreuve de Bernoulli précédemment décrite est répétée à l'identique et de façon indépendante $n=3$ fois.

\item Loi binomiale.

$X$ compte le nombre de $6$ parmi les $3$ lancés, donc compte le nombre de succès donc: $X \hookrightarrow \mathscr{B}\left( 3, \frac{1}{6} \right)$.

\end{enumerate}