Lycée Victor Hugo IPT 2ème année 2016-17
Question 6 H
Complexité : Quel est le nombre d’opérations effectuées par permcirc ? On notera Lle nombre
d’éléments de la pile P.
II Un peu de galanterie
On considère une pile de dossiers sur un bureau.
Un dossier est en fait un enregistrement sur un as-
suré social et chaque enregistrement est constitué d’infor-
mations concernant le nom, le sexe, la date de naissance
d’une personne.
On désire réarranger les enregistrements de telles ma-
nière que les enregistrements de personnes de sexe féminin
précèdent ceux de sexe masculin.
L’ensemble des enregistrements sera donné sous la forme d’une liste de tuples (nom,sexe,
date) où nom est une chaîne de caractères, sexe est un entier (1 pour homme, 2 pour femme),
et date est une chaîne de caractères "JJMMAAAA" codant la date de naissance. Les tuples
ne sont pas au programme, mais leur utilisation est simple : on récupère le premier élément du
tuple MonTuple par MonTuple[0], le second élément par MonTuple[1] etc.
Un tri a déjà été effectué sur la pile d’enregistrements puisqu’ils ont été empilés par ordre
décroissant de date de naissance (le plus âgé est au sommet et le plus jeune en bas de la pile).
Valider la suite d’instructions présentes dans le fichier TPPiles.py permettant de construire
la pile nommée virtuoses. Afficher cette pile !
Script 7 H
Écrire la fonction galanterie qui, lorsque virtuoses sera placé en argument, retourne une
pile des enregistrements de virtuoses dans laquelle les femmes précèdent les hommes.
On conservera le tri suivant la date de naissance pour les femmes d’une part et pour les hommes
de l’autre.
Enfin, on utilisera une seule pile comme intermédiaire(afin de ne pas encombrer le bu-
reau ! ! ! !).
Ne pas oublier de tester votre fonction !
III Analyseur syntaxique : expressions bien parenthésées
L’analyse syntaxique est une phase indispensable de la compilation des programmes. Les
piles sont particulièrement bien adaptées à ce genre de traitements. On va se limiter à la recon-
naissance des mots bien parenthésés.
Nous devons écrire un programme qui :
— accepte les expressions comme (a),(a b)((c d e)) ou (((a)(b c d))(e)) où a,b,
etc. sont des expressions quelconques sans parenthèse ;
— rejette les expressions comme a )(,(a b)((c) ou (((a b)(c d e f)))) ;
3