304
Le logiciel R - Maˆ ıtriser le langage
Modifiez la fonction compte() pour qu’elle permette de fournir l’´ etat courant du compte uniquement dans le cas o` u le fichier fourni par
chemin.compte(nom) est existant (on utilisera la fonction file.exists()
pour tester l’existence d’un fichier).
6.5- Compl´ etez `
a votre guise la gestion des comptes par la cr´ eation de fonctions
suppl´ ementaires.
6.6- Question optionnelle : puisque la plupart des utilisations du R se font
` a l’aide des objets R, adaptez les fonctions pr´ ec´ edentes de fa¸ con ` a respecter la philosophie de la programmation R orient´ ee objets. On pourra
s’inspirer des travaux pratiques qui suivent.
B- Organisation d’objets graphiques
Si l’on y prˆ ete attention, on peut remarquer que l’utilisation des graphiques
sous R ne respecte pas vraiment l’esprit objets R dans le sens o` u un graphique
n’est pas consid´ er´ e, comme la plupart des autres entit´ es R, comme un objet
enregistrable (´ eventuellement modifiable) sur lequel il est possible d’appliquer
certaines m´ ethodes. Nous allons tenter de proposer un prototype tr` es basique
permettant de dessiner un graphique sur lequel seront repr´ esent´ es des cercles et
des rectangles (et donc aussi des carr´ es). Vous pourrez ult´ erieurement enrichir
cette biblioth` eque d’objets graphiques selon votre inspiration. L’objectif est de
maintenir une liste d’objets graphiques avec la possibilit´ e de modifier ` a tout
moment l’un de ses ´ el´ ements.
6.1- Les fonctions R plot.new() et plot.window() permettent d’initialiser un
graphique. Le param` etre asp fix´ e `
a 1 permet notamment de produire des
graphiques respectant les bonnes unit´ es pour les abscisses et les ordonn´ ees. Proposez un objet Fen^ etre qui offre ` a l’utilisateur l’option d’enregistrer les dimensions de la fenˆ etre d’affichage du graphique. L’utilisateur
pourra alors appeler la fonction (ou m´ ethode) constructeur Fen^ etre()
(ayant par exemple le mˆ eme nom que la classe) ayant pour param` etres x
(c’est-` a-dire abscisse du centre), y (ordonn´ ee du centre), largeur (taille
en abscisse), hauteur (taille en ordonn´ ee) et ´ eventuellement log (transformation logarithmique). Toutes ces quantit´ es seront stock´ ees dans un
objet list qui sera retourn´ e par la fonction constructeur Fen^ etre() en
ayant au pr´ ealable affect´ e sa classe ` a "Fen^ etre".
6.2- De la mˆ eme mani` ere, proposez les fonctions constructeurs pour les objets
des classes Cercle et Rectangle. Les champs x, y repr´ esentent les coordonn´ ees du centre de ces objets, rayon repr´ esente le rayon d’un cercle et
largeur et hauteur repr´ esentent les dimensions d’un rectangle.
6.3- Proposez ` a pr´ esent les m´ ethodes d’affichage plot.Fen^ etre(),
plot.Rectangle() et plot.Cercle() qui pourront s’inspirer des traitements R suivants, permettant l’affichage d’un nouveau graphique contenant un cercle et un carr´ e centr´ es en l’origine et de diam` etre et de cˆ ot´ e
fix´ e `
a 1 :
Le logiciel R - Maˆ ıtriser le langage
Modifiez la fonction compte() pour qu’elle permette de fournir l’´ etat courant du compte uniquement dans le cas o` u le fichier fourni par
chemin.compte(nom) est existant (on utilisera la fonction file.exists()
pour tester l’existence d’un fichier).
6.5- Compl´ etez `
a votre guise la gestion des comptes par la cr´ eation de fonctions
suppl´ ementaires.
6.6- Question optionnelle : puisque la plupart des utilisations du R se font
` a l’aide des objets R, adaptez les fonctions pr´ ec´ edentes de fa¸ con ` a respecter la philosophie de la programmation R orient´ ee objets. On pourra
s’inspirer des travaux pratiques qui suivent.
B- Organisation d’objets graphiques
Si l’on y prˆ ete attention, on peut remarquer que l’utilisation des graphiques
sous R ne respecte pas vraiment l’esprit objets R dans le sens o` u un graphique
n’est pas consid´ er´ e, comme la plupart des autres entit´ es R, comme un objet
enregistrable (´ eventuellement modifiable) sur lequel il est possible d’appliquer
certaines m´ ethodes. Nous allons tenter de proposer un prototype tr` es basique
permettant de dessiner un graphique sur lequel seront repr´ esent´ es des cercles et
des rectangles (et donc aussi des carr´ es). Vous pourrez ult´ erieurement enrichir
cette biblioth` eque d’objets graphiques selon votre inspiration. L’objectif est de
maintenir une liste d’objets graphiques avec la possibilit´ e de modifier ` a tout
moment l’un de ses ´ el´ ements.
6.1- Les fonctions R plot.new() et plot.window() permettent d’initialiser un
graphique. Le param` etre asp fix´ e `
a 1 permet notamment de produire des
graphiques respectant les bonnes unit´ es pour les abscisses et les ordonn´ ees. Proposez un objet Fen^ etre qui offre ` a l’utilisateur l’option d’enregistrer les dimensions de la fenˆ etre d’affichage du graphique. L’utilisateur
pourra alors appeler la fonction (ou m´ ethode) constructeur Fen^ etre()
(ayant par exemple le mˆ eme nom que la classe) ayant pour param` etres x
(c’est-` a-dire abscisse du centre), y (ordonn´ ee du centre), largeur (taille
en abscisse), hauteur (taille en ordonn´ ee) et ´ eventuellement log (transformation logarithmique). Toutes ces quantit´ es seront stock´ ees dans un
objet list qui sera retourn´ e par la fonction constructeur Fen^ etre() en
ayant au pr´ ealable affect´ e sa classe ` a "Fen^ etre".
6.2- De la mˆ eme mani` ere, proposez les fonctions constructeurs pour les objets
des classes Cercle et Rectangle. Les champs x, y repr´ esentent les coordonn´ ees du centre de ces objets, rayon repr´ esente le rayon d’un cercle et
largeur et hauteur repr´ esentent les dimensions d’un rectangle.
6.3- Proposez ` a pr´ esent les m´ ethodes d’affichage plot.Fen^ etre(),
plot.Rectangle() et plot.Cercle() qui pourront s’inspirer des traitements R suivants, permettant l’affichage d’un nouveau graphique contenant un cercle et un carr´ e centr´ es en l’origine et de diam` etre et de cˆ ot´ e
fix´ e `
a 1 :
