exos d'algo

This commit is contained in:
gwen 2017-04-27 12:05:13 +02:00 committed by Benjamin Bohard
parent 2dee810ffd
commit 79eeb4a1df
3 changed files with 131 additions and 183 deletions

View File

@ -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 à lutilisateur
@ -279,7 +276,6 @@ FIXME
FinTantQue
Fin
Et les autres boucles : répéter... jusqu'à, etc...
.. raw:: latex

View File

@ -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 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'
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 dun mot dans une chaîne de caractères. | On se limite ici à lalgorithme "naïf", en estimant sa complexité. |
+------------------------------------------------------+------------------------------------------------------------------------+
- Recherche dans une liste, recherche du maximum dans une liste
- Recherche dun 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 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.
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** 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)
Les types produits nommés (enregistrements)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code-block:: ocaml

View File

@ -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 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
------------------------------