09.11.2014 Views

Cours Ada 1 - Libre

Cours Ada 1 - Libre

Cours Ada 1 - Libre

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

à la place de :<br />

for CAR in CHARACTER range ‘A’..‘Z’<br />

loop<br />

ECRIRE (CAR);<br />

end loop;<br />

3<br />

le compilateur ne peut déterminer le type de CAR ! En effet n’oublions pas que s’il existe bien un type<br />

CHARACTER il existe aussi le type Wide_Character sur-ensemble de Character. L’intervalle ‘A’..‘Z’<br />

appartient aux deux ensembles !<br />

Dans le même ordre d’idée voyons un exemple (cf. Barnes pages 108-109) avec surcharge d’identificateurs :<br />

type T_Planètes is (Mercure, Vénus, Terre, Mars, Jupiter, Saturne,<br />

Uranus, Neptune, Pluton) ;<br />

type T_Dieux is (Janus, Mars, Junon, Vestales, Vulcain, Saturne,<br />

Mercure, Minerve) ;<br />

Remarquez que <strong>Ada</strong> permet les accents même dans les identificateurs ! (Vénus, T_Planètes)<br />

Si l’on écrit :<br />

for IND in Mars..Saturne<br />

loop<br />

..<br />

end loop ;<br />

Problème !<br />

l’intervalle Mars..Saturne est ambigu le compilateur ne sait pas décider dans quel type il faut réaliser IND<br />

(en <strong>Ada</strong> rien n’est implicite) il faut aider le compilateur. Par exemple en qualifiant une des bornes :<br />

for IND in T_Planètes’(Mars)..Saturne<br />

loop<br />

..<br />

end loop ;<br />

Qualification !<br />

il n’y a plus ambiguï té.<br />

Mais le plus lisible est encore de typer l’intervalle ainsi :<br />

for IND in T_Planètes range Mars..Saturne<br />

loop<br />

..<br />

end loop ;<br />

Mieux !<br />

Si un sous type existe déjà par exemple :<br />

subtype T_Explorer is T_Planètes range Mars..Saturne ;<br />

alors l’écriture peut se restreindre à :<br />

for IND in T_Explorer<br />

loop<br />

..<br />

end loop ;<br />

Variante !<br />

Cette structure for est très pratique (elle existe aussi dans de nombreux langages). Elle trouve sa pleine<br />

utilisation dans les parcours de tableaux notamment (nous reverrons cela dès le cours suivant et plus tard).<br />

D. Feneuille I.U.T. Aix 2001 (cours n°3 fichier COURS3.DOC) 30/06/02

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!