exos d'algo
This commit is contained in:
parent
2dee810ffd
commit
79eeb4a1df
|
@ -251,9 +251,6 @@ La boucle tant que (while)
|
|||
Ecrire "Saisie acceptée"
|
||||
Fin
|
||||
|
||||
|
||||
FIXME
|
||||
|
||||
.. ifconfig:: exercice
|
||||
|
||||
**Exercice** : "C'est plus, C'est moins", c'est-à-dire Ecrire un algorithme qui demande à l’utilisateur
|
||||
|
@ -279,7 +276,6 @@ FIXME
|
|||
FinTantQue
|
||||
Fin
|
||||
|
||||
|
||||
Et les autres boucles : répéter... jusqu'à, etc...
|
||||
|
||||
.. raw:: latex
|
||||
|
|
|
@ -1,145 +1,15 @@
|
|||
Structures de données simples
|
||||
=============================
|
||||
|
||||
Algorithmes sur les structures de données simples
|
||||
|
||||
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 l’algorithme 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 l’algorithme 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'
|
||||
|
||||
FIXME
|
||||
|
||||
- tableaux
|
||||
- listes (les tris)
|
||||
- piles
|
||||
- files
|
||||
|
||||
+------------------------------------------------------+------------------------------------------------------------------------+
|
||||
| Contenus | Précisions et commentaires |
|
||||
+======================================================+========================================================================+
|
||||
| Recherche dans une liste, recherche du maximum dans | |
|
||||
| une liste de nombres, calcul de la moyenne et de la | |
|
||||
| variance. | |
|
||||
+------------------------------------------------------+------------------------------------------------------------------------+
|
||||
| Recherche d’un mot dans une chaîne de caractères. | On se limite ici à l’algorithme "naïf", en estimant sa complexité. |
|
||||
+------------------------------------------------------+------------------------------------------------------------------------+
|
||||
|
||||
- Recherche dans une liste, recherche du maximum dans une liste
|
||||
- Recherche d’un mot dans une chaîne de caractères.
|
||||
|
||||
Liste
|
||||
------
|
||||
|
@ -153,25 +23,12 @@ Liste
|
|||
biggerZoo = ['bear', 'lion', 'panda', 'zebra', ['chimpanzees', 'gorillas', 'orangutans', 'gibbons']]
|
||||
print(biggerZoo)
|
||||
|
||||
FIXME
|
||||
|
||||
- Lists Versus Tuples
|
||||
- Lists Versus Sets
|
||||
- Lists Versus Tuples : types mutables, immutables
|
||||
- Lists Versus Sets : non ordonné, collection simple
|
||||
|
||||
|
||||
Tuples are used to collect an immutable ordered list of elements. This means that:
|
||||
|
||||
You can’t add elements to a tuple. There’s no append() or extend() method for tuples,
|
||||
You can’t remove elements from a tuple. Tuples have no remove() or pop() method,
|
||||
You can find elements in a tuple since this doesn’t 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 don’t 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.
|
||||
|
||||
Traduction d'une structure de données dans une autre
|
||||
-----------------------------------------------------
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
|
@ -187,11 +44,6 @@ Use a dictionary when you have an unordered set of unique keys that map to value
|
|||
123
|
||||
>>>
|
||||
|
||||
|
||||
|
||||
Modification de la structure de données
|
||||
----------------------------------------
|
||||
|
||||
.. 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')]
|
||||
|
@ -214,30 +66,9 @@ Structures de données complexes
|
|||
- le parcours de graphes
|
||||
- les calculs de dates
|
||||
|
||||
+ **Récursivité**
|
||||
|
||||
On en présente les avantages et les inconvénients.
|
||||
|
||||
+ **Tris** d’un tableau à une dimension de valeurs
|
||||
numériques : tri par insertion, tri rapide (ou 'quicksort'),
|
||||
tri par fusion. Application à la
|
||||
recherche de la médiane d’une 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 l’information.
|
||||
|
||||
- les produits (n-uplets)
|
||||
|
||||
.. code-block:: ocaml
|
||||
|
||||
# type complexe = float * float ;;
|
||||
|
||||
- les produits nommés (enregistrements)
|
||||
Les types produits nommés (enregistrements)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. code-block:: ocaml
|
||||
|
||||
|
|
|
@ -220,6 +220,127 @@ Voir aussi :
|
|||
|
||||
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 l’algorithme 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 l’algorithme 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
|
||||
------------------------------
|
||||
|
||||
|
|
Loading…
Reference in New Issue