suppresion des Statex des algo de style impératif
This commit is contained in:
parent
2786706b0f
commit
eb3daeae4e
|
@ -2,10 +2,10 @@ Algorithmique
|
||||||
=============
|
=============
|
||||||
|
|
||||||
Al-Kharezmi, auteur du traité "Kitab al jabr w'al-muqabala", est l'inventeur
|
Al-Kharezmi, auteur du traité "Kitab al jabr w'al-muqabala", est l'inventeur
|
||||||
des manipulations algébriques (algèbre = al jabr), mais l'algèbre existe
|
des manipulations algébriques (algèbre = **al jabr**).
|
||||||
depuis bien plus longtemps (Babylone, puis l'Egypte ancienne).
|
|
||||||
C'est Léonard de Pise, dit Fibonacci, qui emprunta le nom du célèbre
|
C'est Léonard de Pise, dit Fibonacci, qui emprunta le nom du célèbre
|
||||||
mathématicien arabe du 9ème siècle.
|
mathématicien arabe du 9ème siècle, mais l'algèbre existe
|
||||||
|
depuis bien plus longtemps (Depuis Babylone, puis ensuite l'Egypte ancienne).
|
||||||
|
|
||||||
.. glossary::
|
.. glossary::
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,9 @@ extensions = [
|
||||||
# ajout des cours avec solution des exercices ou non
|
# ajout des cours avec solution des exercices ou non
|
||||||
def setup(app):
|
def setup(app):
|
||||||
app.add_config_value('correction', False, 'env')
|
app.add_config_value('correction', False, 'env')
|
||||||
|
app.add_config_value('exercice', False, 'env')
|
||||||
|
|
||||||
|
exercice = True
|
||||||
correction = True
|
correction = True
|
||||||
|
|
||||||
# Add any paths that contain templates here, relative to this directory.
|
# Add any paths that contain templates here, relative to this directory.
|
||||||
|
|
|
@ -106,8 +106,7 @@ Répéter ... jusqu'à
|
||||||
\begin{algorithm}
|
\begin{algorithm}
|
||||||
\caption{Exemple de répéter ... jusqu'à}
|
\caption{Exemple de répéter ... jusqu'à}
|
||||||
\begin{algorithmic}[1]
|
\begin{algorithmic}[1]
|
||||||
\Require $i \gets 1$ \Comment{déclaration et initialisation de i}
|
\BState \emph{locales}: $i \gets 1$ \Comment{déclaration et initialisation de i}
|
||||||
\Statex
|
|
||||||
\Repeat \Comment{c'est le label de début du répéter}
|
\Repeat \Comment{c'est le label de début du répéter}
|
||||||
\State $i \gets \textit{i+1}$
|
\State $i \gets \textit{i+1}$
|
||||||
\Until{i == 100} \Comment{condition de fin de la boucle}
|
\Until{i == 100} \Comment{condition de fin de la boucle}
|
||||||
|
@ -122,8 +121,7 @@ La boucle **pour** (for)
|
||||||
\begin{algorithm}
|
\begin{algorithm}
|
||||||
\caption{Exemple de boucle for}
|
\caption{Exemple de boucle for}
|
||||||
\begin{algorithmic}[1]
|
\begin{algorithmic}[1]
|
||||||
\Require $sum\gets 0$
|
\BState \emph{locales}: $sum\gets 0$
|
||||||
\Statex
|
|
||||||
\For{$i\gets 1, n$}
|
\For{$i\gets 1, n$}
|
||||||
\State $sum\gets sum+i$
|
\State $sum\gets sum+i$
|
||||||
\EndFor
|
\EndFor
|
||||||
|
@ -138,8 +136,7 @@ La boucle tant que (while)
|
||||||
\begin{algorithm}
|
\begin{algorithm}
|
||||||
\caption{Exemple de boucle while}
|
\caption{Exemple de boucle while}
|
||||||
\begin{algorithmic}[1]
|
\begin{algorithmic}[1]
|
||||||
\Require $sum\gets 0$
|
\BState \emph{locales}: $sum\gets 0$
|
||||||
\Statex
|
|
||||||
\State $i\gets 1$
|
\State $i\gets 1$
|
||||||
\While{$i\le n$}
|
\While{$i\le n$}
|
||||||
\State $sum\gets sum+i$
|
\State $sum\gets sum+i$
|
||||||
|
|
|
@ -28,9 +28,9 @@ allant de plus en plus haut, mais étant sous-entendu qu'il faut rester connect
|
||||||
bas niveau (comprendre comment ça se passe derrière la scène).
|
bas niveau (comprendre comment ça se passe derrière la scène).
|
||||||
|
|
||||||
Dans ces deux cas, il est sous-entendu qu'on apprend plus de choses et plus rapidement en mettant
|
Dans ces deux cas, il est sous-entendu qu'on apprend plus de choses et plus rapidement en mettant
|
||||||
les mains dans le cambouis, ce qui vrai bien sûr. Mais cela sous-entend qu'un développeur doit
|
les mains dans le cambouis, ce qui est vrai bien sûr. Mais cela sous-entend qu'un développeur doit
|
||||||
rester le nez dans le guidon. Qu'il doit être un expert de son domaine en accumulant des technos
|
rester le nez dans le guidon. Qu'il doit être un expert de son domaine en accumulant des technologies
|
||||||
sans aucun recul. Bie sûr il se doit d'être un expert du système dans lequel il évolue
|
sans aucun recul. Bien sûr il se doit d'être un expert du système dans lequel il évolue
|
||||||
(connaissance du système d'exploitation, binding avec le C, du ramasse miette (garbage
|
(connaissance du système d'exploitation, binding avec le C, du ramasse miette (garbage
|
||||||
collector), interaction avec les différentes librairies, gestion et optimisation de la mémoire,
|
collector), interaction avec les différentes librairies, gestion et optimisation de la mémoire,
|
||||||
architecture par microservices, threads...) mais il doit aussi être capable de prendre du recul.
|
architecture par microservices, threads...) mais il doit aussi être capable de prendre du recul.
|
||||||
|
@ -47,7 +47,7 @@ objects, généricité, polymorphisme paramétrique...) et d'un outil de communi
|
||||||
avec la machine qu'on appelle compilateur (dont la description est en dehors de
|
avec la machine qu'on appelle compilateur (dont la description est en dehors de
|
||||||
l'objectif de ce cours).
|
l'objectif de ce cours).
|
||||||
|
|
||||||
La tendance générale de l'évolution des languages est de se libérer de ces
|
La tendance générale de l'évolution des langages est de se libérer de ces
|
||||||
contraintes de bas niveau, un peu comme en sciences physiques où les lois physiques
|
contraintes de bas niveau, un peu comme en sciences physiques où les lois physiques
|
||||||
dépendent de l'échelle d'en dessous (du niveau microscopique/quantique) mais qu'à
|
dépendent de l'échelle d'en dessous (du niveau microscopique/quantique) mais qu'à
|
||||||
l'échelle du dessus, on n'a pas affaire à des effets de bas niveau (pas d'effets
|
l'échelle du dessus, on n'a pas affaire à des effets de bas niveau (pas d'effets
|
||||||
|
|
|
@ -4,8 +4,8 @@ Avant propos
|
||||||
Introduction
|
Introduction
|
||||||
~~~~~~~~~~~~
|
~~~~~~~~~~~~
|
||||||
|
|
||||||
| "Que nul n'entre ici s'il n'est géomètre"
|
| "**Que nul n'entre ici s'il n'est géomètre**"
|
||||||
| (Maxime apposée au porche d'entrée de l'École de Platon)
|
| Maxime apposée au porche d'entrée de l'École de Platon
|
||||||
|
|
||||||
|
|
||||||
- L'accent est mis sur l'approche **algorithmique scientifique**, dite algorithmique
|
- L'accent est mis sur l'approche **algorithmique scientifique**, dite algorithmique
|
||||||
|
@ -40,18 +40,16 @@ Intérêt
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
|
||||||
| "Les dieux ne connaissent pas seulement les mauvaises actions,
|
| "**Il ne suffit pas d'avoir les mains propres, il faut avoir l'esprit pur.**"
|
||||||
| mais encore les mauvaises pensées."
|
| Thalès de Milet ; Sentences - VIe s. av. J.-C.
|
||||||
| Thalès de Milet
|
|
||||||
|
|
||||||
|
L'algorithmique en tant que rapport à la vérité et à la pensée juste et vraie,
|
||||||
L'algorithmique en tant que rapport à la vérité,
|
|
||||||
en tant qu'art de découper un problème complexe en tâches élémentaires,
|
en tant qu'art de découper un problème complexe en tâches élémentaires,
|
||||||
en tant qu'énoncés de compréhension et de sémantique,
|
en tant qu'énoncés de compréhension et de sémantique,
|
||||||
est la seule chose vraiment profonde dans l'informatique. Le reste n'est que 0 ou 1.
|
est la seule chose vraiment profonde dans l'informatique. Le reste n'est que 0 ou 1.
|
||||||
Cette notion d'algorithme est profondément enracinée dans le désir humain de
|
Cette notion d'algorithme est profondément enracinée dans le désir humain de
|
||||||
transmettre des méthodes pour comprendre des problématiques,
|
transmettre des méthodes pour comprendre des problématiques,
|
||||||
qu'il s'agisse de procédures scientifiques ou mathématiques, de secrets,
|
qu'il s'agisse de processus scientifiques ou mathématiques, de secrets,
|
||||||
de philosophie ou de divination au sens des anciens Grecs.
|
de philosophie ou de divination au sens des anciens Grecs.
|
||||||
De règles linguistiques, aussi, chez les Romains.
|
De règles linguistiques, aussi, chez les Romains.
|
||||||
|
|
||||||
|
@ -60,16 +58,15 @@ Objectifs de ce cours
|
||||||
|
|
||||||
Il s'agit de :
|
Il s'agit de :
|
||||||
|
|
||||||
- maîtriser et concevoir un algorithmes de base,
|
- maîtriser et concevoir un algorithme de base,
|
||||||
- choisir une représentations appropriée des données,
|
- choisir une représentation appropriée des données,
|
||||||
- décomposer en sous-problèmes et affinements successifs,
|
- décomposer en sous-problèmes et affinements successifs,
|
||||||
- organiser les modules et les fonctions.
|
- organiser en fonction et en modules.
|
||||||
|
|
||||||
Le développement raisonné d’algorithmes et leur implantation
|
Le développement raisonné d’algorithmes et leur implantation
|
||||||
permet d'acquérir les qualités suivantes :
|
permet d'acquérir les qualités suivantes :
|
||||||
|
|
||||||
+ Analyser et modéliser un problème,
|
+ Analyser et modéliser un problème, spécifier,
|
||||||
+ Spécifier,
|
+ Exprimer une problématique, une solution ou un algorithme,
|
||||||
+ Exprimer, une problématique, une solution ou un algorithme,
|
|
||||||
+ Traduire un algorithme dans un langage de programmation,
|
+ Traduire un algorithme dans un langage de programmation,
|
||||||
+ Concevoir un algorithme répondant à un problème précisément posé.
|
+ Concevoir une réponse à un problème précisément posé.
|
||||||
|
|
Loading…
Reference in New Issue