|
@@ -0,0 +1,113 @@
|
|
|
|
+---
|
|
|
|
+header-includes:
|
|
|
|
+
|
|
|
|
+title:
|
|
|
|
+ \textbf{Micro cours Python}
|
|
|
|
+subtitle:
|
|
|
|
+author: Thierry Dumont
|
|
|
|
+institute:
|
|
|
|
+date: Aldil /06/02/25/
|
|
|
|
+section-titles: false
|
|
|
|
+bibliography: a_bib_file.bib
|
|
|
|
+filter: pandoc-citeproc
|
|
|
|
+lang: fr_FR
|
|
|
|
+beamer: true
|
|
|
|
+theme: metropolis
|
|
|
|
+
|
|
|
|
+innertheme:
|
|
|
|
+outertheme:
|
|
|
|
+colortheme:
|
|
|
|
+
|
|
|
|
+urlcolor: red
|
|
|
|
+aspectratio: 169
|
|
|
|
+---
|
|
|
|
+
|
|
|
|
+## Tous les langages de programmation (ou presque) ont les mêmes capacités
|
|
|
|
+
|
|
|
|
+. . .
|
|
|
|
+
|
|
|
|
+Vieille question: que peut-on _calculer ?_
|
|
|
|
+
|
|
|
|
+* Leibnitz (fin XVII° siècle).
|
|
|
|
+
|
|
|
|
+. . .
|
|
|
|
+
|
|
|
|
+* Turing (1936) : _on ne peut pas tout calculer._
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+## Machines à registres
|
|
|
|
+
|
|
|
|
+* Des registres $R_i$
|
|
|
|
+ en nombre fini qui peuvent contenir des nombres
|
|
|
|
+ entiers _quelconques_.
|
|
|
|
+
|
|
|
|
+ . . .
|
|
|
|
+
|
|
|
|
+* On peut incrémenter chaque registre: $R_i \leftarrow R_i +1$ et
|
|
|
|
+$R_i \leftarrow R_i -1$.
|
|
|
|
+
|
|
|
|
+* Faire $R_i =x$ et $R_i = R_j$.
|
|
|
|
+
|
|
|
|
+. . .
|
|
|
|
+
|
|
|
|
+###### Test :
|
|
|
|
+
|
|
|
|
+* _if_ $R_i$ = 0 _then_ S _else_ S'.
|
|
|
|
+
|
|
|
|
+. . .
|
|
|
|
+
|
|
|
|
+###### Boucles :
|
|
|
|
+
|
|
|
|
+* _for_ i= 1 _to_ $R_i$ _do_ S.
|
|
|
|
+
|
|
|
|
+. . .
|
|
|
|
+
|
|
|
|
+* _while_ $R_i \neq 0$ _do_ S.
|
|
|
|
+
|
|
|
|
+##
|
|
|
|
+
|
|
|
|
+Les machines à registres sont équivalentes à des machines de Turing.
|
|
|
|
+
|
|
|
|
+Donc, ce qui est calculable est ce qui est calculable avec une machine
|
|
|
|
+à registres.
|
|
|
|
+
|
|
|
|
+. . .
|
|
|
|
+
|
|
|
|
+Donc: un ordinateur + langage de programmation _"équivalent à une machine à
|
|
|
|
+registres"_ peut __tout__ calculer.
|
|
|
|
+
|
|
|
|
+## Apprendre par l'exemple : quelques exercices
|
|
|
|
+
|
|
|
|
+* les types en python.
|
|
|
|
+
|
|
|
|
+* les fonctions.
|
|
|
|
+
|
|
|
|
+. . .
|
|
|
|
+
|
|
|
|
+* factorielle : $n! = 1\times 2 \times 3 \times \ldots \times n$.
|
|
|
|
+
|
|
|
|
+ 4 manières de calculer.
|
|
|
|
+
|
|
|
|
+. . .
|
|
|
|
+
|
|
|
|
+* Tri par la méthode des bulles (peu efficace).
|
|
|
|
+
|
|
|
|
+ 2 programmes légèrement différents.
|
|
|
|
+
|
|
|
|
+. . .
|
|
|
|
+
|
|
|
|
+* Manipulation de chaînes de caractères.
|
|
|
|
+
|
|
|
|
+##
|
|
|
|
+
|
|
|
|
+ * Le _théorème de l'arrêt_ (Turing, 1936)
|
|
|
|
+
|
|
|
|
+ _"Il n'existe pas de programme (d'algorithme) permettant de prouver
|
|
|
|
+ qu'un programme s'arrête ou non"_
|
|
|
|
+
|
|
|
|
+__Une preuve en moins de 10 lignes de Python !__
|
|
|
|
+
|
|
|
|
+## Python est vendu avec accessoires...
|
|
|
|
+
|
|
|
|
+* Doctests
|