
Pseudocode et Python
Vous pouvez exprimer les algorithmes en pseudocode avec les conventions rappelées ci-dessous. Vous
pouvez également utiliser les constructions similaires de Python, à l’exclusion de toute bibliothèque non-
standard.
— l’indentation est utilisée pour indiquer la structure de bloc (comme en Python, pas de begin..end
ou autres marqueurs),
— les types connus sont les booléens, les nombres entiers, les nombres flottants et les caractères
— les expressions admises sont composées de :
— and, or, not pour les booléens
— +, -, *, /, « et » (décalage à droite et à gauche) pour les entiers
— +, -, *, / pour les flottants
— les variables admises sont de 3 natures différentes :
— scalaires : elles sont d’un type de base connu
— vectorielles : ce sont des vecteurs d’éléments qui sont tous du même type connu et indicés sur
un intervalle [0.. n-1]. On utilisera la notation A[p..q] pour désigner le sous-ensemble du
tableau A qui commence à l’indice p et se termine à l’indice q compris.
— composées : dans ce cas la variable possède plusieurs propriétés qui sont elles-mêmes d’un
type connu. On utilisera A.length pour se référer à la propriété d’un objet. Exemple :
— une variable pde type personne peut posséder une propriété age de type entier que l’on
notera p.age.
— une variable nde type noeud peut posséder deux propriétés de type noeud que l’on notera
n.filsGauche et n.filsDroit qui désigneront d’autres noeuds.
— la conditionnelle if boolExpr then expr1 else expr2
— l’instruction de boucle définie for i ← depart to arrivee (to ou downto si arrivee est infé-
rieure à départ)
— l’instruction de boucle définie for e in collection (collection pouvant être toute collection
finie de données : tableau, liste, clés d’un dictionnaire, ensemble)
— l’instruction de boucle indéfinie while
— l’appel de fonction
— les paramètres sont passés par valeur pour les types scalaires, tous les autres sont passés par
référence. Une référence qui ne réfère à aucun objet prend la valeur NIL (équivalent à None en
Python),
— les commentaires sont introduits par #c,
— les opérateurs booléens and et or sont court-circuitants.
Vous avez le droit d’utiliser les structures de données : tableau (liste en Python), liste chaînée, pile,
file, file de priorité, dictionnaire, ensemble sans les redéfinir et en vous appuyant sur la signature des
opérations données dans le cours.
– 2 –