algorithmique : api et paramètres
This commit is contained in:
parent
9220531442
commit
8ab75d1eac
BIN
algo/algorithmique/cours/_static/Messages1.png
Normal file
BIN
algo/algorithmique/cours/_static/Messages1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 11 KiB |
BIN
algo/algorithmique/cours/_static/Messages2.png
Normal file
BIN
algo/algorithmique/cours/_static/Messages2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
BIN
algo/algorithmique/cours/_static/ZephirSeminaire.png
Normal file
BIN
algo/algorithmique/cours/_static/ZephirSeminaire.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 35 KiB |
BIN
algo/algorithmique/cours/_static/domains.png
Normal file
BIN
algo/algorithmique/cours/_static/domains.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 95 KiB |
@ -0,0 +1,21 @@
|
||||
---
|
||||
uri: execution.salt.peer.registered
|
||||
|
||||
sampleuse: ~
|
||||
|
||||
description: |
|
||||
Notify salt peering
|
||||
|
||||
pattern: event
|
||||
|
||||
parameters:
|
||||
serverid:
|
||||
type: Number
|
||||
description: server and salt minion uid
|
||||
automation:
|
||||
type: String
|
||||
description: Automation engine
|
||||
|
||||
public: false
|
||||
|
||||
domain: execution-domain
|
54
algo/algorithmique/cours/code/server.create.yml
Normal file
54
algo/algorithmique/cours/code/server.create.yml
Normal file
@ -0,0 +1,54 @@
|
||||
---
|
||||
uri: server.create
|
||||
|
||||
description: |
|
||||
Créer un serveur.
|
||||
|
||||
sampleuse: |
|
||||
zephir-client server.create '{"servername":"MonJoliServeur", "serverdescription": "un bien joli serveur", "servermodelid":1, "serverpassphrase": "MyPassPhrase"}'
|
||||
|
||||
pattern: rpc
|
||||
|
||||
public: true
|
||||
|
||||
domain: server-domain
|
||||
|
||||
parameters:
|
||||
servername:
|
||||
type: String
|
||||
description: |
|
||||
Nom du serveur.
|
||||
serverdescription:
|
||||
type: String
|
||||
description: |
|
||||
Description du serveur.
|
||||
servermodelid:
|
||||
type: Number
|
||||
ref: Servermodel.ServermodelId
|
||||
description: |
|
||||
ID du modèle de serveur.
|
||||
serverpassphrase:
|
||||
type: String
|
||||
description: |
|
||||
Phrase secrète de la clef privé.
|
||||
|
||||
response:
|
||||
parameters:
|
||||
serverid:
|
||||
type: Number
|
||||
ref: Server.ServerId
|
||||
description: |
|
||||
ID du serveur.
|
||||
|
||||
errors:
|
||||
- uri: server.error.database-not-available
|
||||
- uri: server.error.db-connection
|
||||
- uri: server.error.invalid-servermodel-id
|
||||
- uri: server.error.unknown-servermodel-id
|
||||
- uri: server.error.servername-not-provided
|
||||
|
||||
related:
|
||||
- server.list
|
||||
- server.describe
|
||||
- server.update
|
||||
- server.delete
|
19
algo/algorithmique/cours/code/server.created.yml
Normal file
19
algo/algorithmique/cours/code/server.created.yml
Normal file
@ -0,0 +1,19 @@
|
||||
---
|
||||
uri: server.created
|
||||
|
||||
sampleuse: ~
|
||||
|
||||
description: |
|
||||
Created server message
|
||||
|
||||
pattern: event
|
||||
|
||||
public: false
|
||||
|
||||
domain: server-domain
|
||||
|
||||
parameters:
|
||||
serverid:
|
||||
type: Number
|
||||
description: |
|
||||
Server identifier
|
@ -37,8 +37,8 @@ def setup(app):
|
||||
app.add_config_value('correction', False, 'env')
|
||||
app.add_config_value('exercice', False, 'env')
|
||||
|
||||
exercice = False
|
||||
correction = False
|
||||
exercice = True
|
||||
correction = True
|
||||
|
||||
# Add any paths that contain templates here, relative to this directory.
|
||||
templates_path = ['_templates']
|
||||
@ -239,7 +239,7 @@ latex_elements = {
|
||||
# author, documentclass [howto, manual, or own class]).
|
||||
latex_documents = [
|
||||
(master_doc, 'Algorithmique.tex', u'Cours d\'algorithmique',
|
||||
u'promotion GMSI B3', 'manual'),
|
||||
u'promotion GMSI B4', 'manual'),
|
||||
]
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top of
|
||||
|
@ -293,6 +293,7 @@ Les piles
|
||||
Traduction d'une structure de données dans une autre
|
||||
-----------------------------------------------------
|
||||
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
>>> listOfStrings = ['One', 'Two', 'Three']
|
||||
@ -575,3 +576,56 @@ Autres structures de données complexes
|
||||
|
||||
- le parcours de graphes
|
||||
- les calculs de dates
|
||||
|
||||
|
||||
Algèbre relationnelle
|
||||
---------------------
|
||||
|
||||
|
||||
- **projection** : suppression de colonne d'une table
|
||||
- **restriction** : filtrage de lignes d'une table
|
||||
- **union** : aggrégation de tables
|
||||
- différence de tables
|
||||
- intersection de tables
|
||||
- produit cartésien de tables
|
||||
- division de tables
|
||||
|
||||
|
||||
exercices : utilisation de la librairie Pandas avec jupyter
|
||||
|
||||
|
||||
La conception Api First
|
||||
------------------------
|
||||
|
||||
|
||||
Exemple avec une application orientée microservices :
|
||||
|
||||
.. image:: _static/ZephirSeminaire.png
|
||||
|
||||
Domains (modules) de l'API :
|
||||
|
||||
.. image:: _static/domains.png
|
||||
|
||||
|
||||
Observons un cas d'utilisation (scénario utilisateur):
|
||||
|
||||
.. image:: _static/Messages1.png
|
||||
|
||||
Interpretons en termes d'appel à une API
|
||||
|
||||
.. image:: _static/Messages2.png
|
||||
|
||||
|
||||
description des messages :
|
||||
|
||||
premier message: **server.create**
|
||||
|
||||
.. literalinclude:: code/server.create.yml
|
||||
|
||||
deuxième message: **peer.registered**
|
||||
|
||||
.. literalinclude:: code/execution.salt.peer.registered.yml
|
||||
|
||||
troisième message: **server.created**
|
||||
|
||||
.. literalinclude:: code/server.created.yml
|
||||
|
@ -65,35 +65,35 @@ de plus en plus fines, de plus en plus détaillées, qui aboutiront au programme
|
||||
On met des *trous* dans les algorithmes de plus haut niveau,
|
||||
c'est-à-dire des phrases en langage naturel.
|
||||
|
||||
.. ifconfig: exercice
|
||||
.. ifconfig:: exercice
|
||||
|
||||
**Exercice** : **Calculer la date du lendemain**
|
||||
|
||||
.. ifconfig: correction
|
||||
.. ifconfig:: correction
|
||||
|
||||
- l'algorithme de plus bas niveau
|
||||
- l'algorithme de plus haut niveau
|
||||
|
||||
::
|
||||
|
||||
lendemain jour =
|
||||
si jour [est le dernier jour du mois] alors
|
||||
si jour [est le dernier jour du mois du dernier mois de l'année] alors
|
||||
resultat = [calculer le 1er janvier de l'année suivante]
|
||||
sinon
|
||||
resultat = lendemain_dansl'année jour
|
||||
resultat = lendemain_dansl_année(jour)
|
||||
|
||||
- les algorithmes de plus bas niveau
|
||||
- les algorithmes de plus bas niveau associés
|
||||
|
||||
::
|
||||
|
||||
lendemain_dans_l'année jour =
|
||||
lendemain_dans_l_année(jour) =
|
||||
si jour [est le dernier jour du mois] alors
|
||||
resultat = [calculer le premier jour du mois suivant]
|
||||
sinon
|
||||
resultat = jour suivant jour
|
||||
resultat = jour_suivant(jour)
|
||||
|
||||
::
|
||||
|
||||
jour_suivant jour =
|
||||
jour_suivant(jour) =
|
||||
jour + 1
|
||||
|
||||
et ainsi de suite jusqu'à ce que toutes les phrases soient calculables.
|
||||
|
@ -17,7 +17,7 @@ interface
|
||||
des informations (partie publique, partie secrète)
|
||||
|
||||
|
||||
Signatures, type abstrait et langage de modules : la programmation modulaire
|
||||
Signatures, type abstrait et langage de modules : la programmation modulaire
|
||||
permet d'aller très loin dans la programmation structurée.
|
||||
|
||||
|
||||
@ -76,6 +76,7 @@ Au lieu d’importer les fonctions, on peut importer le fichier qui définit les
|
||||
fonctions avec la syntaxe qui suit. Dans ce cas, le fichier de programme sera
|
||||
changé comme suit :
|
||||
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
# Fichier prog2maxlist
|
||||
|
@ -66,9 +66,9 @@ Travaux Pratiques
|
||||
**travaux pratiques :**
|
||||
|
||||
code de césar : faire un programme pour chiffrer et déchiffrer par décalage
|
||||
|
||||
|
||||
exemples : Effectue une rotation de x caractères vers la droite::
|
||||
|
||||
|
||||
>>> print(chiffre('bonjour', 3))
|
||||
erqmrxu
|
||||
>>> print(chiffre('Bonjour les amis!', 3))
|
||||
@ -99,3 +99,20 @@ Travaux Pratiques
|
||||
cas 12 : écrire “décembre (31 jours)”
|
||||
défaut : écrire “numéro invalide”
|
||||
fselon
|
||||
|
||||
.. ifconfig:: exercice
|
||||
|
||||
**travaux pratiques :**
|
||||
|
||||
transcription d'une structure dans une autre
|
||||
|
||||
manipulations simple sur les DataFrames de Pandas
|
||||
|
||||
http://pandas.pydata.org/
|
||||
|
||||
http://www.python-simple.com/python-pandas/stacking-unstacking-dataframe.php
|
||||
|
||||
http://sametmax.com/le-pandas-cest-bon-mangez-en/
|
||||
|
||||
visualiser les données dans jupyter
|
||||
|
||||
|
@ -39,7 +39,7 @@
|
||||
\title[]{Algorithmique}
|
||||
|
||||
\subtitle{CESI alternance}
|
||||
\subtitle{promotion GMSI B3}
|
||||
\subtitle{promotion GMSI B4}
|
||||
|
||||
\author[Gwenaël Rémond]{}
|
||||
|
||||
|
@ -1,16 +0,0 @@
|
||||
todo
|
||||
====
|
||||
|
||||
- donner les corrections des exos de TP
|
||||
|
||||
- l'analyse descendante avec les dates : je l'avais zappé mais c'était bien
|
||||
- modules paramétrés ? à effacer
|
||||
|
||||
- éviter de "mélanger" le python et le ocaml
|
||||
- l'appel d'une fonction n'a pas été assez clair:
|
||||
- reprendre la "boite noire" plutôt avec une analogie avec la cybernétique
|
||||
- plutôt que de chercher à dire procédure/fonction, dire "bloc de code qu'on
|
||||
isole" et insister sur les locales et les globales
|
||||
- ne pas centrer sur la programmation impérative ou fonctionnelle,
|
||||
mentionner la fonctionnelle
|
||||
|
@ -457,6 +457,8 @@ Un autre exemple d'expression :
|
||||
\Until{$\neg changed$}
|
||||
\end{algorithmic}
|
||||
\end{algorithm}
|
||||
|
||||
|
||||
Expressions à partir de types de base
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user