exercices sur les variables
This commit is contained in:
parent
1470b93a63
commit
ae3cdd92b3
@ -42,9 +42,9 @@ Le problème du voyageur de commerce, consiste en la recherche d’un trajet min
|
||||
voyageur de visiter n villes. En règle générale on cherche à minimiser le temps de parcours total ou la
|
||||
distance totale parcourue.
|
||||
|
||||
Il suffit de construire tous les chemins possibles et de cal-
|
||||
culer leurs longueurs. Avec ``n`` villes il y a ``(n − 1)!/2 chemins``
|
||||
possibles. Avec 36 villes on trouve : 5166573983193072464833325668761600000000,
|
||||
Il suffit de construire tous les chemins possibles et de calculer leurs longueurs.
|
||||
Avec ``n`` villes il y a ``(n-1)!/2`` chemins possibles.
|
||||
Avec 36 villes on trouve : 5166573983193072464833325668761600000000,
|
||||
si le nombre de villes augmente, ça devient vite rédibitoire.
|
||||
|
||||
Résolution par
|
||||
|
@ -3,7 +3,128 @@ 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 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'
|
||||
|
||||
|
||||
- tableaux
|
||||
- listes (les tris)
|
||||
|
@ -397,3 +397,74 @@ Définitions par cas
|
||||
let rec puissance x n = match n with
|
||||
0 -> 1
|
||||
| -> x * puissance x (n-1)
|
||||
|
||||
|
||||
|
||||
.. ifconfig:: exercice
|
||||
|
||||
**Portée locale dans une fonction**
|
||||
Quelles sera la valeur de la variable `a` ?
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
>>> a = 1
|
||||
>>> def myfunc():
|
||||
... a = 2
|
||||
... return a + 1
|
||||
...
|
||||
>>> a = myfunc() + a
|
||||
|
||||
|
||||
.. ifconfig:: correction
|
||||
|
||||
Correction:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
>>> a = 1
|
||||
>>> def myfunc():
|
||||
... a = 2
|
||||
... return a + 1
|
||||
...
|
||||
>>> a = myfunc() + a
|
||||
>>> a
|
||||
4
|
||||
>>>
|
||||
|
||||
|
||||
.. ifconfig:: exercice
|
||||
|
||||
**Exercice** : Portée locale dans une fonction avec variable globale
|
||||
Quelles sera la valeur de la variable `a` ?
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
>>> a = 1
|
||||
>>> def myfunc():
|
||||
... global a
|
||||
... a = 2
|
||||
... return a + 1
|
||||
...
|
||||
>>> a = myfunc() + 3
|
||||
>>>
|
||||
|
||||
.. ifconfig:: correction
|
||||
|
||||
**Correction** :
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
>>> a = 1
|
||||
>>> def myfunc():
|
||||
... global a
|
||||
... a = 2
|
||||
... return a + 1
|
||||
...
|
||||
>>> myfunc()
|
||||
3
|
||||
>>> a
|
||||
2
|
||||
>>> a = myfunc() + 3
|
||||
>>> a
|
||||
6
|
||||
>>>
|
||||
|
@ -188,7 +188,7 @@ le code interprété
|
||||
|
||||
Typiquement, le travail d’un compilateur se compose d’une phase d’analyse
|
||||
|
||||
- reconnaı̂t le programme à traduire et sa signification
|
||||
- reconnaît le programme à traduire et sa signification
|
||||
- signale les erreurs et peut donc échouer (erreurs de syntaxe, de portée, de typage, etc.)
|
||||
|
||||
Puis d’une phase de synthèse
|
||||
|
@ -14,6 +14,13 @@ développement à se poser des questions d'organisation et de structuration.
|
||||
Aujourd'hui, on dispose de deux grands modèles d'organisation dont les avantages et les
|
||||
particularités sont distincts.
|
||||
|
||||
L'écriture des vrais programmes consiste à les structurer pour les présenter
|
||||
comme un assemblage de briques qui s'emboîtent naturellement.
|
||||
Ce problème se révèle fondamental dès que la taille des programmes devient conséquente.
|
||||
Si on ne prend pas garde au bon découpage des programmes en modules indépendants,
|
||||
on se retrouve rapidement débordé par un grand nombre de variables,
|
||||
et il devient quasiment impossible de réaliser un programme correct.
|
||||
|
||||
La modularité
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user