• Aucun résultat trouvé

I61: Théorie des langages et compilation Contrôle terminal - session 2

Licence 3 SI

2017 (semestre 2) - Durée : 2h00

• Tous les documents, calculatrices et appareils de communication sont interdits.

• Le barème est donné à titre indicatif

• Toutes les réponses doivent être justifiées

EXERCICE l. Expressions Régulières (3pts) On considère les deux alphabet E1

= {

a, b} et E2 langages suivants:

l. les chaînes sur E1 contenant exactement 3 b;

{O,

1, 2, ... , 9}. Donner des définitions régulières des

2. les chaînes sur E1 commençant par a et dont chaque best toujours suivi d'un a;

3. les chaînes sur E2 représentant les nombres décimaux entre O et 128 (attention: 00, 01, etc n'appartiennent pas au langage).

EXERCICE 2. Automates I (3pts)

Soit A= {O, l}. On note Lj langage des nombres binaires multiple de j.

l. Construire un automate permettant de reconnaitre les mots de L3 et de L5.

2. Le nombres 232 - 1 est il un multiple de 15 ?

3. Construire un automate reconnaissant les nombres qui ne sont pas dans L3.

EXERCICE 3. Automates Il (3pts)

On considère un automate A sur l'alphabet { a, b }, d'état initial O et d'état final 3, donné par la table de transition suivante·

a b

o

{1,3} {l}

1 {2,4} {2}

2 {3}

{O}

3 {4}

{O}

4 {l, 3} {1,2}

l. Dessiner l'automate A.

2. Construire un automate déterministe équivalent à A.

EXERCICE 4. Grammaire l (3pts)

On considère le langage des expressions arithmétiques sur l'alphabet { a, b, e} dont les opérateurs sont l'addition ( +), le produit (*) et l'exponentiation (A) et les parenthèses. Par exemple, a!\ e+ (a+ b) * e appartient au langage.

l. Écrire une grammaire non ambigüe reconnaissant ce langage et respectant la priorité des opérateurs.

2. Donner l'arbre syntaxique de la chaîne (a+ b) !\e* b

EXERCICE 5. Grammaire II (4pts)

On considère une grammaire G dont les non-terminaux sont {S,E,F,G} les terminaux sont {a,b,c,d}, le symbole de départ est S et dont les productions sont les suivantes:

S -+ aE

I

bF E -+ bE

I

E

F -+ aF

I

aG G -+ Geld

l. Écrire une grammaire G1 équivalente à G sans récursivité à gauche.

2. Écrire une grammaire G2 factorisée à gauche, équivalente à G1.

3. Concevoir un analyseur syntaxique prédictif et écrire une table d'anayse syntaxique pour la cette grammaire.

EXERCICE 6. Grammaire III (4pts)

Une grammaire est dite sans production vide s'il n'existe aucune règle de production de la forme X-+ E X est un non-terminal.

l. On considère la grammaire S -+ aSbS

I

bSaS

I

E

Donner une grammaire définissant le même langage ( ou chaîne vide) sans production vide.

2. Donner un algorithme permettant de construire l'ensemble

Ve=

{XIX-++ E} où X est un non-terminal.

3. Donner un algorithme pour convertir une grammaire quelconque en une grammaire sans production vide.

4. Appliquer l'algorithme à la grammaire:

A -+ aBC I CD I DE B -+ BbB

I

E

e

-+ bC ID D -+ aCblE E -+ bE I E

T11;n ?017 ')

L 3 ':>'

162, Interface homme-machine ~""" A

J

10 mai 2017

La précision et la clarté de votre rédaction sont fondamentales. Chaque ré- ponse doit être accompagnée d'une justification, dans le cas contraire elle sera purement et simplement ignorée. Le barème est donné à titre indicatif.

Durée 2 h.

5.

Il

pt] La figure présente une copie d'écran de la barre d'outils de WordPress.

Une IHM c'est comme une blague : si vous devez l'expliquer, c'est qu'elle n'est pas très bonne.

Exercice l.

19

pts] Interaction et ergonomie

Le curseur survole le bouton « afficher/ cacher les options avancées », options que l'on voit dans la deuxième rangée de boutons (de gauche à droite : le style, le sou- lignement, la justification, la couleur du texte, l'aide, etc.). Donner deux critères d'ergonomie vérifiés ou transgressés par cet élément d'interface. Pour chaque critère cité, justifier votre réponse.

6. [2 pts] Considérons la tâche de composition d'un numéro sur un téléphone à touches sans écran. Citer deux propriétés ergonomiques que ce système transgresse. Pour chacune des deux propriétés, justifier votre réponse et proposer une solution pour remédier au problème identifié.

Chacune de vos réponses ne doit pas dépasser trois lignes.

[ l

P · 1•· , · al d l · d'' f h ch' ? Exercice 2. [5 pts] Conception l. 1 pt ourquoi iteration est centr e ans a conception mter aces omme-ma me .

Quelle activité guide ces itérations? La réponse à cet exercice ne doit pas dépasser une page.

2.

Il

pt] Les retours d'information sonores présentent des intérêts et des inconvénients.

Donner un point positif et un point négatif de l'usage de retour d'information sonore dans une interface.

3.

12

pts] Expliquer en terme d'ergonomie (utilisabilité) les mérites respectifs de la manipulation directe et des langages de commandes. Pour cela, citer au moins deux intérêts et deux inconvénients (critères d'ergonomie vérifiés et transgressés) pour la manipulation directe et pour les langages de commandes. Justifier votre réponse.

4. [2 pts] En 2014, la SNCF a changé son affichage sur les quais franciliens. Don- ner deux avantages (critères d'ergonomie vérifiés) de cette nouvelle présentation des informations. Justifier votre réponse.

AVANT

On souhaite mettre en place, au sein de l'université de Toulon, un nouveau service web qui permettra aux étudiants de télécharger du matériel pédagogique associé aux modules d'enseignement de leur cursus.

Dans le cadre d'une conception dirigée par les buts, établir un scénario contextuel permettant de présenter les fonctionnalités importantes et de définir le comportement de l'application. Compléter par un scénario de validation alternatif.

Exercice 3. [6 pts] Implantation d'une fenêtre de dialogue

Nous considérons un dialogue interactif simple qui permet à un utilisateur d'aug- menter ou de diminuer la température de 10 degrés Celsius grâce à deux boutons et de remettre la température à zéro ou bien de saisir directement la température souhaitée.

La température est affichée sous la forme d'une courbe montrant l'évolution.

7.

12

pts] Donner le code Python, qui s'appuie sur le module tkinter, permettant la création et l'affichage initial de la fenêtre de dialogue ci-dessous. On ne demande pas le code permettant la mise en œuvre fonctionnelle de ce dialogue mais uniquement ce qui permet son affichage.

8. [2 pts] Identifier chaque composant d'interface de la fenêtre de dialogue ci-dessous qui nécessite la mise en place d'un binding et donner explicitement chaque évènement pris en compte. On ne demande pas de coder les bindings.

9. [2 pts] Donner le code Python qui permet de saisir au clavier la température désirée.

~T

"'

CL

!

--+---+---+---+--+--+--+--+-_..,,.

0

..,

0 .... 0 "' 0

..

o

.,

0 N 0

...

L3 ~~

162, Interface homme-machine Session 2 - 30 juin 2017

vents normalisés .... Pour décrire un ouragan passé, la graduation la plus élevée atteinte est utilisée (par exemple, Katrina était de catégorie 5).

catégorie

I

1 2

I

3 4

I

5

La précision et la clarté de votre rédaction sont fondamentales. Chaque ré- ponse doit ètre accompagnée d'une justification, dans le cas contraire elle sera purement et simplement ignorée. Le barème est donné à titre indicatif.

Durée 2 h.

vitesse du vent (km/h)

I

119-153

I

154-177

I

178-209

I

210-249

I

> 249

On a reproduit ci-dessous une portion du code qui permet d'afficher une interface graphique. Celle-ci indique la catégorie d'ouragans à partir de la vitesse de vent saisie.

Exercice l. [7 pts] Interaction et ergonomie

Chacune de vos réponses ne doit pas dépasser trois lignes.

l.

[1

pt] Donner un avantage et un inconvénient à l'utilisation de la couleur dans les interfaces utilisateurs.

2. [1 pt] Donner un avantage et un inconvénient à l'utilisation du son dans les IHM.

3. [1 pt] L'affichage d'une date sous la forme 30/06/17 présente (au moins) deux inconvénients, lesquels'?

4. [2 pts] On trouve souvent le conseil suivant : « Le nombre conseillé d'items dans un menu déroulant est de 7 », pourquoi? Donner une solution pour des listes plus importantes d'items.

5. [2 pts] En vous basant sur le modèle du processeur humain, justifier l'utilisation d'association « icônes - labels » dans les interfaces utilisateurs.

Exercice 2. [5 pts] Conception

Les fonctionnalités d'un blog sont les suivantes : Pour le propriétaire du blog :

- créer, modifier, effacer une catégorie, - créer, publier, modifier, effacer un article, - gérer, répondre à un commentaire.

Pour les visiteurs : consulter un article,

- s'inscrire, se désinscrire, s'authentifier, modifier son profil, - poster un commentaire (authentification préalable obligatoire).

Établir le diagramme de cas d'utilisation pour cette application.

Exercice 3. [8 pts] Implantation

[Wikipédia] L'échelle de Saffir-Simpson est l'échelle de classification de l'intensité des cyclones tropicaux, nommés « ouragans », se formant dans l'hémisphère ouest, ... Elle est graduée en cinc niveaux d'intensité, correspondant à des intervalles de vitesses de

root = tk.Tk ()

root. title ( 11 Echelle~de~Saffir-Simpson 11)

vitEntry = tk.Entry(root, width=lO, font=11AriaL16") catLabel = tk.Label(root, text="", font="AriaL16")

catButton == tk.Button (root, text= 11 Oat eg o r ie i.d ' our agan.;.: 11, \ font= 11 Ar i a l j l û , bold 11, command==Categorie) quitButton == tk.Button(root, text="Quitter", font="AriaL1611, \

command=root.quit)

vitLabel = tk.Label(root, text=="Vitesse~du~venL:11, \ font=11AriaLl611)

vitLabel.grid (row=O, column e O, sticky="e") vitEntry.grid(row=O, column=l, sticky="w") catButton.grid (row=l, column=O)

catLabel.grid (row=l, column=l, sticky= "w")

quitButton.grid (row=2, column=l, sticky= "e", padx=lO) root.columnconfigure (O, pad=20)

root.columnconfigure (1, pad=20) root.rowconfigure (O, pad=20) root.rowconfigure (1, pad=20) root.rowconfigure (2, pad=20)

tk.mainloop ()

l. [3 pts] Faire un schéma de l'application telle qu'elle apparait à l'écran, en plaçant les widgets qui la constituent conformément aux instructions du grider (ne pas re- produire la police de caractères).

2. [2 pts] On fait l'hypothèse que l'utilisateur entre un entier dans la zone de saisie.

Ecrire la fonction Categorie O qui affiche la catégorie d'ouragan en fonction de la vitesse du vent saisie.

3. [3 pts] On souhaite à présent gérer les erreurs de saisie. Établir un binding au niveau du widget vi tEntry afin que seuls les chiffres puissent être pris en compte. Attention : la méthode vi tEntry. delete (tk. END) ne fonctionne pas, il faut impérativement l'utiliser avec deux paramètres (les index de début et de fin).

.z9

l 3. ':) \.

=cr0v}

tç ~

Examen 163

Documents relatifs