Un algorithme mystérieux
Que fait la procédure ci-dessous, sachant qu’elle reçoit en entrée un tableau Tab de N
éléments, chacun de ses éléments pouvant prendre une valeur égale à Vert, Jaune ou Rouge ?
Procédure Rasta (Tab)
Indice_Vert 1
Indice_Jaune N
Indice_Rouge N
tq Indice_Vert <= Indice_Jaune faire
si Tab (Indice_Vert) = Vert
alors
Indice_Vert Indice_Vert + 1
sinon
si Tab (Indice_Vert) = Jaune
alors
Tab (Indice_Vert) Tab (Indice_Jaune)
Tab (Indice_Jaune) Jaune
Indice_Jaune Indice_Jaune 1
sinon
Tab (Indice_Vert) Tab (Indice_Jaune)
Tab (Indice_Jaune) Tab (Indice_Rouge)
Tab (Indice_Rouge) Rouge
Indice_Jaune Indice_Jaune 1
Indice_Rouge Indice_Rouge 1
fsi
fsi
ftq
Fin procédure
Conseil : si vous ne voyez pas du premier coup d’œil la fonction de cette procédure, faites-en
ce qu’on appelle la trace. Pour cela, donnez-vous un tableau Tab de taille raisonnable (8 à 10
éléments suffiront), rempli au hasard d’éléments verts, jaunes ou rouges, et faites tourner
l’algorithme « à la main », en notant l’évolution du contenu du tableau et des variables
auxiliaires chaque fois qu’un changement se produit.
NB 1 : Vous pouvez bien sûr observer le fonctionnement de la procédure en la programmant
et en la faisant exécuter par une machine, mais c’est moins formateur.
NB 2 : Cet algorithme a été inventé par Edsger Dijkstra [ˈɛtsxər ˈdɛɪkstra], un des pères de
l’informatique ; de nationalité hollandaise, il a décrit l’algorithme en utilisant les couleurs
rouge, blanche et bleue.
1 / 1 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !