MIM1
TD 3 de POOGL
H
éritage

Vincent BOUDET
Bureau 343 (84-70)
email vboudet@ens-lyon.fr

23 Janvier 2000

A   L' héritage : Le jeu d' échec

Les échecs fournissent un exemple classique d' application de l'héritage qui est très riche.
Question A.1   Créer la classe PieceEchec qui s' intérresse au déplacement d' une pièce. Elle prend comme champs, la position des cases de départ et d' arrivée lors d' un déplacement ainsi que le nom de la pièce. La classe PieceEchec possède les méthodes suivantes : Cette classe comporte également un constructeur pour initialiser les champs et un constructeur vide.

Question A.2   Créer une classe Cavalier étendant la classe PieceEchec, dont le constructeur fait appel à celui de la super-classe. La méthode estValide() utilisera la méthode estValide() de la super-classe.
Question A.3   Faire de même avec les classes Fou et Tour.
Question A.4   Peut-on créer une classe Reine à partir des classes Fou et Tour ? Créer une Classe Reine.
Question A.5   Créer une classe Roi comme sous-classe de la classe Reine.

B   Classe abstraite : Évaluation de fonction

L' exercice suivant illustre l' utilisation d' une classe abstraite.
Question B.1   Créer une classe FonctionNommee qui possède un champ nom (qui ne prendra de valeur que dans les sous-classes de FonctionNommee. Elle doit avoir une méthode abstraite : public abstract double calculer(double x) et une méthode qui imprime la valeur de la variable et celle de la fonction en utilisant son nom : public void imprimer(double x).
Question B.2   Étendre la classe FonctionNommee par la classe CosMoinsNommee correspondant à la fonction cos(x)-x.
Question B.3   Créer la classe ImprimerFonction qui est destiné à lister les valeurs dúne fonction depuis une borne inférieure jusqu' à une borne supérieure avec un pas donné (méthode lister(). La classe comporte un champ de type FonctionNommee qui est la fonction à étudier.
Question B.4   Tester ces classes en imprimant les valeurs de cos(x)-x entre 0 et 2 par pas de 0.1.

C   Interface : Dichotomie

Dans cet exercice, on va chercher à illustrer la notion d' interface. On veut rechercher un zéro d' une fonction par dichotomie. Contrairement à l' exercice précédent, la classe associée à la fonction étudiee n' a pas besoin de posséder un nom ni d' avoir une méthode imprimer(), il suffit qu' elle ait une méthode abstraite calculer(). Une interface convient donc parfaitement, elle est appelée Fonction. Une classe CosMoins implante cette interface.
Question C.1   Créer l' interface Fonction.
Question C.2   Rédiger la classe Dichotomie qui recherche un zéro d' une fonction modélisée par une classe implantant l' interface Fonction.
La classe Dichotomie a les champs suivants : et les méthodes suivantes :
Question C.3   Créer la classe CosMoins et tester la dans l' intervalle [0,2].

This document was translated from LATEX by HEVEA.