You are on page 1of 13



       !" #$ %'&()+*-,/.102)


35456798:;;#<
o=2NO>@?AWaJ>@BDe >KCFJEGU#>NpHIMR>KW#JLE?'>RM@H\NO?LEQJdPRJqNONH\JTS?'UCF>VW\?LUNp>XrZWKJqB
SKJnPD] CRXY?9Z >KJZ[HDUSPR>RHDU#CFH\?L>KJ\]_^`NOWaJcbaNOWaJdMKNOHaJT>DZ[ef NOHaJAU_g hiM@NjH\J9CDMDXk>RXle C5EGmEG>UjWFXYSn>#]
sutwvyxlzd{@z'v}|
~€T~ ‚jƒ…„F†…‡dˆp‰`ˆOŠL‹d‡ŒŽG‚O‹c‘L’…“”†
4
—@Ÿ#6R«O• –jY6£¦¥OŸ–j˜5™q8˜¥Oµ —K˜n˜@8V™V²˜@Ÿ#š› O˜K³7œ—@˜nk7q—@–j˜#˜nžj8G–O¥2Ÿ#§ j O8–+–O6aŸ³p _Y8GŸ–Y–F˜n™q–¡K79˜n°rŸ#898q–jŸ—¯–j™9¦8Ÿ#¢¤–£k¥O6w˜45£´§ Ÿ›¡@™9¥›6R¡K™i£YY89—@6DŸ™9 j¦Ÿ#796––#¥¨™I§ ¥› O˜5–£´8q§ ©›6a³p8L™9YªKŸ45–"˜˜K™Q6a©F¥›6R˜n–F8V™Ÿ#«¬79¥›Ÿ79 O˜n7V8Ÿ¥›­O ®L˜n«O—¯Y™9£¦[Ÿ°c™q£k˜56-˜@—K™iŸ4¥›  ±
«j O–6¶7€6a£¦Ÿ³p˜ _¦8qŸ#8©›–¤—K8LŸ™9¥›ªK–j˜V458q™Lk˜¥›©p¡K«¬¥›79˜i˜Ÿ–jÁG—@Ÿ#8<F45:R·F;#45 O¼G˜6 –j£¸§ ¥›6a³p˜\8c¦Ÿ#¥›–"˜¾«_³ŸFŸ#8q£¸8qµ#ªn¿d¥O˜\˜¹8c O8q– O7T—@°º6#˜n—@7T™œ˜\6R8lY«_–˜n–O OŸ#³4Q˜n–#­O™c79ÀK˜¹™q79¥›˜¾˜
£¦˜\8q O8€7q8T°º j6¦—@³D˜\6R8¹–F™9»º˜n²8Ÿ# O»º–O³Ÿ˜n7q j–O8c˜\«O89¼7q˜n·#–O jŸc–_8T8lŸ#«_–#Ÿ#™I O—@7cŸ#˜@–Fš›™q˜n794½£Y«j¡K˜n£¦˜ 8
Ãà  O¥›˜n–j ›˜Iš¤²Ÿ²# jŸ O³˜K³#79˜K–O79–O˜˜n¥›8'˜i¥›¥›˜IY7q«O˜\79—¯ŸR™q°rYŸ#Ÿ–j–I¥›Ä ˜n O7…Ä
Ãà ¥›·F j˜n ›6Rš™q79˜ž³#ÆŸÇ£Y˜@»L™œÈ´82É¯Ä ÊÌ˹Ë
ÍÎKϦÐVÑOÒDɯʦÓ\ÒRÔjÈÕÍDÏ×֜ÈÕÍÎKÊÌÏØʦÓ\ÐKÉD¼·# j28TŸ#–#™¥›˜\8¾«O£k6R–j8yÙjŸ79¦ÚnŸ–F™96 ›šw7q¡n²£k6R­O£Y˜n8…Ä
Ãà «O¥›£Y˜n j ›8š¥O6˜V¦£Y¥O˜K79˜KŸ ›–_š8Kµ­_˜\—K8¥›˜V­¬Ÿ7œ¥¤¥2§ 6R™T™96#·F O˜cÄ
Û ˜I O8T–u©›8TÁ ™qªn•4ÜL˜iÝ ¥OÇޘV»´—KߟÊÌ45Éw4
à6RÍD–jÈÕÍ+¥O˜VÍD¥OÔâ˜Iá"³㯟Ô⣨Ð@˜\ɯ8LÈ´™ʺÍD—KÏAŸä45к«_å@ÐKŸFÉq8TÐK¡IÔ¬·F朠jÐ6ç_–#èa™Ö¯¢ÈÕÐ@£YËw O…¼¥›·F˜\ O8¾¡K—K£Y¡K645£Y—K O˜K–F£Y˜¤™œ8¾£Y˜n8T8
 OY¥›³D6RŸ#–F–O™9–O8V¡n˜n 85¥›¡n—K7qY³D6R–F™
£¸§ ¡@™œ6D™w¥›˜
à £´§ 6a³pYŸ–2µ…¿d˜\8I¥›Ÿ–O–j¡K˜n8V8qŸ–F™i—K6£Y—K O£¦¡n˜n8V¢«j6R7q™qY7I¥›˜
—K6«›™q˜n O798V8q[™9 O¡n8I8q O7I£´§ 6a³pYŸ–˜@™i·F O€«_˜n O³˜n–F™VÀK™q79˜
8TŸ#[™
 Ã O4
¥›˜\–/6D8¾™9élY—K·Fê6 O«›Ç"˜A™q˜nÄ »ì OëA79ÏØ8¾Ê[í\¥Oћ˜IÈA«Oî7q˜\ÍR8qÔ¬8qÍKYŸíF–2ÐKË5ž›8qÐKŸÔj¦™¾ÈA¥Oç_˜nèa8¾Ö¯Èì²#ÐK©FËw79¼'Ÿ#89·#—@ jŸ#¬«_¡n˜\£Y8A6­_«¬Ÿ#˜K797q45˜£Y˜@˜n™q8y™96R—@–FŸ#™G–j8T¥›Y˜I²–j—n˜n6R8'£k—@¥› O˜£Y˜K³#7Ÿ¥›£¨˜\¢8¾¥›6˜n—n8T—@™q¡KY£Y–j¡K6D7œ™96D¦™9Ÿ#¦–¤Ÿ#–j¥›8y ¤6R«O–OY²#£¦ OŸ™q£k6R˜IY7q6R˜\ ›82™9ğR±
à  O¥›–-˜\8¾ï⥛Á”Ÿ–j»r–O«j¡K¦£Y˜\ŸR8'™9˜°rŸ6R O O79™q–OŸY˜n4
8y6R«j™q6k·#7¾ j£¦˜\˜i¼cél·Fê OâÇ—KÄ6£Y—K O£Y˜£¦˜\8AŸ#79¥O7q˜\8c¢Q¥›˜\8L™9¦–_6D™qYŸ–w¥O˜n8d²Ÿ j³˜K79–O˜\8c¥›˜G£´§ 6a³FYŸ–
˜n–
°rŸ–_—¯™qYŸ–
à  O˜\8L–Q™GðA6#é`8q8q¿yŸ›Ç-—@Y¡V»´ñ'¢ϦМ OæK–"ȸɯʺÁ æœÍR•GÏ#ÜLëcÝ Ï[Ç-Ê[í\ћ«¬ÈcŸ jòc7ÒDÔj«_È´Ÿ#Éq OÒR³Ï#Ÿ#笝¦èa7Ö¯—KÈìÐKŸËw–O–_¼…6a·Fók O™q79p˜—K6£´§ £Y¡@—K™9 O6R£¦™G˜A¥›£¦˜\˜I8×£´6§ 6a–O³p²Y£YŸ˜n–282µ›¢ðc6R–/«O«j79£¦¡nk·F6 O£¦¦™q˜K¡#7`žO6R¦ ›£…šV–2²§ ˜KŸ#š› OY8T³™q˜n˜I7q–O«j˜\6#8K8¾µ Û¥¨§§ ðAðAé`é`¿y¿yÇÇ
ô ² O¡n–/–O¡KðA7œé`6R£2¿yõ#ǤžO«¬4
Ÿ6R Ok7¾8¾£Y¥›˜I˜n ›45š¤Ÿ›¥›ðA˜Iél6R¿y ›Ç™9Ÿ8T4
«¬¡n6D—K™9YY6·F£¦ Ok8T˜#¡\žO8·#  j…—K6£Y—K O£¦˜V£Y˜n8¾6–O²£Y˜n8y˜n–¤°rŸ#–j—¯™9¦Ÿ#–¥O˜n8yŸ7œ¥›79˜n8y¥› /ï¨Á+Ä
Ãà  O–-ðdé`¿yÇ
«¬Ÿ j7'£Y˜G45Ÿ›¥›˜4
6R–p O˜K£´ž›·F O¬—n6R£k—@ O£Y˜£¦˜\8d6–O²£Y˜n8'¢i«j67T™9¦7y¥›˜\8AŸ#79¥›79˜n8d¥›˜£¸§ ¡n·F OY«j6R²#˜¥›˜£´§ 6a³pYŸ–2µ
79Û ˜K˜n«O8l79Y¡n–#8q™9˜K˜K–F7œ™96˜—@™q OY– Ÿ–jô 8×÷j˜K–F ›™qš/79˜y¥›—@˜I˜n¥›8€Ÿ¥O–j[öâ–O¡K¡K79˜\˜K8–FõO™98l¼'¡n«O£¦79¡n¡n458q˜K˜K–F–F™q™9¡I8`«¬8q O˜K7¾ O³#£Y6¹˜K–Føj™€²#À@ O™q7979˜˜yù#7q¡\µ 8T j4¡n˜n8l8q O7l£¦˜¾89—œÙO¡K4
68T OY³D6R–F™»r O–j˜d÷_ªn—œÙO˜
FMS PA

capteurs ADIRS EFCS gouvernes

ú'ûrüdý ù Ã Ü –F™9˜K7œ6—¯™9¦Ÿ#–¤˜n–F™q79˜£Y˜n8¾¥O[öâ¡K79˜K–F™98G—@Ÿ45«¬Ÿ#896R–F™98y¥› 8q©›8L™9ªK45˜I¥›˜i—@Ÿ#44
6–j¥›˜I¥›˜V²Ÿ# O³˜n7q–O˜\8
commandes manuelles
~€ Ž †…„#ˆOŠL‹d‡G„


ùµy«O¥O796Ÿ–j«¬8'Ÿ#£¸8q§ ¡K˜K–j7…Ÿ O–j–i—K¥›¡Gk«O6R²79¡n7œ8q6R˜K45–F™9456˜–F™'£Y˜n8'-—@£k¥›6˜A898T—K˜\Ÿ8K–jžF—K£Y˜K˜n«›8'™97q¦˜nŸ#£Y–I6R™q«OYŸ79¡K–j£Y8d¦45˜K–FY–j™96R7q˜Y7q˜£¦˜\»º8y6R—@–_£k6R6£Y89©p8T8q˜\˜\8c¼â˜@¥O™¾˜A£Y˜n£´§8'˜n–j¡K³#8T˜n˜K4Q–F™q­O j£Y˜K˜A£Y£¦¥›˜\˜\8A824¹¡n£¦ O¡n£[4™9¦˜n«j–F£¦k™9—@8…¦™q¥O¡\¡n8I—@79»r¦Ÿ™9  8


—n6R7œ¥›¦–_6R£Y[™9¡n8œ¼âÄ
–/¥OY6²7œ6R4545˜¥›˜i—KŸ–j—K˜K«›™9¦Ÿ#–¤«¬Ÿ#898q¦­O£Y˜V˜n8T™7q˜n«O79¡n8q˜K–F™q¡V8T j7¾£Y6¹øj²# O7q˜i:Oµ

*
Gouverne
gouvernes

possède 2
Profondeur Direction THS Volet Bec Aileron
possède 1 2 4 2..* 2
dirige
1 1 1 possède
Avion
1 possède
1 1
1 possède

possède

possède

* * récupèreDonnées
Capteur CommandeVol

1 1 1
Gyroscope Pression
ADIRS FMS PA
fms pa
adirs 2
efcs
1
EFCS

efcs
CommandeManuelle

EFCSAuto EFCSManuel

ú'ûrüdý : à • k6R²#796445˜I¥›˜I—@Ÿ#–j—@˜n«›™qYŸ–«O79¡K£Y¦45Y–j6RY79˜
 O˜n£Y·F O˜\8y7q˜n4
6R7œ·# j˜n8Â
£¦£¸˜\§ 68y897q8q˜nŸp£Y—K6RY™q6RY™qŸY–jŸ–+8¾¥O·F˜V OA8q«¬£YY¡n˜-—@k£´6R§ 6a£Yk³p8q6RYŸ™q–+YŸ–/6R ›8Tš ˜™q²79Ÿ#Ÿ O j³³a˜n67q¦–j˜n˜n–F8I™¾8q6˜-Y8q¡K–O45Ÿ#4˜n–#45™˜ ¥O6–j8y£Y˜V™q˜@špµ ™9˜c–Ä 6 O7œ6R¦™Q¡K²F6R£Y˜K45˜K–F™i«O   O™qY£¦k8T˜n7

ÃÃ
 O£Y6-–O˜I7q˜n79£Y6R˜K£k™q6DYŸ™9¦–Ÿ#–¤£YY6¥¨–F§ 6R™²#£Y7q˜¹¡n²#8q©p6D8T™9™q¦Ÿ#ªn–-45˜QŸ# ¥›˜¹¥›˜i—KŸ—K45Ÿ454
«¬6RŸ#–j8q¥O[™9˜¹¦Ÿ#¥›–I˜¹Ä ³Ÿ£`¢-8q˜n8—@Ÿ45«¬Ÿ#896R–F™98G˜n8T™ O–j˜Q79˜K£k6D™qYŸ–"¥2§ 6²79¡K²#6R™qYŸ–2µ
possède

Ã
—£¦@˜\Ÿ#8w–464
—@89Ÿ#8q6–jŸp–j8T—K¥›kY¥›6R˜cªn™qÄ 7qYŸ˜"–j¥›85Ÿ# j–j–O—Y¥Ok—@¦79V˜n—@·F™q OYŸ˜"–O£Y–O˜n˜n8-£¦£Y—K˜nŸ845»r«¬79˜KŸ#«O89796R¡n–F8q™9˜K8
–F™qŸ#¡n–F˜n™-85 O«j–O6˜7-¥›¥O˜\ O8-7q¡n6˜898q¥›Ÿp˜"—KY³p6RY™q˜YŸY–j–j85¥›¡n6a«_³#˜n˜n—/–j¥O O6R–O–F˜/™9˜÷_ªn¥›—œ  ÙO˜"8q©›Y8L–j™9¥›ªKk45·F j˜6R¥›–F˜™
Ã
£¦¥O˜\6R8¾–_¥›8G¦ö¬·F¡n O7q˜K˜n£l–#8q™œ˜K8–j—@8Ÿ#£¸45§ 6«_898qŸFŸp8q6—KY–#6R™œ™q82YŸÄ –8q˜i°º6R¦™œ¼G8T˜¥›¡n¥O OY8q˜K–F™V¥› ¥›k6R²#796445˜I«O79¡n8q˜K–F™œ6R–F™G£Y˜n8¦–F™q˜n796#—¯™9¦Ÿ#–j8¾˜K–F™97q˜
à £Y«j6¹6R7q—@™q£k6k—@89 j8T˜I£¦Y˜Kñc7\ëyµ ò`ç ˜n8T™' j–O˜—K£Y6#8q8q˜6­j8T™q7œ6R¦™q˜žF—K67dŸ#–w–O˜°º6R¦™'˜Kö¬˜\—¯™qY³˜n45˜K–F™'£Y˜n8y—n6R£k—@ O£k8d·F O˜«_Ÿ# O7y O–-45Ÿ›¥›˜
:›µy«O³#Ÿ79Ÿ j«¬8yŸ#£Y8q¦45˜K7¾¦™q j˜n–/7q˜n¥OÚVY6¢²£k7œ656R45—@Ÿ45–_8L˜V™97q¥O j˜Q—@™q—@YŸ#Ÿ–j–/—@˜n¥¨«›§  O™qY–/Ÿ–/«_˜K¥›™q¡@¦™G™œ6R–OY£¦Ÿ£Y¡K4¹˜¤­O»º796D˜™q™q¥¨79§ ¦Ÿ­j«¬ ›¡K™97œ8¾6D™9˜K¦™GŸ#–jŸ«¬8¾¡K8q7œ O6D7™9¦—@Ÿ#˜K–j™T8œ™q¼d˜i¥O—K˜i£Y6#£Y8q6
8q˜c—KÄ £Y6#8q8q˜Qñcëyò`çaµ€Ÿ# j8
–/¥OY6²7œ6R4545˜¥›˜i—KŸ–j—K˜K«›™9¦Ÿ#–¥O¡@™96¦£Y£Y¡K˜I¥›˜I£k6—K£Y6#8q8q˜Qñcëyò`ç ˜\8L™¾79˜K«O79¡n8q˜K–F™q¡V8q O7¾£Y6ø_² O79˜<jµ

EFCS Exception

− gouvernes : Gouverne []
− adris : ADIRS

+ EFCS(taille : int, a : ADRIS)


+ ajouterGouverne(g : Gouverne) AppelantInvalideException
+ retirerGouverne(g : Gouverne)
+ setAdirs(a : ADIRS)
+ getAdirs() : ADIRS
« send »
+ calculeAngles(o : Object)

yú ûrüdý < à • k6R²7œ6R4545˜I¥›˜I—@Ÿ#–j—@˜n«›™qYŸ–/¥›¡@™œ6RY£¦£Y¡K˜i¥O˜£k6


—@£k6898q˜Iñcë¾ò`ç
Üî£#–2ÍDÔ § ©Vj6Ð@ÏÌ·FÏYÐI O˜A8TŸ#¥O–F˜K™d › OšI–O6Dk™q¥›™qY797q¦˜\­O—¯ O™9™9¦Ÿ#8…–O¥j–O6R˜K–j£Y8…£Y˜n£Y8n6¾µ —KÛ £Y6#˜n8d8q8q45˜dñc¡@™qëyÙjò`Ÿp¥O笘nž\8 —n6R72£Y˜n8×6898TŸ›—@k6D™9¦Ÿ#–j8â˜K˜@–F™ ™97q˜dñcë¾ò`礘@™¨ßŸ òc«¬ÒD˜KË7945Ë
˜@ÍD™qÔ¬™q˜Ká#–FЙ 
45–O¥¨˜n§ ¡@6D7¾™9®LÙOŸ#£¸§  ›Ÿ›ðA™q¥›él˜n˜n7¿y8 ˜@Ǥ™V8q¥› O˜i7¾79 O˜@–™9¦Á79˜K˜K•G7™ ÜL jÝ –Oǘi«_²Ÿ#6R O7q™q³k˜n—@7q O«¬–j£Y˜K¦˜˜n797n45«_µ 6R˜@7q™q™q™qk˜K—@–F O™y£Y¦¥›ªn7q˜˜¹79˜n¢5—K£Y O6
«¬£Y¡Kk798L˜K™97A˜Q£´¥›§ Á ˜Q•²#ŸÜLÝ O³#Çw˜K796#–O8q8q˜nŸ›8¾—@—KYŸ¡G–F¢i™q79£´½§ ðd£Y¡Ké`˜\¿y8yÇ
«j6R˜K7G™'£¸¥›§ ðA˜é`«_¿yŸF8TǨ¦™qµ Y۟–O˜n8±
ajouterGouverne retirerGouverne

getAdirs setAdirs

6Ÿ#Û –O 6²4
8T£Y˜n˜n86 O–F£¦¥›˜w j˜n˜K¥O8¹£´ ž¨
w²£¦Ÿ#˜\—@ O8i j³£[—K™9˜n6¡w7q£Y–j—K«O˜n O798n£YŸD8Vµl³¿d–j˜K–_˜w˜@™q6R™q8T¦˜˜n™I7qŸ#¥O45–#˜
¡@™I™q£YÙj6/«jŸp6#45¥O8V˜¤¡@˜@™9öâ˜\ÙO˜n8LŸ›™
—@¥›™q˜-6R O­j¡\68T8Q«O™q7œ¥›«_6R˜
˜n¦£¦™q¡n£k˜#6˜
ž`4Y—n—K6RÀn75458T˜5˜n£¦°ºŸ# 6 – @Ÿ#·F–2 Oµ ˜Ü £€£¸§ °ºŸ6–  ›™i8q·FŸ«j O¦™56A7i«¬˜K–—@˜KŸ7945–F45™9˜@Ÿ›7q™Q˜
¥›˜¥›89˜¤6a6R³ ›—KŸ™96RYŸ7I£k—@4
 j8Tc6D£¦˜n™9—K7IY˜@·F™q£¦ O˜\™q˜˜8
calculeAngles

45¥›˜V¡@™9£k6ÙOŸ›4¥›¡K˜V™q6iÙOŸ›¡@¥›™9¡˜I6 j«O–¤«_Ÿ#˜n­›£¦¡n®L˜G˜@™¾«j˜@6™7dŸ#£Y˜G–-神9Áޘn8T™qŸ˜n -796«j6R¥O7d6R–_ O8y–O˜V£¦˜\—@8¾Ÿ—@45£k64
898T6R˜\–_8d¥›8q˜G«_¡\4
—@k6R6R–p£YY O89˜n6R£¦–F£Y˜™µFñcïl뾟 Oò×7'ç+—@˜n£k6£Y6j–jž#6DŸ#™9–w O7q«j˜I689¥›8q˜I˜G—K˜K˜@–-™¾«jŸ6R­›7œ®L6R˜K45™i»rª@神97qÁ ˜
Ÿ# —KŸ454
6R–j¥›˜V4
6R–p O˜n£¦£Y˜\¼@µ
– 6¡K²#6£¦˜n45˜K–F™«j7q¡\—@k8T¡58T j7I£¦˜
8T¥›2k£´6R§ ²#6R79«O6«¬4˜K£k456R–F˜5™¾·F–2 O§ ˜
˜n8T—@™˜@«j™q™q6˜58y45£Y˜V¡@ïâ™9ÙOÁ Ÿ›¥›Ÿ ˜
«_ OŸ#–O O˜i³D—@6RŸ#¦45™I£¦45˜n³6˜K–j7V¥› O˜V–j4
˜6R˜K–pšO O—@˜n˜K£¦«O£Y˜™qµYŸ– ¥›˜5™L©p«_˜

<Oµ¾89¢5—@¡n«j–j66R7T™979¦¦7Ÿw¥›—K "Ÿ798q7q—œ˜\Ùj8T«¬¡K4
Ÿ–_65¥O«O6R–F79¡n™8q6R˜K–F "™q¡i—œÙj8q6 O–O7²£k˜n6545øj˜K²#–F O™G7q¥›˜
˜iù#£kžO6
79˜K³D«O6R79£Y˜K¡n O8q˜K7G–F°r™qŸ˜n O7798T–OŸ#Y˜i j8y«j°r6Ÿ#77q45 O–˜i¥›¥¨˜\§  O8–"²#©F¥›79kŸ#6R²#89—@79Ÿ#6«_4˜\458¾˜i¥›˜i¥›˜i£´§ 6a8q³p¡nY·FŸ O–2˜nµj–jï`—@˜QŸ# O£¦˜7
AppelantInvalideException

£´—K§ ˜KÁ £k6O•GžFÜLŸÝ –-Çâ8qµ  O«O«¬Ÿ#8q˜K7œ6Q·F O˜£¸§ 6a³p¦Ÿ#–w˜n8T™d˜n–-45Ÿ›¥›˜¥O˜G«OY£¦Ÿ™96²˜6 ›™qŸ#4


6D™qk·F O˜G˜K™y·F O˜£¦˜²©p79Ÿ#89—@Ÿ#«_˜ ô —@Ÿ–j–j6aók™yõ
€Ÿ# j8Q—KŸ–j8qY¥O¡K79˜K79˜KÚ5¡K²F6R£Y˜K45˜K–F™¹·F O˜w³#Ÿ j8Q¥›Y8q«¬Ÿ#8q˜KÚw¥O6–j8Q—œÙj6#·F O˜-—@£k6898q˜w¥¨§ Ÿ#«_¡n796R™qYŸ–j8Q6R  –OŸ4 ˜Kšp«j£¦k—@¦™q˜
»º˜@š ˜K™9—n¼@µ
–/¥OY6²7œ6R4545˜¥›˜i8q¡n·F O˜n–j—@˜V«¬Ÿ#898TY­O£Y˜V˜n8T™«O7q¡\8T˜n–F™q¡V8T O7¾£k6øj²# O7q˜3jµ
calculeValeur

3jµy–O£Y˜IŸ# j7q˜n8d«O–O79¡nŸ8q j˜K8'–FY™q–F˜n™q7d¡K²#79˜n7 #898q—@Ÿ˜V–j¢¹8A j45–/6¦¥O–FY™96˜K²–j7œ66R–#45™y456R -˜¥¨—KŸ§ ¡@45™œ6D«¬™œŸ8L7q±´™q™q˜K7œ6R45–j˜n8q–#¦™q™yYŸ¥›–j©p8n–jµ 6R45k·F O˜¥O -«OY£¦Ÿ™q˜6R ›™9Ÿ4


6D™9Y·F O˜#µ ¶ Ÿ j8y6R£Y£YŸ–j8

™9¥›ÁGY˜n·F -³ O˜n¥›˜–O¡K¦4
»r7¾79˜K66#«j7q—¯7œ7q™q6R¡\¦°L8T²#µO˜n˜yðc–#¥O™9–/¡¹˜45£¸«_§ 6R6RŸ›«j7I¥›«j˜I O6R–679—@˜K¡@™qY£¸™œ¦ž#°L6DžO—@™I£¦˜K˜V˜@£Y Ošp«O¦™q±ìY¡n£Y—KŸR7qjY™q˜K˜\˜I j8L™A67  ›Y–j™qŸ#6#45—¯™q¦6R°L™qµ kÛ·F OŸ˜V7œ89˜K·#–p j³˜'¼@Ÿ#žl£Y¦˜G˜V£¸§ «j6R¥›«O¦˜n£Y«_ŸR8¾™96R—K˜79Ÿ˜K«j–jY£`68qY8945²8q–O˜¾˜K˜\™Q˜K8'–
¥›¥O˜K45˜ ›Ÿ›š«j¥›¦£Y O˜GŸR–O™œ¥›¦6R˜™q²¡n«O˜8I¦™q£Y¥OŸRŸ#˜5™œ ›6R™q™q²#˜\˜K˜8¾456R£Y«j˜n ›8V8¾™9Ÿ¥›«¬4
˜nŸ › j6Dš 7±
 O–j[™9¡n8¥›˜V™9˜K45«j8¾˜K™7q˜\—K6£Y—K O£¦˜£Y˜n8—KŸ–j8q¦²#–O˜n8y¢5«j67T™9¦7¾¥¨§ ¡K£Y¡K45˜n–#™œ8¾˜@šp™9¡K79¦˜n O798d™9Ÿ ›™9˜n8¾£Y˜n8¾ j–O[™9¡n8¥O˜™9˜K45«j8nµ
PilotageAuto

 !#"  $%&'()*+,+,-&'./0213 4#05 006"37  +,#"(80 9*:&';<4"(0 9*#;


: Gyroscope : ADIRS : FMS : PA : EFCSAuto : Gouverne

calculeEtatAvion()
elaborerConsignes()
calculeOrdres()
calculeAngles(this)
changerAngle()

yú ûrüAý 3 à • Y6²7œ6R4545˜¥›˜i8q¡n·F O˜n–j—@˜
˜K¿dšF˜\™98¡K79¥›¦˜n˜n › Oš"7 6—@™qY³F¦™q¡\8G8q˜¹¥›¼@¡nž¬7q£YŸ#˜I O«O£Y˜KY–F£¦Ÿ™™q˜i¥›˜Q6 ›°º6 ™q @Ÿ#Ÿ#45–"6R—@™qkŸ#·F–j O—@˜ O797979˜n˜K¥O–F˜K™q³p˜#¦˜nµ¬–FÇp™y`Y£¦–j˜6#él—¯™qꝦ°Lǵ ˜\8L™¦–j6#—¯™9[°G»¸8T©p4Q­¬Ÿ£Yk8T¡i«_6R7G j–¡@™œ6D™
ꟛ¥›¡n£¦k8q˜K7¾£Y˜V—KŸ45«¬Ÿ7q™q˜K45˜n–#™¥› /«OY£YŸR™q˜i6 ›™qŸ#4
6D™qk·F O˜V²7 —K˜¢ O–¥›k6R²#796445˜V¥¨§ ¡@™96R™98T±¸™9796–j8q[™9¦Ÿ#–j8Kµ
FMS.Inactif

Û ˜V¥OY6²7œ6R4545˜V¥2§ ¡K™96D™œ8L±´™q7œ6R–_8T¦™qYŸ–j8'79˜K«O79¡n8q˜K–F™œ6R–F™d£Y˜i—@Ÿ#4«¬Ÿ7q™q˜n45˜K–F™¥› /ïâÁ˜\8L™«j7q¡\8T˜n–#™9¡I8T O7¾£k6¹øj² j7q˜ ›µ
tm(en(PilotageAuto),2)[not in(FMS.Inactif)]
Inactif

Actif
en(FMS.Inactif)

tm(en(Envoi),2)/envoiConsignes
Envoi

tm(en(Calcule),1)/calculeConsignes
Calcule

úyûrüAý à • k6R²#796454˜V¥¨§ ¡@™œ6D™98T±´™q7œ6R–j8q[™9¦Ÿ#–j8'7q˜n«O79¡n8q˜K–F™96–#™y£Y˜i—@Ÿ45«¬Ÿ7q™q˜n4˜n–F™¾¥O ï¨Á

sutwvyxlzd{@z'v
yT~ ‚jƒ…„F†…‡dˆp‰`ˆOŠL‹d‡ŒŽG‚O‹c‘L’…“”†
˜K¶ –_Ÿ#Û8T j˜nŸ84Q7œ896R­O·#£Y£Y£¦ j˜\Ÿ#¼@˜i–jž#8£¸Y§£_Ÿ45˜\–8L˜@™'™q¥›™q ›Y798q™q˜¹«¬Y£YŸ#˜n˜8q–˜¹¥›I˜¥¨¥› O§  OY³p8q–79«¬˜i6Ÿ#²£¦8q˜¹˜K797d¡K45²F¥26D¡n§ ™G O—K6–-¥¨–O§ 4kŸ8T­›45¡\®L—K˜K˜¹6™9–O8¥2Y§¦8q»ºÊÌ45—KÈ@Ÿ˜É945ÍD¥¨ÈÕ45Ч 6›˜Q—nɯ—@«jµ ª\68A7G–¢i˜@š›8q[™9˜n˜n¡K8d47œ¡K6D«j£Y™q¡K£¦˜n˜45 O O7G˜K–F–O«¬™œ˜¹˜K8G79£¦45»rk8L«¬™9˜@Ÿ˜™I jž¬7d¥› O˜Q£Y–˜n8'79˜n¡n–j66
w8q£¦k˜K8q—œ4Q˜KÙO7G­j˜n£¦7c j˜¹–"«jŸ6R«j "7d6R˜@ O7œš›—@–˜KŸ#45 O4Q7œ«O O8G£Y£¦˜\™q¥›¼@¦˜ ± µ
™qŸ# j8y£Y˜n8¾¡n£¦¡n4˜n–F™98¾¥›˜I£´§ 6²79¡K²F6D™nµ

• ˜\8¾˜@š›˜K45«O£Y˜I¥¨§ 6R²79¡K²F6D™œ8A˜K™£¦˜\8¾[™9¡K7œ6D™9˜K O7œ8y6898TŸ›—@Y¡n8y8qŸ–F™¾«O79¡n8q˜K–F™q¡\8¾8T O7¾£k6¹øj² j7q ˜ Oµ


¥›¢¹¡K™q™qŸ#˜K j– 79458y[£¦™9¦˜\–j¡K8y7œ¡c6D™L˜K™q©p–I˜n«_ O«O˜\75798¾ŸR8T¥¨™9 O¡K§ 756R²#²˜n O796R–u¡K–F²F™¨6D6R£k™œ²#6¾8d7q8L¡n˜K™9²#™7q6R j¢™Q—@™q™q«_ OŸ˜n79 _7q˜c8y45Y£¦–F˜K˜\™q™
8y˜K79¥O«j–OŸ6R˜c–j7œ—@¥›—Ÿ#˜A O¥¨£¸79§§ 68'6R—K²#«¬—K7qŸ#¡n¡n¥›89²#8T˜n6DY7
­O™\µ £Y6R˜n ›8¾–Vš 8q O«_¡n7¾˜n£¦ ›¡n O4™`–/6˜n45¦–F–j™9ÀK8q8545¥›¥›˜k˜8q™L«_©p£¸ŸF§ «_6R8T²#˜i˜n7q7…¥¨¡n¥¨²#§ 6R§6D O²#™5–i7q¡n8T45²# j6R¦¡n³D™n—n6Rµ 6R–F–O™5k8T O45– ˜c«j—KŸ6R457œ—@4QŸ# O O79– 8


Exception

PlusElémentException Itérateur Agrégat

avancer() créeItérateur() : Itérateur


« send » estTerminé() : boolean
élémentCourant() : Object
« send »

ItérateurEnsemble Ensemble

ItérateurListe Liste

ItérateurMultiEnsemble MultiEnsemble

¦úy™q¡KûrüA7œ6Dý ™9 ˜K Oà 7œ8y• 6Y689²8TŸ›7œ6R—K¦45¡\8 45˜G¥›˜—@£k6898T˜¾«O79¡n8q˜K–F™œ6R–F™A£Y˜n8cY–F™q˜n7T°º6#—@˜n8'ã¯ÈÕÐ@É9ÍDÈÕЛɘ@™ßAíÉqÐìí#ÍRȀ˜@™y·# j˜K£k·# j˜n8A6²79¡K²F6D™98l˜K™d£Y˜K O7œ8


y Ž†…„#ˆOŠL‹d‡G„
 

ùµy£Y—n˜
6D™q¥›¡nY²6Ÿ#²7q7œY6R˜n458'¥¨45§ Ÿ˜ ­›®L˜K™98I  ¥›˜5£k6-ø_² O79˜ ¤«j7q¡\8T˜n–#™9˜¥O˜K ›š¦–F™q˜n7T°º6#—@˜\88q«¬¡n—@¦ø_6–#™I£Y˜n8I8q˜K79³pY—K˜n87q˜n–j¥› j8V«_6R7i¥›˜n ›š
  

à 㦘\8y[™9¡K7œ6D™9˜K O7œ8KžO·F·F O O`2«_°rŸŸF O8T¦79™q–OYŸk8q–O8q–j˜K–F˜I™y£¸§ £¦¡K˜\£Y8¡K458T˜n˜K7q–F³p™Vk—@—@˜\Ÿ8' j8q79 O6Y–#³D™G6R–F8q™9 O8V7 £´§ ¡K£Y¡K45˜K–F™8q OY³D6R–F™G¥›˜Q£´§ 6R²79¡K²F6D™\µ_¿d˜@™T™9˜i45¡@™9ÙOŸ›¥›˜


£YªK³#˜ j–O˜˜KšO—@˜K«O™q·FYŸ O–¤j79¥O˜K˜G–p³#™L©pŸ«¬Y˜¾˜  O–w­¬ŸFŸ#£¦¡n˜K–w·F O¬˜n8T™A³p796_8qj8nŸ#§ –w¦£â6I–2§ ™q©w˜n7q6Q45«jY£¦–O j¡8¾£Y¥2˜G§ «j¡n£¦6¡n794—KŸ˜n O–F7œ™98€8y¥›¥O˜6R–_£¸§8d6R²#£Y˜7q¡n«j²#6R6D7œ™\—@µ#Ÿ#¿d O˜K798…£k6 Ä
avancer()

à 8qY²–O¦øj˜I·F O˜ 8T³˜nŸ#79¦6˜I³p j7œ– 6RY˜898T¨Ÿ#–/·F˜n O8T`™¾˜n68T ™G¥O£´§ ˜K¡n£k£¦¢


¡n45¥›˜K –F¥›™˜K—K79Ÿ–O OY˜K7œ7y6R–F¡K™G£Y¡K¥O456˜K–j–F8™G£´¥›§ 6˜I²79£´§¡K6R²F²6D79™n¡Kµâ²F¿d6D™…˜@™TÄ ™9˜Q45¡@±
PlusElémentException

#
· j
  ×
 9
7 K
˜ p
–
estTerminé()

à ™9ÙOŸ›¥›˜/£¦ªn³˜/ O–O˜/˜Kš›—K˜K«›™9¦Ÿ#– ¥O˜¤™L©p«¬˜
estTerminé()
8n§ Y£¾–2§ © 6«O£¦ _8
¥¨§ ¡n£¦¡n45˜K–F™98
¥O6–j85£Y˜
«£¦˜\8-_6R67œ²—@79Ÿ¡K j²#6R798n™9µ8nžc·F O°rŸ# O7q–jY898T˜n–F™- O–8q˜K O£8T˜n7q³pk—@˜ž
élémentCourant() Object

·F O7q˜n–F³#ŸY˜/ O– 8T O7
PlusElémentException

à £¸§ 6R²#7q¡n²#6R™nµ créeItérateur() Itérateur


 O˜V«¬˜K–j8q˜KÚK±´³#Ÿ j8y¥› —œÙOŸ#[š¥›˜n8yY–F™q˜K7q°º6—K˜n8y«j67¾796«O«¬Ÿ7q™y¢5¥›˜\8—@£k6898T˜\8y6R­j8T™q7œ6R¦™q˜\8 
Û¥›˜\6I8¾·#—@ j£k6˜n8T89™q8TY˜\Ÿ8¾–6R«_­jŸF8T™q8T7œ¡n6R˜¾¦™qY—K˜\O8'˜n˜@8T™G™A¥›—@£k˜\68y89¦8T–Fk·F™q˜n O7T˜V°º6#ÂR—@Y˜\£j8K8Kµ § 6R²#[™A¥O˜ ô ¥O¡K­j6R™T™q79˜Gõ¥›˜n8A6a³a6–F™96R²#˜n8`˜@™cY–j—KŸ–p³¡n–O¦˜n–F™98l79˜n8q«_˜\—¯™q¦°º8
¡\­O• —@ O6R79™9–j¦8n798µ˜QÜ –O¥›£¨Ÿ˜³D™q6R79—@˜ ›Ÿ›™¾¥›—n˜Q6458n«¬¦ž¬˜nŸ™q › jŸš¤7 O¥›™q—@˜nŸ#˜\8–j8G£Y—45˜n8 ›¡K™q™q45YÙO£YY¡@Ÿ›8q™9˜K¥›ÙO7˜\Ÿ›89¥›¥›¼@˜nµ˜n ›8I• š-¥›˜QY˜ –F«O™q£Y˜K j7q8n°ºž_6£Y—K˜n˜n88y¦«¬™q¡KŸ7œ O6D˜@7¾™9™i˜K—K O¥›Ÿ7œ˜–j88q˜K˜K79™³˜n£Y˜n7d8£k66R²#«_7q8TŸF¡nŸ#²#8q–F8q6D™V¦™œ­j68y¦­j£Y–O[™98L˜Q™9¡I79«¬¥¨6Ÿ#[§ ™9 O89˜n8q™q8ªnY£¦¥›k»r8T˜nŸ#˜n–#–7¾™ O–O«j–O˜6˜I8«¬79˜K¥¨˜K ›§£k6D™I6D™T™9«j™9¦Ÿ#7q6#¦– 8±
Itérateur Agrégat

¥¨§ ÙO¡n7q¦™96²˜V«_Ÿ# O7¾£Y˜n8¾—@£k6898q˜n8'7q¡\6R£YY896R–F™ Ÿ#  µ


:›µy¡\—@79¦79˜£Y˜i—@Ÿ›¥›˜  —@Ÿ#7q79˜n8q«_Ÿ#–j¥O6–#™¾6R Oš¤¥›˜K Oš¤Y–#™9˜K7q°º6—K˜n82Ä Itérateur Agrégat

€Ÿ#¦£k6£¦˜i—KŸp¥O˜V¥O˜n8¥›˜n ›š-Y–F™q˜K7q°º6—K˜n8VÂ

/**
* <code>Itérateur</code> définit une interface pour tous les
* itérateurs sur des agrégats.
*
* @author <a href="mailto:garion@supaero.fr">Christophe Garion</a>
* @version 1.0
*/
public interface Itérateur {

/**
* <code>avancer</code> positionne l’élément courant sur
* l’élément suivant dans l’agrégat.
*
* @exception PlusElémentException si on a fini de parcourir l’
* agrégat
*/
public void avancer() throws PlusElémentException;

/**
* <code>estTerminé</code> permet de savoir si on est à la fin de
* l’agrégat.
*
* @return un <code>boolean</code> qui est <code>true</code> si
* on est à la fin de la liste.
*/
public boolean estTerminé();

/**
* <code>élémentCourant</code> renvoie l’élément courant.
*
* @return un <code>Object</code> qui est l’élément courant.
* @exception PlusElémentException si on a fini de parcourir l’
* agrégat
*/
public Object élémentCourant() throws PlusElémentException;
}

/**
* <code>Agrégat</code> représente un agrégat d’objets pouvant
* être manipulé par l’intermédiaire d’un itérateur.
*
* @author <a href="mailto:garion@supaero.fr">Christophe Garion</a>
* @version 1.0
*/
public interface Agrégat {

/**
* <code>créeItérateur</code> crée un itérateur pour l’agrégat.
*
* @return une instance d’<code>Itérateur</code> spécifique pour
* l’agrégat.
*/
public Itérateur créeItérateur();
€8qŸŸ#–F j™¾8y£¦˜\7q˜n8y4
˜@šO6R—@7œ˜n·#«› j™q˜KY79Ÿ˜K–_ÚG8¾·F·# O j˜V2£´«_§ Ÿ#˜n– O³¥›˜nŸ#–F[™™¾À@­O™qY79˜K˜V–/£¦8q˜n«_³¡\¡n—@˜n¦8yøj¢5˜K7¾£¸§¥OY–#6™9–j¡K8'79¦£Y˜n65 O8q7¾¦²#¥›–j˜i6D—@™9˜\ O8y7q˜V45¥›¡@˜\™q8dÙjŸp45¥O¡K˜n™q8nÙOµ Ÿ›¥›˜\8¾¥›˜ F·  O˜K£Y£¦˜\8
}

Itérateur

<Oµy˜K¡\™—@797q¦˜n79˜d–F³# jŸD–O©#˜¾6—@–#£k™'689£¦˜V8T˜ –OŸ#4Q­O79˜I¥¨§ ¡K£Y¡K45«_˜KŸF–F8q8q™9¡n8¾¥O¥O6˜I–F™`£¸§ 6R O²#–j7q˜¾¡n²#46D¡K™×™qÄÙOŸ›¥›˜


Utilitaire
«O79˜K–j6–#™l O–
nbEléments Agrégat
˜K–«j6R7œ6R45ªK™q79˜
/**
* <code>Utilitaire</code> est une classe manipulant des agrégats.
*
* @author <a href="mailto:garion@supaero.fr">Christophe Garion</a>
* @version 1.0
*/
public class Utilitaire {

/**
* <code>nbEléments</code> permet de déterminer le nombre
* d’éléments d’un agrégat.
*
* @param ag un <code>Agrégat</code>
* @return le nombre d’éléments de ag
*/
public static int nbEléments(Agrégat ag) {

Itérateur i = ag.créeItérateur();
int nb = 0;

try {
while (!(i.estTerminé())) {
nb++;
i.avancer();
} // end of while (!(i.estTerminé()))
}
catch(PlusElémentException e) {
System.out.println("Accès au delà du dernier élément !");
}
return nb;
}

j«Û 6˜7T™9­jY ›—K™Q O£Y¥›¦˜n˜
7nµ —@˜KµÛ ™T6 ™q˜w45·F¡@ O™q˜\Ùj8LŸp™9¦¥OŸ#˜ –¡K™96[™i¥›˜
³#Ÿ j8˜n8T°º™/6RY798T˜™96R4
™qk·F6–O O¦˜«jžy O˜K£¦˜n£Y£Y7V˜£Y6–O˜–OŸ4
™qY6RŸ–O– Y«O¥¨ O§ £Y¦˜™q¡n«j796R6™q8/˜n O¥¨7i§ ¦–_8q68L–j™œ6R8V–j6a—K³˜nŸ#8¦7V¥›˜¥¨§ [£k™96 ¡K7œ—@6D£k™q6˜n89 O8T˜7
}

nbEléments

3jµyŸ#¥¨–§  O–O³D6˜¹—@45£k6689¦8T–F˜ ™9˜K–j6–#™I¥›¡Køj79–O¡nY6R7£Yk j8q6––#¦™¾™q¡n£´79§ Y6R–F™q™q˜K˜n j7T°º76#«_—@˜ 6R7q™qk—@ O£Y¦˜n7I8T O»º—@7V°LµO Oøj– ²# O6R²#79˜7q¡nR¼²#¯6Rµâ™G¿d«j˜@6R™T7q™9™q˜ik—@—@ j£k6£¦Y89˜K8T7\˜Iµâ79ï`˜KŸ#«j O7q7I¡\8T—@˜n˜n–#£Y™96j˜ž¬ jŸ#–"–6R¥›²k8q79«_¡K²FŸF6D8T˜™


Utilitaire

Y¥¨Û –O§˜n¦Ÿ8y™q­Ok6R45®L˜@£Y˜¡@™9™9ž›8AÙO4
8TŸ›Ÿ#6R¥› jk˜n8`8'8°rŸŸ¥O–-79˜ 45«¬Ÿ˜y j¥27q§ 7œ O6i–5Y–F™œ6R™q8T79­OŸ#Ÿp£Y–#˜n¥O™¾6 O £Y¦˜n79¥O˜8¾©F8q«O–_ O£¦6R _Y³a458'6¥2Y–F·F§™q O¡n˜n£¦˜#8V¡nµF4 ¿d˜n˜'–F™9™98¾6­O¥O£¦6˜\–j6R 58'£¦˜n˜8T™A™96¥›­OŸ#£¦–j˜\6R—' ˜@šp·#™q j˜n˜–j8T£kY6¹­O£Y³a˜I6£¦ÂR˜nŸ O–57y£Y¥› O˜Vj¥›£Y6QŸ#–O™96–O¦˜¾£Y£¦˜V O–jY–O˜y¦™q™9k6R6RY£Y£Y˜£¦˜ µ
Tableau Agrégat

à –O¡n—K˜n898q6¦79˜cÄ Tableau
ajouter(o : Object)
«¬˜K7945˜@™I¥¨§ 6D®LŸ O™q˜K7 O–¡K£Y¡K45˜K–F™I¢-£k6-øj–¥› ™96­O£Y˜n6R ˜@™i6R O²#45˜K–F™q˜8q6-™96¦£Y£¦˜58q
97 ˜K–p³Ÿ#¦˜£k6Q™œ6RY£¦£Y˜I˜K–j˜@£¦öâªn³˜n˜V—@™q£¸Y§³¡K˜I£Y¡K¥›45 ˜n–#™96™G­O8q£Y¦˜n™q6R O I¡iÄ ¢£k6¹«¬Ÿ#8q¦™qYŸ–
ÃÃ getTaille()
¥›Ÿ#[™ À@™97q˜—@Ÿ45«O79k8 8q2˜n–#£k6¹™97q«¬˜Ÿ#8q¦™qYŸ˜K–™ –2» § ˜\8L™«_68¾—@Ÿ#7q79˜n—@™q˜cÄ ¼@µ ¿d˜@™T™9˜ ¥O45 ¤¡K™q™œÙO6RŸ›­O¥›£Y˜n˜6 27qµ ˜n–p³ŸY˜
retirer(position : int) position
 O–O˜
79˜K–p³8qŸ#2¦£¦˜ ˜V™œ£¦6R˜ ­O£Y«O˜n679˜K ¤45˜\Y8L˜K™¾7³pk¡K¥›£Y˜c¡K45Ä ˜K–F™ ¥› !™œ6R­O£Y˜n6 2µ ¿d˜@™T™9˜ 45¡K™qÙOŸ›¥›˜ 7q˜n–p³ŸY˜  O–j˜
position getTaille() - 1

à ArgumentInvalideException

7q˜n–p³8qŸ2Y£¦˜ ˜V™œ£¦6R˜­O£Y˜n¥O6˜K ¤79–O˜\¦8L˜n™¾7 ³pk¡K¥›£Y¡K˜c45Ä ˜K–F™ ¥›  ™œ6R­O£Y˜n6 2µÞ¿d˜K™T™q˜45¡K™qÙOŸ›¥›˜ 79˜K–p³#ŸY˜  O–j˜


premierElément()

à TableauVideException

¥›Ÿ#[™ À@™97q˜—@Ÿ45«O79k8 8q2˜n79˜K–#£k6¹–p™97q³«¬˜Ÿ#Ÿ#¦˜8q¦™q£¸Y§ ¡KŸ˜K£Y–™ ¡K45–2» ˜n§ ˜\–#8L™G™8q«_¦™q6 O8¾¡i—@Ÿ#¢7q£k796¹˜n—@«¬™qŸ#˜c8qÄ ¦™q¼@YµŸ– ¿d˜@™T™9˜ 45¡K™qµ ÙOŸ›¥›˜7q˜n–p³ŸY˜
dernierElément()

à TableauVideException
getElément(position : int) position
 O–O˜
ÃÛ 6¹–jŸR™q˜i8q O7¾£Y˜I¥›Y6²7œ6R4579˜@45™qŸ#˜ O79«j–O7q˜¡\—@ jk8T–˜V¦£Y™q˜i¡n79—@6RŸ™q79˜n«j O8y7¥›8T˜I j7¾£k6£¦˜4™9¡K6™q­OÙO£Y˜nŸ›6R¥› …˜ µ
position getTaille() - 1

¥›˜ µ
ArgumentInvalideException
créeItérateur()
créeIterateur Tableau

Itérateur Agrégat

avancer() créeItérateur() : Itérateur


estTerminé() : boolean
élémentCourant() : Object

Tableau

tab
ItérateurTab + Tableau(tailleInitiale : int)
+ ajouter(o : Object)
+ retirer(position : int)
+ premierElément() : Object
+ dernierElément() : Object
+ getElément(position : int) : Object
+ getTaille() : int
+ créeItérateur() : Itérateur

return new ItérateurTab(this)

yú ûrüdý à • Y6²7œ6R4545˜¥O˜i—@£k6898T˜\8d«j7q¡\8T˜n–#™œ6R–F™y£Y65—@£k6898q˜ ItérateurTab

»¸6#¼·F O˜K£k8¾8TŸ#–F™y£Y˜n8¾6R™T™97qY­O ›™œ8¥›˜  • Ÿ#[™q±´Ÿ#–8T™qŸ›—˜n7y£¸§ ¡K£Y¡K45˜K–F™G—KŸ O7œ6R–F™¾¥› ™96R­j£¦˜\6R  


Û ˜¥›Y6²7œ6Rµy45¿d45˜K™T˜Q™q˜¥›˜6#8q£Y8q6wŸ›—@øjk²6D j™qY7qŸ˜ –+5–³DO6 Ÿ#8q j˜-8G™9Y79–j6#¥›¥›k·F O OY7q˜5˜·#˜K …– § Y£l ˜@š›Y8T™q«j˜¹6 O7–O£´˜5§ ¦–F6™q89798TŸ›Ÿ›¥›—KY j6R—@™q™qYŸYŸ–– ˜K¥2–F™9§  O7q˜–u6D™q™q79¦­j ›™w¥›˜™L©F«¬˜K˜™
ItérateurTab

—@˜K™¾6R™T™97qY­O¥O ›6™ –j8 µ µ • § 6R«O79ªn8€£Y˜G–jŸ4 ¥›˜79½£Y˜G¥›Ÿ–j–O¡G¥O6–j8€£´§ 6#8q8qŸ›—@k6D™qYŸ–…žRŸ–


«¬˜K ›™y6R«O«¬˜K£Y˜K7
ItérateurTab
Tableau
Tableau ItérateurTab

°rÛ Ÿ§  O[™979¡K–O7œY6D7¾™9˜K O O–O7'˜V³D456¹¡@8q™9˜KÙO79Ÿ›³p¥›¦7y˜ ¥¨§ ¦–F™q˜n7q45¡\¥›Y6¦79˜˜K–F™q·F79 O˜G¨£k796Q˜K–p£Yk³#8L™9Ÿ˜Y˜˜K£´™'§ ¡n£´£¦§ ¡n ›45™qY£¦˜Kk–F896D™G™q—@˜nŸ# O O779¥›6˜–F™y£Y6¹¥› £YY8T™œ™q6R˜#­Oµ £YÜ ˜n£¬6³D 26¹µ ˜K–«j6R7q™qk—@ j£¦Y˜K7
tab

• ˜n8q ›Ÿš¦™¾8qŸŸ–/£Y ›8L™9™9¦Ÿ#Ÿ›–j—8y˜V8K§˜@ŸRš›öâ«O7q£Y˜nY—K–F[™¾™9˜K¢45–O˜KŸ#–F j™8V£´§Â ¡n£¦¡n45˜K–F™—@Ÿ j796–#™¥O6–j8
élémentCourant

Ä ˜n8T™—@˜K™T™q˜i8qŸ£Y ›™9¦Ÿ#–/·F O×˜n8T™
Ãà 8qŸ¦™Ÿ–8T™qŸ›— ˜V£´§ Y–j¥›k—@˜¹¥›˜I£¸§ ¡K£Y¡K45˜n–#™—@Ÿ j796–#™¥O6–j8 ×
µ 
¿ §
79£k6¹˜@™9™9˜K6–p¦ O£Y£¦˜y˜I«¬¥›Ÿ  O™œ7A6R¥O­O˜n£Y˜n8l67œ ¤6Rk˜K8TŸ#™9—n–j¼@8€µ ¥›˜y°º6—K¦£Y¦™q¡¥¨§  ›™qY£YY896D™9¦Ÿ#–/»º4
6R–OY«O O£k6D™9¦Ÿ#–5¥2§  O–5˜n–#™9¦˜n7nž#—@Ÿ45«j6796Y8qŸ–¹6a³˜n—
ItérateurTab
ItérateurTab
»º­_¼—@·FŸ# O–j˜K8L£ì»º™98œ7q¼ _—¯³D™q6j˜n O»rŸ#7y–F«j™œ6R¼7À@¥O™9¡@7q˜u°º6R O£Y˜#™ »º 8œ¼ —@Ÿ#–j8T™q79 j—¯™9˜K O7a»º8œ¼¥›˜ £Y6—K£Y6#8q8q˜ ItérateurTab
 • Ÿ¦™T±ìŸ– ²#679¥O˜K7 O–

Û¥›˜˜—@Ÿ79«j8¥›˜Q£k6w45¡@™9·FÙO OŸ›'¥›˜«O7q˜n–j¥  O– Ÿ­›®L˜K™¹¥›˜w¥›™L˜ ©p«¬˜ –OŸ# j˜K8– «O7q«_¡\6R—@7œk6R8T˜45·Fª@ 2™97q§ ˜#Y£`µ ˜@š›Y– 8T™q–O˜¹˜ O¥›–Ÿ—K¦™¹Ÿ–j«j8T6#™q8i79 j¡\—@—@™q79˜K¦ j79˜7


™9¥›6˜Q­O—K£¦˜\Ÿ6R–j /8T™q679 j898T—¯Ÿ›™9—K˜K¦ O¡V7G¢«j£¸6R§ 7G[™9¡K¥O7œ¡@6D°º™96R˜K O O™7¾»r«¬´µ Ÿ˜ Oµ_7¾896R£Y–_˜i8—@Ÿ#«j–j68T79™q6794 O¦ªK79™q˜79µ ˜n8œ¼¯žO—n6R7Ÿ#–"6w6R­j8qŸ£Y O45˜K–F™­¬˜n8qŸY–"¥›˜¹—KŸ–O–_6aók™q79˜I£¦˜
créeItérateur Tableau

ItérateurTab Tableau

»¸—n¼¤¡n¥›—K˜K7q³pY797qŸ˜5–F£Y™y˜-«j—@6Ÿ›8y¥›«O˜ 79Ÿ«_6R ²˜n7y¥›˜w£¦˜\£k8y6¡K—@³£k˜n6–F89™q8T O˜ ˜n£¦£Y˜n8y˜Kš›—K˜K«›™9¦Ÿ#–j8y£k6R–j—Kµ¡K˜nÛ 8y˜\¥O8I645–j8¾¡@™9£YÙO˜n8yŸ›¥›45˜n¡@8¹™9ÙO¥›Ÿ›˜ ¥›˜n8G¥›˜


ItérateurTableau ItérateurTableau
µ –O˜
Tableau

/**
* <code>ItérateurTab</code> est un itérateur pour un tableau.
*
* @author <a href="mailto:garion@supaero.fr">Christophe Garion</a>
* @version 1.0
*/
public class ItérateurTab implements Itérateur {

private Tableau tab;

private int elementCourant;

/**
* Crée une instance de <code>ItérateurTab</code>.
*
* @param l la <code>Liste</code> associée à l’itérateur
*/
public ItérateurTab(Tableau t) {

tab = t;
elementCourant = 1;
}

/**
* <code>avancer</code> renvoie l’élément suivant dans le tableau.
*
* @exception PlusElementException si on a fini de parcourir le
* tableau
*/
public void avancer() throws PlusElémentException {

if (estTerminé()) {
throw new PlusElémentException();
} // end of if (elementCourant == tab.getTaille())
elementCourant++;
}

/**
* <code>estTerminé</code> permet de savoir si on a fini de parcourir
* le tableau.
*
* @return <code>boolean</code> qui est <code>true</code> si on a
* fini de parcourir le tableau
*/
public boolean estTerminé() {

return (elementCourant > tab.getTaille());


}

/**
* <code>élémentCourant</code> permet de récupérer l’élément
* courant du parcours.
*
* @return un <code>Object</code> qui est l’élément en cours
* @exception PlusElémentException si on a fini de parcourir le
* tableau
*/
public Object élémentCourant() throws PlusElémentException {

Object o = null;

if (estTerminé()) {
throw new PlusElémentException();
} // end of if (estTerminé())

try {
o = tab.getElément(elementCourant - 1);
}
catch (ArgumentInvalideException e) {
}
return o;
}

 O£Y˜
˜K£k·F—@Ÿ# O–j˜n8y8L™9797q˜K _4
—¯™q6˜n79 O·F7V O–O˜\8G˜5 «_ŸF8q6[™I6R­_8TŸ#£¦ O45˜n–#™V«j6#8I¥›˜5«O7qŸ#­O£YªK45˜¥Oªn8V£YŸ7œ8·F O˜5£´§ Ÿ#–6a³D6R¦™IY¥O˜K–F™q¦øj¡
—@Ÿ#7T±
}

79£k6˜n—@45™q˜n¡@4™9ÙO˜n–FŸ›™y¥›˜ £Y˜n8¾6R—@™T˜n™9–#7qY™9­O796 ›£¦™œ˜8õ+¥›˜I˜n£k8T6™¹—K£k6"£Y6#8q458q˜c¡K™qÄ ÙOŸ›¥›˜


à 456«O¡K«¬™q˜KÙO£YŸ›˜K¥›7 ˜V79˜K–p³ô Ÿ#¦˜ 6£¦Ÿ#798T8y¨Ÿ#·F–¤ O˜I65£´¥›§ Ÿ#¡K–¤«_6˜\898L8T™G¡¥›£¦¡T˜I®T¢5¥›˜n8T7q O–j7¾¦˜n£Y˜i7'¡n¥›£¦˜n¡n7q45–OY˜K˜Kµ –F7¾™Ü £A¡n¥›£¦°º¡n -645£¦™œ£k6R˜K6R–F¦­O™¹™£Y˜n­j¥›6¦  ˜n– ™9»º6R˜K—@­j–Ÿ#£¦4˜\«j6R6R«j _7q7q¼â™q˜nkĖj—@ j¥›£¦79Y˜-˜K7\·Fžp OŸ˜¤–—K«_˜@˜n™T ›™9˜™
estTerminé

£k£k66+£Y45Y8T¡K™q˜#™qÙOµ Ÿ›Ü ¥›£˜ °º6R ›™/¥›Ÿ–_—/°º«¬6R˜KY7q O˜™  O£k– 6R–_™q—@˜\˜K8L7™ O8T–O O˜7 8T§ ¦–jŸ—K7q–”¡n456 ˜K–Føj™q–j˜n57-¥O£k6+˜ ³D«j6R6£Y79˜K—K OŸ7 O79¥›Y˜7
true

à avancer()
a
6 a
³ 
6 F
– ¤
™ ¨
¥
£Y«¬˜5Ÿ j«O³a79Ÿ6­O[™d£YªK7q45˜n–F˜³#ŸD«O©7q˜nY–j7חKµ¨ O¦ïl«j–jŸ#6˜ £€ O7·# j—@˜nc£Y8T6j˜ž›Ÿ«_–ŸF8q ›6™q[™IY£¦k¡K8q™9˜I6R£Y¦65™i45¥¨§ ¡@ ›™9™qÙOY£¦Ÿ›k8q¥›˜Kµ˜ 7I£k6-–545 ›™q¡@Y™9£YYÙO8qŸ›˜G¥›—@˜ ˜K™TÄ ™9˜G45¡@™9ÙOŸ›¥›˜G¥O¥›6˜ –j8€£k6V4¡K™qÙOŸ›·#¥› j˜ 
avancer PlusElementException
elementCourant

à elementCourant estTerminé

£YÝ ˜n8˜K4
˜@šO6R—K7œ˜K·F«› O™9˜K¦ÚGŸ#–j·F8 O˜¥O˜ £´§ ˜Kš›—K¥›˜K˜ ž¨«›Y™9£×¦Ÿ#°º–-6£¦£k8q6R_¦£´™§ ˜K™qšO7œ—@6R˜K¦™q«O˜K™q7YµcŸ£Y¿d–-ŸpŸ—n˜\456R8L£Y™'˜K4545£¦˜n˜Q³˜K£Y–F¡n˜5˜¹™V8T—@»r D«_˜@®L™q6R˜K™q7œ™˜—@«j˜˜@7qšO·F¡\—@ O—@˜n˜k«›8q6£¸™q§ Y[ ›™VŸ™9–·#¦£Y jY¥O89˜¹6R6D–j™9£´˜K§8Ÿ# O– O7y––2–O˜¹§ ­O6i£Y«OŸp«_79— 6Ÿ8d«j³6¡K²79˜n¦6øj[¡™·F«j O6˜8 µ
getElément Tableau

ArgumentValideException
élémentCourant() ItérateurTab

ðA£Y˜–›™9øj6–2­Ožâ£¦˜\Ÿ6R–  ›–2™q§ Y6a£Y³aY8q6˜¹[™¾ j«j–6#Ÿ8¾­O¡@®L™9˜@¡V™V˜K¦–F–F™q™qY˜n˜K7q7945˜K45¡\¥›˜KY–F6™¾¦79«j˜ 679—Kž2Ÿ—K O6797G _£k¼¯6-ž›£k456¡@45™9ÙO¡@Ÿ›™qÙj¥›Ÿp˜5¥O¥›˜IŸ7q¦™˜n–FŸ#³#­OŸ£YY¦˜²F6D£´™q§ ŸŸ#­›¦79®L˜K˜K45™ ˜n–#™8T˜Qµ ™q˜K7945¦–j˜K7


Tab try/catch

null
o
_« 6R7 µ
›µy¡\—@79—@¦7979¡K˜˜V j O–O–O˜i˜I—@Y£k–j68T89™98T6˜I–j¥›—@˜˜I™9¥›˜n˜ 8T™
return

›
¥ 
˜ œ
™ R
6 Y
 ¦
£ Y
£ Q
˜ y
: Ä ¥OŸ–F™£Y645¡@™9ÙOŸ›¥›˜I«O79¦–_—@Y«j6R£Y˜5Â
Ãà 6D®LŸ# ›™q˜™q79Ÿk8yY–j8L™œ6R–j—K˜n8¾¥›˜
—à  ›@79™q¡KY£Y˜VY8q O˜–/—K˜@¦™q™¡K7œ[™96D¡K™97œ˜K6D O™q7¾˜n O8q O757¥O£Y6R˜–j™98Q6R­j O£¦–O˜\˜6R I­_Ä Ÿ# j¢
—@£Y˜—K˜»ºŸ™œ6R– ­O£Y8q˜n O6«O I«¬ÄŸ#8q˜¤·F O˜£´§ Ÿ#– –O˜¤—KŸ–O–_6aók™¹«j6#8Q£k6"£YŸ–O²# O˜K j7Q˜@öâ˜n—@™qY³˜
TestItérateurTab
Tableau
Integer

à ¥› ™96­O£¦˜\6R _¼˜K™Q6R«O«¬˜K£Y£¦˜5£k6/45¡@™qÙjŸp¥O˜
™9™L©p6­O«_£¦˜ ˜\6R 2µ Û 6545µ ¡@™9ÙOŸ›¥›˜ intValue()
7q˜n–F³#ŸY˜I£Y6w³a6£¦˜n¥O O˜
7G£Y¥›6/˜Q—@£¸£k§ 6˜K–F898q™q˜ Y˜K7»º¥›Ÿ#–j—I O«¬– Ÿ j7i6¼
w6—œ898TÙOŸ›˜K—@7VY¡i£Y˜n¢
8V£´Ÿ#§ ­›Ÿ#®L­›˜@®L™œ˜@8I™¥›¥›  ˜
intValue() Integer
int

€Ÿ#Y—K2£Y65—K£Y6#8q8q˜ Â
Integer

TestItérateurTab

/**
* <code>TestItérateurTab</code> est une classe de test pour
* l’itérateur de tableau.
*
* @author <a href="mailto:garion@supaero.fr">Christophe Garion</a>
* @version 1.0
*/
public class TestItérateurTab {

public static void main (String[] args) {

Tableau t = new Tableau(2);


t.ajouter(new Integer(2));
t.ajouter(new Integer(4));
t.ajouter(new Integer(6));

Itérateur i = t.créeItérateur();

try {
while (!(i.estTerminé())) {
System.out.println(((Integer)i.élémentCourant()).intValue());
i.avancer();
}
}
catch (PlusElémentException e) {
System.out.println("Il n’y a plus d’éléments dans le tableau !");
}
} // end of main ()

ۖOŸ#¢i j˜K8y–_Ÿ—@­jŸ79£¦Y˜²žF˜\796R˜K¦4
™¾¢6R7œ ›·F™9 O¦£Y˜KkÚG8T˜n·F7¾ O O˜–/£¸§ ­O ›£¦™9Ÿ›¦£Y— Y896D™9¦Ÿ#–¤¥›˜\8'4µ ¡K™qÙOŸ›¥›˜\8 ˜@™ ¥›˜
}

avancer élémentCourant ItérateurTab

˜nïl¥›–˜\˜@8q™9 ›8q[™d j™qY8n«O£¦µk¦89ªn6R²–F˜i™ »º456Y8d·F OO–2§ 6I«j6#8€¥›˜Gµ —@ܟ#£2–j°º8q6¡n ›·F™ O˜K¥›–_Ÿ#—@–j˜n—V8€™9—n796D6™œ–j68L8T™L™q©p79«¬Ÿ«O˜K7ÙOk£Y·F˜i O79˜n¡n8€8q O8q O£¦™97c6D£k™6V«_–OŸ#Ÿ O™q7˜µY«¬µYµ Ÿ¼@ž OŸ³#–5ŸY797G¡n6R—K«O O«¬«_ªn˜K£Y7q˜K˜¾7  j–


try/catch
Object
élémentCourant() intValue

«OÛ 79§  ›Ÿ™9­j¦£¦£Yªnk8q46R˜\™qY8IŸ–»rY–O¥2¦™q§ k O6R–j£YY˜896D­¬™9¦ŸŸ# _–2—@ž›£Y˜ «j689896R²˜V8q˜n O8T7¾™/£¦˜I­¬˜n¥›6˜n j7q—@–jŸ#¦˜n O7¾« ¡K£Y«j¡K£¦45 j8/˜K–F8q™¦45˜@™œ«O—n£Y¼@˜ µ ·# …§  O– ·F OV«¬Ÿ#8q˜¡n–OŸ7945˜K45˜K–F™¥›˜


while for
OµyŸ#– ¥›¡\8TY7q˜”8T«¬¡n—KY6£¦k8q˜K7Þ«¬£Y6˜K794—@£k˜K6™w898T¥¨˜ § ¦™q¡n7q˜n7
8T O75£Y˜n8
8q˜K O˜K£k–8¡K O£Y¡K–O45˜ ˜K–F—@™œ£k6889¥O8T˜ ˜¤™L©p«¬˜

O
¥ R
6 _
– ¹
8 µ  jۖ 6™œ6R—@­O£k£Y6˜n8968q  ˜
«j«¬6Ÿ7 O³D6R6Y£¦–#£Y˜K™G j—K79Ÿ8V45»º¥j«O6R79˜K–j–j8¾¥O j7q–O˜I˜i¥›—@˜\£k8y6¡K898T£Y¡K˜45Ÿ˜K –F™9 O8G–O˜I¥¨§ Y j–F–"™q˜n6R7T°º ›6#™9—@7q˜\˜¼@™Lµ ©p«_˜i·F O˜ µ Û ˜V™L©p«_˜ 6¹¡K™q¡i¥›¡Køj–O
ItérateurTab ItérateurTabFiltre
ItérateurTabFiltre Filtrable
Filtrable Filtrable

—K7qY79˜˜n–   Ó j£kÍa6ÖI—@Ϧ£kÍw689Ë 8T˜ KÈÌÑjÒná#Ð


 %Ò pÖÔ  œæKɯÊÌÉqÐ9 ItérateurTabFiltre
µ ˜n–¤ O™qY£¦k8q6–F™'£Y˜n8'45¡@™9ÙOŸ›¥›˜n8¾¥›˜£k6¹—K£Y6#8q8q˜ ItérateurTab
µ
€Ÿ#Y—K2£¦˜I—KŸp¥O˜i¥›˜V£Y65—@£k6898q˜ Â
estTerminé()

ItérateurTabFiltre

/**
* <code>ItérateurTabFiltre</code> est un itérateur pour tableau ne
* prenant en compte que les éléments de type Filtrable.
*
* @author <a href="mailto:garion@supaero.fr">Christophe Garion</a>
* @version 1.0
*/
public class ItérateurTabFiltre extends ItérateurTab {
public ItérateurTabFiltre(Tableau t) {
super(t);
}

/**
* <code>avancer</code> positionne l’itérateur sur le prochain
* élément du tableau qui est de type Filtrable.
*
* @exception PlusElémentException s’il n’y a plus d’éléments de
* type Filtrable dans le tableau
*/
public void avancer() throws PlusElémentException {
do {
super.avancer();
} while (!(super.élémentCourant() instanceof Filtrable));
}

/**
* <code>estTerminé</code> permet de vérifier s’il existe encore
* des éléments de type Filtrable dans le tableau.
*
* @return un <code>boolean</code> qui est vrai s’il n’y a plus
* d’éléments de type Filtrable
*/
public boolean estTerminé() {
ItérateurTabFiltre copie = null;

try {
copie = (ItérateurTabFiltre)this.clone();
}
catch(CloneNotSupportedException e) {
}
try {
copie.avancer();
}
catch(PlusElémentException e) {
return true;
}
return false;
}

public Object élémentCourant() {


return(super.élémentCourant());
}

Û·FÛ  O66
˜I8q—@Ÿ£´£k§6£YŸ# ›89–¤8T™9˜I¦«jŸ#¡K–- O™9Y6R89«O8q¦79™˜Ÿ8q«¬°º¦6Ÿ#45¦8q79«O¡K˜˜£Yž›˜i4
«_¢
Ÿ#6 O¡\Y8y7y—@79˜n£¸¦§£¦79¡n£Y˜I˜I—K7q8T–O¦×™q˜I jŸ³7q–/˜IŸ# j ›¥›™q8'˜VY£Y¡@Y£k™œ896¹6R6R¦45¦™™¡K«j—@™qŸ#6ÙO7q8¾Ÿ›79¥›¥›˜n—@˜˜n™q4
˜n46R–j˜n¥›–F¡n™y˜£YµY˜nµ¦µ8G45¡@–2™qÙj§ ˜nŸp8T¥O™¾˜n«_8G˜n¥O ›˜i™À@£Y6
™97q—K˜£Y6#«j8q68q8y˜ £k6«O£Y j8y¡K£Y¡K²F6R–F™q˜ µ
}

ItérateurTab
estTerminé

˜KÝ¢5šp˜n—œk4
Ùj8T™q6#6R˜I·#7œ˜K j·#–_˜ j—@˜K°rŸÚŸ#79Y˜V·F8y O¥›£´˜¾§ ˜n¦–j8¾£´§¥OŸ#¡nY–£¦—K¡n˜i45˜\8L8T˜K™d O–F7¾Ÿ™9­O8'£Y˜I£Y¦øj²#–O£¦¡™qŸ#7œ O¥¨6R³§­j ›˜n£¦™q˜\£¨Y8¾£¦¡Kk£Y8q¥O¡K˜K6R457c–j˜K O8–F–j£Y™œ˜G6¼@µ—@£YYŸ#8T«O™q˜w¦˜»¸¥O—K 6R7¾Ÿ#–¤ O™qY£¦k8T˜I£k6545¡@™9ÙOŸ›¥›˜ —@Ÿ# O796–F™l«¬Ÿ·F j O7A2³«¬¡nŸ#7q8q¦[øj™9˜n¦Ÿ#7c–O8K–O§ ¦˜ £
ItérateurTabFiltre
avancer

You might also like