Vous êtes sur la page 1sur 2

TITRE DESSUS

Mardi 1er décembre 2015


14h00 – 17h00

TITRE DESSOUS
Contrôle Final
IS1210 Algorithmes.
Tous documents autorisés. Calculatrice autorisée.
Cet examen comprend 21 pages et son barème est sur 100 points.

Nom : Prénom :

Avant Propos
Il est conseillé de lire l'examen en entier avant de commencer (les exercices sont indépendants les uns
des autres). TITRE DESSUS
Par défaut, vous êtes invités à répondre directement sur le sujet, dans l'espace prévu entre deux ques-
tions. Exceptionnellement, si l'espace manque, utilisez les dernières pages blanches de l'énoncé en re-
portant soigneusement le numéro de la question. Les pages supplémentaires sont numérotées de 1 à 4 :
veuillez, le cas échéant, indiquer soigneusement à l'emplacement initial de la question vers quelle page
le correcteur doit se reporter (par exemple, à la Question 1.1, écrire «voir solution page sup. n˚1»)
Il sera tenu compte du soin de la présentation, et tout particulièrement de la qualité de la description
des algorithmes.

TITRE DESSOUS

TITRE DESSUS
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 p de type personne peut posséder une propriété age de type entier que l'on
notera p.age.
— une variable n de 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–

Vous aimerez peut-être aussi