Écriture d’algorithmes

Écriture d’algorithmes

par Marie Xiao May Decloitre,
Number of replies: 1
Bonjour Monsieur,
Je voulais savoir si lors de l’écriture d’un algorithme nous voulons faire appel à un autre algorithme vu en classe (dichotomie, tri fusion ...) devons nous réécrire ce dernier en entier ?
In reply to Marie Xiao May Decloitre

Re: écriture d'algorithmes

par Olivier Lévêque,

Bonjour Marie,

La réponse est non. Vous pouvez faire appel, lorsque vous écrivez un algorithme, à un des algorithmes vus en cours (tri par fusion, dichotomie) SANS le réécrire.

Faites attention toutefois à ne pas faire appel à des algorithmes imaginaires et obscurs qui permettraient de résoudre le problème que vous voulez résoudre, ceci sans que vous décriviez précisément ce que fait votre algorithme.

EXEMPLE A NE PAS FAIRE:

On veut savoir combien de fois un nombre x apparaît dans une liste L de longeur n:

algo
entree: L, n, x
sortie: nombre entier
s = compter(L,n,x)
sortir s

où vous expliquez en-dessous que l'algorithme compter compte le nombre de fois que x apparait dans la liste L de longueur n... Ce qui est exactement l'algorithme qu'on vous demande d'écrire!

EXEMPLE TOUT A FAIT VALABLE:

On veut savoir si les nombres x et y appartiennent tous deux à une liste L de longeur n.

algo
entree: L, n, x
sortie: valeur binaire oui/non
s <- oui
si dichotomie(L,n,x)=non, alors: s <-non

si dichotomie(L,n,y)=non, alors: s <-non
sortir s

Des fois, vous pourriez avoir envie de préciser ce que fait l'algorithme auquel vous faites référence: par exemple, si vous utilisez dichotomie(L,a,b,x) qui recherche par dichotomie si le nombre x se trouve dans la liste L entre les positions a et b. Soyez sûr que la personne qui corrige (c'est-à-dire moi :) comprenne bien ce que vous voulez dire!

De manière générale, une fois que vous avez écrit un algorithme, mettez-vous dans la peau de quelqu'un d'autre qui lit votre algorithme: cette personne peut-elle arriver à suivre votre raisonnement? Si oui, c'est bon signe!

Et encore un dernier conseil: testez votre algorithme sur des petites données d'entrée: une liste L de 3 nombres, un entier n=3...

Bien à vous,

Olivier