Informatique 2012-2013 : TP Maple 3 (du 16/10 et 26/10) MPSI B Hoche
Exercice 1.
Soit n un entier naturel supérieur ou égal à 2, on désigne par {0, 1} n l’ensemble des n-uplets de 0 ou de 1. Pour tout b = (b 1 , · · · , n n ) ∈ {0, 1} n
B(b) =
n
X
i=1
b i
2 n x(b) =
b
n+12c
X
i=1
b 2i−1
2 i y(b) =
b
n2c
X
i=1
b 2i 2 i
On note aussi P (b) le point de coordonnées (x(b), y(b)). Vous devrez utiliser une variable n qui désignera globalement l’entier n.
1. Désignons par B la liste représentant un b ∈ {0, 1} n . Écrire une procédure nommée suivant telle que l’appel suivant(B) renvoie la liste attachée au n-uplet b 0 de 0 et de 1. On dira que b 0 est le n-uplet suivant b, il est tel que
B(b 0 ) = B(b) + 1 2 n
Si B ne contient que des 1 une telle liste n’existe pas et on convient alors de renvoyer B.
2. En partant de b égal au n-uplet nul, former un dessin contenant les segments [P (b), P (b 0 )] où b 0 est le n-uplet suivant b.
Exercice 2.
Tri bulle. Dans cet exercice A et n sont des variables globales pour les diverses procédures demandées et A est le nom d’un tableau indexé de 0 à n-1.
1. On considère la proposition
∃i ∈ {0, · · · n − 2} tel que A i > A i+1
Dans quel cas la proposition précédente est-elle fausse ?
2. Écrire une procédure pascroiss() qui renvoie un i ∈ {0, · · · n − 2} tel que A i > A i+1 lorsqu’il en existe un et qui renvoie n − 1 lorsqu’il n’existe pas de tel i.
3. Pour ranger les valeurs du tableau A par ordre croissant, on le parcourt autant de fois que nécessaire en permutant A i et A i+1 lorsque A i > A i+1 .
Écrire une procédure récursive tribulle() qui implémente ce tri en utilisant pascroiss().
Cette création est mise à disposition selon le Contrat
Paternité-Pas d’utilisations commerciale-Partage des Conditions Initiales à l’Identique 2.0 France disponible en ligne http://creativecommons.org/licenses/by-nc-sa/2.0/fr/