Td corrigé Exonet 22 - Free pdf

Exonet 22 - Free

Réseau national CERTA ? DIDIER Freddy Exonet LAN ? mai 2003 v3.0 1/8. 1. Proposition de corrigé : Pour chaque type de matériel d'interconnexion figurant ...




part of the document



li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs20\lang1024\langfe1024\cgrid\langnp1024\langfenp1024 \snext11 \ssemihidden Normal Table;}{\s15\qc \li0\ri0\nowidctlpar\faauto\adjustright\rin0\lin0\itap0
\b\f1\fs32\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 \sbasedon0 \snext15 Title;}{\s16\ql \li0\ri0\widctlpar\tqc\tx4536\tqr\tx9072\faauto\adjustright\rin0\lin0\itap0 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 \sbasedon0 \snext16
header;}{\*\cs17 \additive \sbasedon10 page number;}{\s18\ql \li0\ri240\sa120\sl1\slmult0\widctlpar\tx709\faauto\adjustright\rin240\lin0\itap0 \f172\fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 \sbasedon0 \snext18 Body Text;}}
{\*\rsidtbl \rsid1006462}{\*\generator Microsoft Word 10.0.2627;}{\info{\title Exonet 22}{\author CERTA}{\operator Vanessa}{\creatim\yr1998\mo4\dy30\hr10\min10}{\revtim\yr2003\mo5\dy20\min1}{\version3}{\edmins13}{\nofpages4}{\nofwords697}{\nofchars3839}
{\*\company }{\nofcharsws4527}{\vern16437}}\paperw11906\paperh16838\margl1418\margr1418\margt1134\margb1134
\deftab708\widowctrl\ftnbj\aenddoc\hyphhotz425\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\lytprtmet\hyphcaps0\formshade\horzdoc\dghspace120\dgvspace120\dghorigin1701\dgvorigin1984\dghshow0\dgvshow3
\jcompress\viewkind1\viewscale100\pgbrdrhead\pgbrdrfoot\nolnhtadjtbl\rsidroot1006462 \fet0\sectd \linex0\headery709\footery709\colsx709\endnhere\sectdefaultcl\sftnbj {\header \pard\plain \s16\ql \li0\ri0\widctlpar
\tqc\tx4536\tqr\tx9072\pvpara\phmrg\posxr\posy0\faauto\adjustright\rin0\lin0\itap0 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\field{\*\fldinst {\cs17\insrsid1006462 PAGE }}{\fldrslt {\cs17\lang1024\langfe1024\noproof\insrsid1006462 2}}}{
\cs17\insrsid1006462
\par }\pard \s16\ql \li0\ri360\widctlpar\tqc\tx4536\tqr\tx9072\faauto\adjustright\rin360\lin0\itap0 {\insrsid1006462
\par }}{\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}
{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8
\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain \s15\qc \li0\ri0\nowidctlpar\faauto\adjustright\rin0\lin0\itap0
\b\f1\fs32\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\insrsid1006462 Exercice n\'b0 22
\par }\pard\plain \s1\ql \li0\ri0\sb240\sa60\keepn\widctlpar\faauto\outlinelevel0\adjustright\rin0\lin0\itap0 \b\f1\fs28\lang1036\langfe1036\kerning28\cgrid\langnp1036\langfenp1036 {\insrsid1006462 Description
\par }\trowd \irow0\irowband0\ts11\trgaph70\trleft-70\trbrdrt\brdrs\brdrw15 \trbrdrl\brdrs\brdrw15 \trbrdrb\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trbrdrh\brdrs\brdrw15 \trbrdrv\brdrs\brdrw15 \trftsWidth1\trpaddl70\trpaddr70\trpaddfl3\trpaddfr3 \clvertalt
\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cltxlrtb\clftsWidth3\clwWidth1985\clshdrawnil \cellx1915\clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15
\cltxlrtb\clftsWidth3\clwWidth7088\clshdrawnil \cellx9003\pard\plain \ql \li0\ri0\widctlpar\intbl\faauto\adjustright\rin0\lin0 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\insrsid1006462 Public(s)\cell
Section de TS Informatique de gestion option : DA\cell }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\insrsid1006462 \trowd \irow0\irowband0\ts11\trgaph70\trleft-70\trbrdrt\brdrs\brdrw15 \trbrdrl\brdrs\brdrw15 \trbrdrb
\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trbrdrh\brdrs\brdrw15 \trbrdrv\brdrs\brdrw15 \trftsWidth1\trpaddl70\trpaddr70\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15
\cltxlrtb\clftsWidth3\clwWidth1985\clshdrawnil \cellx1915\clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cltxlrtb\clftsWidth3\clwWidth7088\clshdrawnil \cellx9003\row }\pard
\ql \li0\ri0\widctlpar\intbl\faauto\adjustright\rin0\lin0 {\insrsid1006462 Savoir(s)\cell S36 Conception et d\'e9veloppement d\rquote applications \'e0 l'aide d'un langage de programmation \'e0 objets\cell }\pard
\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\insrsid1006462 \trowd \irow1\irowband1\ts11\trgaph70\trleft-70\trbrdrt\brdrs\brdrw15 \trbrdrl\brdrs\brdrw15 \trbrdrb\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trbrdrh\brdrs\brdrw15
\trbrdrv\brdrs\brdrw15 \trftsWidth1\trpaddl70\trpaddr70\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cltxlrtb\clftsWidth3\clwWidth1985\clshdrawnil \cellx1915\clvertalt\clbrdrt
\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cltxlrtb\clftsWidth3\clwWidth7088\clshdrawnil \cellx9003\row }\pard \ql \li0\ri0\widctlpar\intbl\faauto\adjustright\rin0\lin0 {\insrsid1006462 Capacit\'e9(s)\cell C34 D
\'e9velopper \'e0 l'aide d'un langage de programmation \'e0 objets\cell }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\insrsid1006462 \trowd \irow2\irowband2\ts11\trgaph70\trleft-70\trbrdrt\brdrs\brdrw15 \trbrdrl
\brdrs\brdrw15 \trbrdrb\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trbrdrh\brdrs\brdrw15 \trbrdrv\brdrs\brdrw15 \trftsWidth1\trpaddl70\trpaddr70\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr
\brdrs\brdrw15 \cltxlrtb\clftsWidth3\clwWidth1985\clshdrawnil \cellx1915\clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cltxlrtb\clftsWidth3\clwWidth7088\clshdrawnil \cellx9003\row }\pard
\ql \li0\ri0\widctlpar\intbl\faauto\adjustright\rin0\lin0 {\insrsid1006462 Objectif(s)\cell \'c9crire une m\'e9thode de classe.
\par Mettre en \'9cuvre l\rquote h\'e9ritage.\cell }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\insrsid1006462 \trowd \irow3\irowband3\ts11\trgaph70\trleft-70\trbrdrt\brdrs\brdrw15 \trbrdrl\brdrs\brdrw15 \trbrdrb
\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trbrdrh\brdrs\brdrw15 \trbrdrv\brdrs\brdrw15 \trftsWidth1\trpaddl70\trpaddr70\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15
\cltxlrtb\clftsWidth3\clwWidth1985\clshdrawnil \cellx1915\clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cltxlrtb\clftsWidth3\clwWidth7088\clshdrawnil \cellx9003\row }\pard
\ql \li0\ri0\widctlpar\intbl\faauto\adjustright\rin0\lin0 {\insrsid1006462 Fichier\cell Exonet22.zip\cell }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\insrsid1006462 \trowd \irow4\irowband4\ts11\trgaph70\trleft-70
\trbrdrt\brdrs\brdrw15 \trbrdrl\brdrs\brdrw15 \trbrdrb\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trbrdrh\brdrs\brdrw15 \trbrdrv\brdrs\brdrw15 \trftsWidth1\trpaddl70\trpaddr70\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb
\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cltxlrtb\clftsWidth3\clwWidth1985\clshdrawnil \cellx1915\clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cltxlrtb\clftsWidth3\clwWidth7088\clshdrawnil \cellx9003
\row }\pard \ql \li0\ri0\widctlpar\intbl\faauto\adjustright\rin0\lin0 {\insrsid1006462 Auteur(s)\cell Pierre WOLSZTYNSKI\cell }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\insrsid1006462
\trowd \irow5\irowband5\lastrow \ts11\trgaph70\trleft-70\trbrdrt\brdrs\brdrw15 \trbrdrl\brdrs\brdrw15 \trbrdrb\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trbrdrh\brdrs\brdrw15 \trbrdrv\brdrs\brdrw15 \trftsWidth1\trpaddl70\trpaddr70\trpaddfl3\trpaddfr3
\clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cltxlrtb\clftsWidth3\clwWidth1985\clshdrawnil \cellx1915\clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr
\brdrs\brdrw15 \cltxlrtb\clftsWidth3\clwWidth7088\clshdrawnil \cellx9003\row }\pard\plain \s1\ql \li0\ri0\sb240\sa60\keepn\widctlpar\faauto\outlinelevel0\adjustright\rin0\lin0\itap0 \b\f1\fs28\lang1036\langfe1036\kerning28\cgrid\langnp1036\langfenp1036 {
\insrsid1006462 \'c9nonc\'e9
\par }\pard\plain \s2\ql \li0\ri0\sb240\sa60\keepn\widctlpar\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\i\f1\fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\insrsid1006462 Contexte de travail
\par }\trowd \irow0\irowband0\lastrow \ts11\trgaph70\trleft-70\trbrdrt\brdrs\brdrw15 \trbrdrl\brdrs\brdrw15 \trbrdrb\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trbrdrh\brdrs\brdrw15 \trbrdrv\brdrs\brdrw15 \trftsWidth1\trpaddl70\trpaddr70\trpaddfl3\trpaddfr3
\clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cltxlrtb\clftsWidth3\clwWidth9212\clshdrawnil \cellx9142\pard\plain \ql \li0\ri240\sa120\sl1\slmult0\widctlpar\intbl\faauto\adjustright\rin240\lin0
\fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\insrsid1006462 Nous disposons d\rquote un extrait de la classe Date suivante (issue de MS Visual J++ 1.0)
\par }\pard\plain \s3\ql \li0\ri240\sa120\sl1\slmult0\keepn\widctlpar\intbl\tx709\faauto\outlinelevel2\adjustright\rin240\lin0 \b\f1\fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\b0\lang1024\langfe1024\noproof\insrsid1006462 Classe}{
\lang1024\langfe1024\noproof\insrsid1006462 Date
\par D\'e9but classe
\par }\pard\plain \ql \li708\ri240\sa120\sl1\slmult0\widctlpar\intbl\tx709\faauto\adjustright\rin240\lin708 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\f1\lang1024\langfe1024\noproof\insrsid1006462 % constructeurs (publics)
\par public\~:
\par }\pard \ql \li888\ri240\sa120\sl1\slmult0\widctlpar\intbl\tx709\faauto\adjustright\rin240\lin888 {\b\f1\lang1024\langfe1024\noproof\insrsid1006462 Date}{\f1\lang1024\langfe1024\noproof\insrsid1006462 (\tab Entr\'e9e y\~: entier,
\par \tab \tab Entr\'e9e m\~: entier,
\par \tab \tab Entr\'e9e d\~: entier)
\par }\pard \ql \li708\ri240\sa120\sl1\slmult0\widctlpar\intbl\tx709\faauto\adjustright\rin240\lin708 {\f1\lang1024\langfe1024\noproof\insrsid1006462 % m\'e9thodes publiques (accesseurs)
\par \tab fonction }{\b\f1\lang1024\langfe1024\noproof\insrsid1006462 getDate}{\f1\lang1024\langfe1024\noproof\insrsid1006462 ()\~: entier\tab
\par \tab fonction }{\b\f1\lang1024\langfe1024\noproof\insrsid1006462 getMonth}{\f1\lang1024\langfe1024\noproof\insrsid1006462 ()\~: entier
\par \tab fonction }{\b\f1\lang1024\langfe1024\noproof\insrsid1006462 getYear}{\f1\lang1024\langfe1024\noproof\insrsid1006462 ()\~: entier;\tab
\par \tab proc\'e9dure }{\b\f1\lang1024\langfe1024\noproof\insrsid1006462 setDate}{\f1\lang1024\langfe1024\noproof\insrsid1006462 (Entr\'e9e d\~: entier)\tab
\par \tab proc\'e9dure }{\b\f1\lang1024\langfe1024\noproof\insrsid1006462 setMonth}{\f1\lang1024\langfe1024\noproof\insrsid1006462 (Entr\'e9e m\~: entier)\tab }{\f1\ul\lang1024\langfe1024\noproof\insrsid1006462
\par }{\f1\lang1024\langfe1024\noproof\insrsid1006462 \tab proc\'e9dure }{\b\f1\lang1024\langfe1024\noproof\insrsid1006462 setYear}{\f1\lang1024\langfe1024\noproof\insrsid1006462 (Ent\'e9e y\~: entier)\tab
\par \tab fonction }{\b\f1\lang1024\langfe1024\noproof\insrsid1006462 DateToString}{\f1\lang1024\langfe1024\noproof\insrsid1006462 ()\~: chaine
\par \tab ...
\par % les membres priv\'e9s ne sont pas pr\'e9sent\'e9s
\par }\pard \ql \li0\ri0\widctlpar\intbl\faauto\adjustright\rin0\lin0 {\b\f1\lang1024\langfe1024\noproof\insrsid1006462 Fin classe
\par }{\insrsid1006462
\par Le constructeur attend en param\'e8tre l\rquote ann\'e9e, le mois puis le num\'e9ro de jour et les affecte dans l\rquote espace de donn\'e9es priv\'e9 de l\rquote objet.
\par }\pard \ql \li0\ri240\sa120\sl1\slmult0\widctlpar\intbl\tx709\faauto\adjustright\rin240\lin0 {\insrsid1006462 Les m\'e9thodes accesseurs permettent respectivement de r\'e9cup\'e9rer le jour, le mois ou l\rquote ann\'e9e sous forme d\rquote un entier (m
\'e9thodes getxxx) et de changer ces m\'eames propri\'e9t\'e9s (m\'e9thodes setxxx). La m\'e9thode DateToString retourne une cha\'eene de caract\'e8res repr\'e9sentant la date de l\rquote objet sur lequel a \'e9t\'e9 invoqu\'e9e cette m\'e9
thode au format am\'e9ricain.\cell }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\insrsid1006462 \trowd \irow0\irowband0\lastrow \ts11\trgaph70\trleft-70\trbrdrt\brdrs\brdrw15 \trbrdrl\brdrs\brdrw15 \trbrdrb
\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trbrdrh\brdrs\brdrw15 \trbrdrv\brdrs\brdrw15 \trftsWidth1\trpaddl70\trpaddr70\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15
\cltxlrtb\clftsWidth3\clwWidth9212\clshdrawnil \cellx9142\row }\pard\plain \s2\ql \li0\ri0\sb240\sa60\keepn\widctlpar\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\i\f1\fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\insrsid1006462 Travail
\'e0 R\'e9aliser
\par }\pard\plain \s3\ql \li0\ri240\sa120\sl1\slmult0\keepn\widctlpar\intbl\tx709\faauto\outlinelevel2\adjustright\rin240\lin0 \b\f1\fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\insrsid1006462 Question 1
\par }\pard\plain \s18\ql \li0\ri240\sa120\sl1\slmult0\widctlpar\intbl\tx709\faauto\adjustright\rin240\lin0 \f172\fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\f0\insrsid1006462 Quels sont les avantages de ces m\'e9thodes accesseurs\~
? Quel principe de la programmation orient\'e9e objet permettent-elles de respecter\~?
\par }\pard\plain \s3\ql \li0\ri240\sa120\sl1\slmult0\keepn\widctlpar\intbl\tx709\faauto\outlinelevel2\adjustright\rin240\lin0 \b\f1\fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\insrsid1006462 Question 2
\par }\pard\plain \ql \li0\ri240\sa120\sl1\slmult0\widctlpar\intbl\tx709\faauto\adjustright\rin240\lin0 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\insrsid1006462 Nous voyons que le constructeur et la m\'e9
thode DateToString travaillent sur le format am\'e9ricain. Comme cette classe est int\'e9gr\'e9e dans les librairies d\rquote un environnement de d\'e9veloppement, il n\rquote est pas possible de la modifier. Quelle technique nous offre la pr
ogrammation orient\'e9e objet pour pouvoir g\'e9rer nos dates au format fran\'e7ais tout en utilisant cette classe existante qui offre en outre un ensemble d\rquote autres services ? \'c9crire le code correspondant pour g\'e9rer un constructeur et une m
\'e9thode retournant une cha\'eene au format fran\'e7ais.\cell }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\insrsid1006462 \trowd \irow0\irowband0\lastrow \ts11\trgaph70\trleft-70\trbrdrt\brdrs\brdrw15 \trbrdrl
\brdrs\brdrw15 \trbrdrb\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trbrdrh\brdrs\brdrw15 \trbrdrv\brdrs\brdrw15 \trftsWidth1\trpaddl70\trpaddr70\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr
\brdrs\brdrw15 \cltxlrtb\clftsWidth3\clwWidth9212\clshdrawnil \cellx9142\row }\pard\plain \s1\ql \li0\ri0\sb240\sa60\keepn\widctlpar\faauto\outlinelevel0\adjustright\rin0\lin0\itap0 \b\f1\fs28\lang1036\langfe1036\kerning28\cgrid\langnp1036\langfenp1036 {
\insrsid1006462
\par \page }{\insrsid1006462 Correction
\par }\pard\plain \s2\ql \li0\ri0\sb240\sa60\keepn\widctlpar\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\i\f1\fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\insrsid1006462 Remarque pr\'e9liminaire\~:
\par }\pard\plain \ql \li0\ri0\widctlpar\intbl\faauto\adjustright\rin0\lin0 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\insrsid1006462 La m\'e9thode GetDay(), non pr\'e9sent\'e9e dans l\rquote exercice, permet de r\'e9cup\'e9rer le num\'e9
ro du jour dans la semaine sous la forme d\rquote un entier (de 0 \'e0 6 pour dimanche \'e0 samedi). C\rquote est ce qui explique que ce soit la m\'e9thode GetDate() qui r\'e9cup\'e8re le jour du mois sous la forme d\rquote un entier.\cell }\pard
\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\insrsid1006462 \trowd \irow0\irowband0\lastrow \ts11\trgaph70\trleft-70\trbrdrt\brdrs\brdrw15 \trbrdrl\brdrs\brdrw15 \trbrdrb\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trbrdrh
\brdrs\brdrw15 \trbrdrv\brdrs\brdrw15 \trftsWidth1\trpaddl70\trpaddr70\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15 \clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cltxlrtb\clftsWidth3\clwWidth9212\clshdrawnil \cellx9142\row
}\pard\plain \s2\ql \li0\ri0\sb240\sa60\keepn\widctlpar\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\i\f1\fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\insrsid1006462 Question 1\~:
\par }\pard\plain \ql \li0\ri0\widctlpar\intbl\faauto\adjustright\rin0\lin0 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\insrsid1006462 Premier avantage\~:
\par L\rquote utilisateur de la classe (un programmeur) n\rquote a pas \'e0 \'eatre au courant de la fa\'e7on dont sont implant\'e9es les donn\'e9es concernant la gestion d\rquote un
e date. Si le concepteur de la classe modifie cette implantation, sans toucher \'e0 l\rquote interface de base (m\'e9thodes publiques, il peut toutefois ajouter de nouvelles m\'e9thodes), les programmes utilisateurs ne seront pas \'e0 modifier.
\par Second avantage\~:
\par On peut v\'e9rifier la validit\'e9 des donn\'e9es pass\'e9es en argument dans le code de ces m\'e9thodes (surtout les m\'e9thodes setxxx). Par exemple on pourra refuser un mois \'e9gal \'e0 14.
\par
\par Le principe que ces m\'e9thodes permettent de respecter est celui de l\rquote encapsulation des donn\'e9es.\cell }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\insrsid1006462 \trowd \irow0\irowband0\lastrow
\ts11\trgaph70\trleft-70\trbrdrt\brdrs\brdrw15 \trbrdrl\brdrs\brdrw15 \trbrdrb\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trbrdrh\brdrs\brdrw15 \trbrdrv\brdrs\brdrw15 \trftsWidth1\trpaddl70\trpaddr70\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15
\clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cltxlrtb\clftsWidth3\clwWidth9212\clshdrawnil \cellx9142\row }\pard\plain \s2\ql \li0\ri0\sb240\sa60\keepn\widctlpar\faauto\outlinelevel1\adjustright\rin0\lin0\itap0
\b\i\f1\fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\insrsid1006462 Question 2\~:
\par }\pard\plain \ql \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\insrsid1006462
\par }\pard \ql \li0\ri0\widctlpar\intbl\faauto\adjustright\rin0\lin0 {\insrsid1006462 La technique de l\rquote h\'e9ritage permet de r\'e9pondre \'e0 ce probl\'e8me. On peut cr\'e9
er une nouvelle classe qui sait faire tout ce que fait la classe Date. Nous appellerons cette nouvelle classe Date_fr
\par }\pard\plain \s16\ql \li0\ri0\widctlpar\intbl\faauto\adjustright\rin0\lin0 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\f1\insrsid1006462 Classe Date_fr h\'e9rite de Date
\par }{\b\f1\insrsid1006462 D\'e9but classe
\par }\pard\plain \ql \li708\ri0\widctlpar\intbl\faauto\adjustright\rin0\lin708 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\f1\insrsid1006462 % constructeurs (publics)
\par public :
\par \tab }{\b\f1\insrsid1006462 Date_fr}{\f1\insrsid1006462 (\tab Entr\'e9e j : entier,
\par \tab \tab \tab Entr\'e9e m : entier,
\par \tab \tab \tab Entr\'e9e a : entier)
\par \tab
\par \tab fonction }{\b\f1\insrsid1006462 Date_cha\'eene_fr}{\f1\insrsid1006462 () : cha\'eene
\par }\pard\plain \s16\ql \li0\ri0\widctlpar\intbl\faauto\adjustright\rin0\lin0 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\b\f1\insrsid1006462 Fin classe
\par }\pard\plain \ql \li0\ri0\widctlpar\intbl\faauto\adjustright\rin0\lin0 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\insrsid1006462
\par On peut proc\'e9der \'e0 la C++ et d\'e9finir les m\'e9thodes non inline \'e0 l\rquote ext\'e9rieur de la classe avec l\rquote op\'e9rateur de r\'e9solution de port\'e9e ( ::) Ou bien, comme en java les d\'e9finir dans la classe elle-m\'ea
me. Ici, je choisis la forme Cplusplusi\'e8ne.
\par
\par
\par
\par }{\b\f1\insrsid1006462 Constructeur}{\f1\insrsid1006462 Date_fr : :Date_fr (\tab Entr\'e9e j : entier,
\par }\pard\plain \s16\ql \li0\ri0\widctlpar\intbl\faauto\adjustright\rin0\lin0 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\f1\insrsid1006462 \tab \tab \tab \tab \tab \tab Entr\'e9e m : entier,
\par }\pard\plain \ql \li0\ri0\widctlpar\intbl\faauto\adjustright\rin0\lin0 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\f1\insrsid1006462 \tab \tab \tab \tab \tab \tab Entr\'e9e a : entier)
\par D\'e9but
\par \tab Date::setDate(j)
\par \tab Date::setMonth(m)
\par \tab Date::setYear(a)
\par Fin
\par fonction Date_fr::Date_cha\'eene_fr () : cha\'eene
\par \tab res : cha\'eene % r\'e9sultat
\par D\'e9but
\par \tab res }{\f1\insrsid1006462 {\field{\*\fldinst SYMBOL 172 \\f "Symbol" \\s 12}{\fldrslt\f3\fs24}}}{\f1\insrsid1006462 ConvertionCha\'eene(getDate()) + \lquote \rquote /\rquote \rquote
\par \tab res }{\f1\insrsid1006462 {\field{\*\fldinst SYMBOL 172 \\f "Symbol" \\s 12}{\fldrslt\f3\fs24}}}{\f1\insrsid1006462 res + ConvertionCha\'eene(getMonth()) + \lquote \rquote /\rquote \rquote
\par \tab res }{\f1\insrsid1006462 {\field{\*\fldinst SYMBOL 172 \\f "Symbol" \\s 12}{\fldrslt\f3\fs24}}}{\f1\insrsid1006462 res + ConvertionCha\'eene(getYear())
\par \tab retourner (res)
\par Fin}{\insrsid1006462
\par Remarque : A la place de Date_cha\'eene_fr on aurait pu prendre comme nom de m\'e9thode DateToString(). Ce qui reviendrait \'e0 red\'e9finir la m\'e9thode pour la classe Date_fr. Si on instancie la classe Date, c\rquote est la m\'e9thode d\rquote
origine qui est accessible et, pour une instance de la classe Date_fr, ce sera la m\'e9thode surcharg\'e9e qui le sera.\cell }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\insrsid1006462 \trowd \irow0\irowband0\lastrow
\ts11\trgaph70\trleft-70\trbrdrt\brdrs\brdrw15 \trbrdrl\brdrs\brdrw15 \trbrdrb\brdrs\brdrw15 \trbrdrr\brdrs\brdrw15 \trbrdrh\brdrs\brdrw15 \trbrdrv\brdrs\brdrw15 \trftsWidth1\trpaddl70\trpaddr70\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15
\clbrdrl\brdrs\brdrw15 \clbrdrb\brdrs\brdrw15 \clbrdrr\brdrs\brdrw15 \cltxlrtb\clftsWidth3\clwWidth9212\clshdrawnil \cellx9142\row }\pard \ql \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 {\insrsid1006462
\par }}