exos d'algo

This commit is contained in:
gwen 2017-04-27 12:05:13 +02:00
parent 13ca1532ce
commit 24cd7ca9c3
3 changed files with 131 additions and 183 deletions

View File

@ -251,9 +251,6 @@ La boucle tant que (while)
Ecrire "Saisie acceptée" Ecrire "Saisie acceptée"
Fin Fin
FIXME
.. ifconfig:: exercice .. ifconfig:: exercice
**Exercice** : "C'est plus, C'est moins", c'est-à-dire Ecrire un algorithme qui demande à lutilisateur **Exercice** : "C'est plus, C'est moins", c'est-à-dire Ecrire un algorithme qui demande à lutilisateur
@ -279,7 +276,6 @@ FIXME
FinTantQue FinTantQue
Fin Fin
Et les autres boucles : répéter... jusqu'à, etc... Et les autres boucles : répéter... jusqu'à, etc...
.. raw:: latex .. raw:: latex

View File

@ -1,145 +1,15 @@
Structures de données simples Structures de données simples
============================= =============================
Algorithmes sur les structures de données simples FIXME
Variables
~~~~~~~~~
.. ifconfig:: exercice
**Exercice** : Calculs d'affectation::
Variables A, B, C en Entier
Début
A <- 3
B <- 10
C <- A + B
B <- A + B
A <- C
Fin
.. ifconfig:: correction
**Correction**::
Après La valeur des variables est :
A <- 5 A = 5 B = ?
B <- 2 A = 5 B = 2
A <- B A = 2 B = 2
B <- A A = 2 B = 2
.. ifconfig:: exercice
**Exercice** : Calculs d'affectation
Quelles seront les valeurs des variables A et B après exécution des instructions suivantes ?
::
Variables A, B en Entier
Début
A <- 5
B <- 2
A <- B
B <- A
Fin
.. ifconfig:: correction
**Correction**::
Après La valeur des variables est :
A <- 5 A = 5 B = ?
B <- 2 A = 5 B = 2
A <- B A = 2 B = 2
B <- A A = 2 B = 2
.. ifconfig:: exercice
**Exercice** : écrire un algorithme permettant déchanger les valeurs
de deux variables A et B, et ce quel que soit leur contenu préalable.
.. ifconfig:: correction
**Correction**::
Début
A <- n
B <- p
C <- A
A <- B
B <- C
Fin
Il faut passer par une variable dite temporaire (la variable C)
.. ifconfig:: exercice
**Exercice** :
Que produit lalgorithme suivant ?
::
Variables A, B, C de type entier
Début
A <- 423
B <- 12
C <- A + B
Fin
.. ifconfig:: correction
**Correction** : dans un prompt python
.. code-block:: python
>>> a = 423
>>> b = 12
>>> c = a + b
>>> c
435
.. ifconfig:: exercice
**Exercice** :
Que produit lalgorithme suivant ?
::
Variables A, B, C de type texte
Début
A <- "423"
B <- "12"
C <- A + B
Fin
.. ifconfig:: correction
**Correction** : dans un prompt python
.. code-block:: python
>>> a = '423'
>>> b = '12'
>>> c = a + b
>>> c
'42312'
- tableaux - tableaux
- listes (les tris)
- piles - piles
- files - files
+------------------------------------------------------+------------------------------------------------------------------------+
| Contenus | Précisions et commentaires | - Recherche dans une liste, recherche du maximum dans une liste
+======================================================+========================================================================+ - Recherche dun mot dans une chaîne de caractères.
| Recherche dans une liste, recherche du maximum dans | |
| une liste de nombres, calcul de la moyenne et de la | |
| variance. | |
+------------------------------------------------------+------------------------------------------------------------------------+
| Recherche dun mot dans une chaîne de caractères. | On se limite ici à lalgorithme "naïf", en estimant sa complexité. |
+------------------------------------------------------+------------------------------------------------------------------------+
Liste Liste
------ ------
@ -153,25 +23,12 @@ Liste
biggerZoo = ['bear', 'lion', 'panda', 'zebra', ['chimpanzees', 'gorillas', 'orangutans', 'gibbons']] biggerZoo = ['bear', 'lion', 'panda', 'zebra', ['chimpanzees', 'gorillas', 'orangutans', 'gibbons']]
print(biggerZoo) print(biggerZoo)
FIXME - Lists Versus Tuples : types mutables, immutables
- Lists Versus Sets : non ordonné, collection simple
- Lists Versus Tuples
- Lists Versus Sets
Tuples are used to collect an immutable ordered list of elements. This means that: Traduction d'une structure de données dans une autre
-----------------------------------------------------
You cant add elements to a tuple. Theres no append() or extend() method for tuples,
You cant remove elements from a tuple. Tuples have no remove() or pop() method,
You can find elements in a tuple since this doesnt change the tuple.
You can also use the in operator to check if an element exists in the tuple.
A list stores an ordered collection of items, so it keeps some order. Dictionaries dont have any order.
Dictionaries are known to associate each key with a value, while lists just contain values.
Use a dictionary when you have an unordered set of unique keys that map to values.
.. code-block:: python .. code-block:: python
@ -187,11 +44,6 @@ Use a dictionary when you have an unordered set of unique keys that map to value
123 123
>>> >>>
Modification de la structure de données
----------------------------------------
.. code-block:: python .. code-block:: python
>>> l = [('host1', '10.1.2.3', '6E:FF:56:A2:AF:18'), ('host3', '10.1.2.5', '6E:FF:56:A2:AF:19')] >>> l = [('host1', '10.1.2.3', '6E:FF:56:A2:AF:18'), ('host3', '10.1.2.5', '6E:FF:56:A2:AF:19')]
@ -214,30 +66,9 @@ Structures de données complexes
- le parcours de graphes - le parcours de graphes
- les calculs de dates - les calculs de dates
+ **Récursivité**
On en présente les avantages et les inconvénients. Les types produits nommés (enregistrements)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ **Tris** dun tableau à une dimension de valeurs
numériques : tri par insertion, tri rapide (ou 'quicksort'),
tri par fusion. Application à la
recherche de la médiane dune liste de nombres.
On étudie et on compare ces algorithmes de tri du point de vue des complexités temporelles dans le meilleur et dans le
pire cas.
Les types produits
-------------------
Les types construits permettent de structurer linformation.
- les produits (n-uplets)
.. code-block:: ocaml
# type complexe = float * float ;;
- les produits nommés (enregistrements)
.. code-block:: ocaml .. code-block:: ocaml

View File

@ -220,6 +220,127 @@ Voir aussi :
x1 = e1, x2 = e2, ... xn = en; x1 = e1, x2 = e2, ... xn = en;
Exercices : algorithmes sur les affectations
.. ifconfig:: exercice
**Exercice** : Calculs d'affectation::
Variables A, B, C en Entier
Début
A <- 3
B <- 10
C <- A + B
B <- A + B
A <- C
Fin
.. ifconfig:: correction
**Correction**::
Après La valeur des variables est :
A <- 5 A = 5 B = ?
B <- 2 A = 5 B = 2
A <- B A = 2 B = 2
B <- A A = 2 B = 2
.. ifconfig:: exercice
**Exercice** : Calculs d'affectation
Quelles seront les valeurs des variables A et B après exécution des instructions suivantes ?
::
Variables A, B en Entier
Début
A <- 5
B <- 2
A <- B
B <- A
Fin
.. ifconfig:: correction
**Correction**::
Après La valeur des variables est :
A <- 5 A = 5 B = ?
B <- 2 A = 5 B = 2
A <- B A = 2 B = 2
B <- A A = 2 B = 2
.. ifconfig:: exercice
**Exercice** : écrire un algorithme permettant déchanger les valeurs
de deux variables A et B, et ce quel que soit leur contenu préalable.
.. ifconfig:: correction
**Correction**::
Début
A <- n
B <- p
C <- A
A <- B
B <- C
Fin
Il faut passer par une variable dite temporaire (la variable C)
.. ifconfig:: exercice
**Exercice** :
Que produit lalgorithme suivant ?
::
Variables A, B, C de type entier
Début
A <- 423
B <- 12
C <- A + B
Fin
.. ifconfig:: correction
**Correction** : dans un prompt python
.. code-block:: python
>>> a = 423
>>> b = 12
>>> c = a + b
>>> c
435
.. ifconfig:: exercice
**Exercice** :
Que produit lalgorithme suivant ?
::
Variables A, B, C de type texte
Début
A <- "423"
B <- "12"
C <- A + B
Fin
.. ifconfig:: correction
**Correction** : dans un prompt python
.. code-block:: python
>>> a = '423'
>>> b = '12'
>>> c = a + b
>>> c
'42312'
Interaction avec l'utilisateur Interaction avec l'utilisateur
------------------------------ ------------------------------