diff --git a/algorithmique/cours/control.txt b/algorithmique/cours/control.txt index 350e648..7770490 100644 --- a/algorithmique/cours/control.txt +++ b/algorithmique/cours/control.txt @@ -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 diff --git a/algorithmique/cours/donnees.txt b/algorithmique/cours/donnees.txt index 193de58..a10b583 100644 --- a/algorithmique/cours/donnees.txt +++ b/algorithmique/cours/donnees.txt @@ -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 diff --git a/algorithmique/cours/programme.txt b/algorithmique/cours/programme.txt index f6d8b55..29969d4 100644 --- a/algorithmique/cours/programme.txt +++ b/algorithmique/cours/programme.txt @@ -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 ------------------------------