Programmation Java 1A - TP18
Calculatrice avec Pile et Stack
Le but de ce TP est de simuler le fonctionnement d'une
calculatrice. Cette calculatrice, basée sur une pile, fonctionne
en notation polonaise inversée : pour effectuer
l'opération 2+3, on
entrera la valeur 2, puis la
valeur 3, et enfin on
effectuera l'addition, qui dépilera les deux valeurs et empilera
le résultat.
1. Ecrire une classe CalculatricePile ayant pour
attribut un objet de type PileDeReels
(voir TP précédent),
représentant la pile dans laquelle sont stockés les
valeurs et
les résultats des opérations.
Ecrire un constructeur qui initialise les attributs.
Ecrire une méthode entrerValeur() qui
prend en paramètre un double et l'empile.
Ecrire la méthode public String toString()
qui affiche la valeur située au sommet de la pile (utile pour
visualiser le résultat de la dernière opération).
Ecrire quatre méthodes correpondant aux
quatre opérations de base (ajouter, soustraire, multiplier,
diviser).
2. Ecrire une classe TestCalculatricePile contenant
uniquement la méthode main().
Dans cette méthode, déclarer un objet
de type CalculatricePile, empiler plusieurs valeurs et tester
les
différentes opérations en affichant la valeur
située
au sommet de la pile après chaque opération (pour
vérifier
les calculs).
Que se passe-t-il dans le cas où on tente une
opération alors qu'il n'y a qu'un élément dans la
pile,
ou dans le cas d'une division par 0 ? Comment modifier la classe PileDeReels et les quatre
opérationspour que le
programme ne
plante pas ?
3. Sur le même
modèle que la classe CalculatricePile, écrire une
classe CalculatriceStack utilisant un attribut de type StackDeReels
à la place dePileDeReels. INDICATION : normalement il
vous suffit de remplacer l'attribut et le début du main(), et tout devrait
fonctionner... ou presque
4. Ecrire toujours sur le
même modèle une classe CalculatriceStack2
dans laquelle l'attribut est maintenant de type Stack et qui n'utilise plus ni PileDeReels ni StackDeReels.