
5
--------------------------------------------------------------------------------------------------------------------------
Question 12 : Lequel de ces 4 algorithmes ne fonctionne PAS correctement ?
algo_A
entrée : n, un entier
sortie : un nombre entier
Si n < 0
sortir : 0
Si n = 0
sortir : 1
sortir : 2*n + algo_A(n/2)
algo_C
entrée : n, un entier
sortie : un nombre entier
Si n < 0
sortir : 2*n + algo_C(n+1)
Si n = 0
sortir : 1
sortir : algo_C(n-1)
algo_B
entrée : n, un entier
sortie : un nombre entier
Si n > 0
sortir : 2*n
Si n = 0
sortir : 1
sortir : algo_B(n-1)
algo_D
entrée : n, un entier
sortie : un nombre entier
Si n < 0
sortir : 2*n + algo_D(n+1)
Si n = 0
sortir : 1
sortir : algo_D(-n)
--------------------------------------------------------------------------------------------------------------------------
Questions Ouvertes
Question 1 : algorithme de conversion. Soit un système de numération des nombres entiers
strictement positifs à l’aide de l’ensemble S des 7 symboles suivants S = {T,U,R,W,X,Y,Z}. Dans
ce système primitif, que nous notons P, la position des symboles n’est pas associée à une
puissance de la base comme dans le système décimal. Dans le système P, un symbole
représente toujours la même quantité quelle que soit sa place dans un nombre. Chaque
symbole de l’ensemble S représente la quantité entière correspondante de l’ensemble V avec
V= {1, 5, 10, 50, 100, 500, 1000}. Par exemple, le symbole T vaut 1, le symbole U vaut 5, etc...
Règles à respecter pour écrire un nombre dans le système P : un nombre N est représenté par
une liste de symboles de l’ensemble S. Le premier symbole de la liste, noté N(1), est celui ayant
la plus faible valeur ; c’est le premier symbole sur la droite du nombre N (voir exemples). Le
symbole N(2) est celui qui vient immédiatement à gauche de N(1) dans le nombre, etc… Le
symbole N(k+1) dans la liste peut être le même que N(k), sans limite de répétition, ou un
symbole de valeur supérieure. Par contre il est interdit de trouver un symbole de valeur
inférieure lorsqu’on va de la droite vers la gauche.
Exemples : le nombre ZUT représente la quantité 1006 = 1000 + 5 + 1
le nombre XXXRRU représente la quantité 325 = 100 + 100 + 100 + 10 + 10 + 5
le nombre UXT est incorrect car le symbole U est de valeur plus faible que le
symbole X qui le précède à droite.
a) Ecrire le pseudocode de l’algorithme Algo_Val qui reçoit un seul symbole en entrée et qui
renvoie la valeur entière correspondant à ce symbole dans le système P. Si le symbole
n’appartient pas à l’ensemble S on renvoie la valeur zéro. On demande d’utiliser une
itération pour réaliser cette action élémentaire.