Courbes
IPA - TD3 et Projet
Le sujet ci-dessous donnera lieu à une suite de
séances de TD consacrées
à l'élaboration d'une version ``minimale''. Le projet
consistera à en construire
le maximum d'extensions.
On veut construire une application permettant de visualiser les
variations
de fonctions numériques (genre x
-> x sin(1/x) entre -Pi et Pi).
En général, on représentera les variations
d'une fonction f dont
l'argument et le résultat
sont de type double, sur un intervalle d'étude x < x'. Ces variations seront
représentées par une suite de N valeurs (xi, f(xi)), 0 ≤ i ≤ N, où les xi
sont distribués
régulièrement entre x
et x'.
Cette représentation permet d'une part de calculer une
approximation
de l'intégrale de f
entre x et x', d'autre part de visualiser ces
variations sur une fenêtre graphique à l'aide de segments
successifs.
TD
Au cours du premier TD, on demande de réaliser un composant
graphique permettant de visualiser
les variations
de n'importe quelle fonction f
entre deux valeurs x et x'. Le choix
de la précision d'affichage se fera interactivement par le biais
d'un menu.
De plus, les informations suivantes seront affichées :
- position de la souris (relativement à la
représentation de la fonction, et si dans la fenêtre) ;
- portion du plan représentée par la zone
d'affichage ;
- approximation de l'intégrale de f entre x et x', compte-tenu du nombre de
segments représentés.
Corrigé du TD1
Un second TD sera consacré à la réalisation d'une
fabrique de fonctions unaires, fournissant
- des fonctions unaires usuelles : sin, cos, x (identité),
constante ;
- des fonctions unaires obtenues par des opérations sur des
fonctions passées en paramètre : +, -, *, /, composition
- une fonction unaire à partir de son expression prefixe,
par exemple "* x sin * 2 x"
et à l'interfaçage de cette fabrique avec le
résultat du 1er TD.
Corrigé du TD2
Projet
Le projet consistera à satisfaire le cahier des charges suivant
:
- implémenter une fonctionnalité de ``zoom'' (avant
et arrière) ;
- autoriser l'affichage simultané de plusieurs fonctions ;
- permettre l'utilisation de plusieurs fenêtres ;
- définir une fonction dans un fichier ;
- ...
Le point de départ sera le corrigé des TD
précédents, dont le projet sera
une extension.
Notez que durant la réalisation de ce projet, les
séances de TD devront
vous permettre de discuter de vos choix de réalisation, de
discuter de
solutions éventuelles, de vaincre ou de tenir compte du
scepticisme éventuel
de vos enseignants.
Règles
Le projet devra être réalisé par binôme.
Un seul monôme ou trinôme par groupe est autorisé.
Les binômes inter-groupe ne sont pas autorisés, sauf
dérogation dûment justifiée.
Le rapport devra être remis le vendredi 2 décembre
avant 16h. Tout retard sera sanctionné.
Ce rapport devra contenir
- les sources, en utilisant a2ps, et par ordre alphabétique ;
- une présentation du travail réalisé (10
pages max) contenant entre autre
- comment utiliser le logiciel ;
- un schéma de classes au format UML ;
- les alternatives envisagées ;
- les disfonctionnements constatés ;
- les réutilisabilités possibles.
Le code devra être remis sous la forme d'une archive
exécutable (.jar) contenant les sources.
Des présentations orales seront organisées dans le cadre
des dernières séances de TD.
Critères d'évaluation
:
- Qualité du source, de la conception objet.
- Robustesse : protection contre les erreurs à
l'exécution.
- Ergonomie de l'interface graphique. Clarté de la
visualisation des informations.
- Initiative (il faut parfois lire le cahier des charges entre les
lignes).
- Originalité (rien n'est plus énervant que de voir
des clônes plus ou moins
camouflés du même programme).