IFT1170 - TRAVAIL PRATIQUE #2 - 10 juin 2001

Minerva découvre les objets et les romains calculent toujours ...

Mohamed Lokbani


DATE LIMITE: 01 juillet 2001 minuit, avec une pénalité de 2 points par jour de retard.


Conseils
  • À faire seul ou à 2. Il est quand même conseillé de faire le TP à deux (maximum).
  • Lisez l'énoncé de A à Z, puis en cas de problèmes,
    contactez-nous (démonstrations, séances de consultation, pauses durant les séances de cours).
  • N'attendez pas la semaine précédant la remise avant de commencer... vous n'aurez pas le temps!
  • 1. BUT: Ce TP a pour but de vous faire pratiquer les matières suivantes:
  • programmation orientée objet en Java
  • utilisation de quelques notions algorithmiques
  • 2. Description:
    Dans ce travail pratique, vous allez améliorer la conception de votre calculatrice romaine, en utilisant une conception orientée objets, et en permettant cette fois-çi en plus des opérations d'addition et de soustraction, les opérations de multiplication de de division, sur des chiffres romains. En plus de ces modifications conceptuelles, vous devez aussi valider par vous même l'entrée.

    3. Travail à réaliser:
    Votre tâche est d'écrire un programme en java qui prend en entrée une opération mathématique en chiffres romains, qui peuvent être incorrectement écrits, et qui donne le résultat en chiffre romain de cette opération. Par exemple:

    MMI - MCMLXX + X * V / X = 2001 - 1970 + 10 * 5 / 10 = (2001 - 1970 + ((10 * 5) / 10)) = 36 = XXXVI

    Vous devez faire attention à ce qui suit:

    3.1 Priorité des opérateurs

  • Les expressions sont évaluées en fonction de l'ordre des priorités des opérateurs.
  • En cas d'opérateurs de même priorité, c'est l'associativité de l'opérateur qui détermine le sens d'évaluation de l'expression.

    3.2 Traitement des entrées incorrectes

    IMMI + VL : ici IMMI est incorrect car IM représente 999 la valeur est supérieure à MI (1001) chose impossible dans le système décimale, il sera de même aussi dans le système romain. VL car V n'est pas une puissance de 10. Pour l'ensemble des contraintes, voir l'énoncé du TP#1 ainsi que les mises à jour. Vous devez quitter le programme avec le message d'erreur suivant (on affiche que les nombres incorrects voir pour l'exemple précédent, la sortie est outerr.txt. Sinon le même format d'affichage utilisé dans le TP#1 doit être reproduit dans le TP#2.

    3.3 Conception orientée objet

  • La classe tp2 doit contenir la méthode main et rien d'autre. À partir de cette méthode, vous faites des appels aux méthodes, que vous allez décrire dans les autres classes (à vous de les concevoir: classes, constructeurs, les "assesseur", les "modificateur" etc.). De ce fait, la méthode main doit contenir que le strict minimum d'instructions permettant le fonctionnement correct de votre programme.

  • Vous devez inclure dans vos commentaires, une description sommaire (en quelques lignes) de votre conception orientée objet.
  • 4. Documents à remettre:
    Votre code Java sera écrit dans le fichier tp2.java attention au nom du fichier en MINUSCULE Vous devez remettre votre fichier (tp2.java) sous format électronique au plus tard le dimanche 1 juillet à minuit (nuit de dimanche à lundi).

    remise pift1170 tp2 tp2.java

    Il vous est également demandé de remettre une version papier de votre code. Vous pouvez me remettre directement
    votre TP, soit au début ou à la fin d'un cours. Vous pouvez également le déposer au local (3225 du pavillon André-Aisenstadt).
    En cas d'absence, veuillez glisser votre listing sous la porte. Une page de garde pour la remise des documents
    est disponible sur la page web de ce TP.

    5. Contraintes et vérification du format d'affichage:
    Idem que le tp#1.

    6. Barème:
    Ce TP2 est noté sur 15 points. Voir page web TP#2 pour plus de détails sur les critères de correction.

    7. Mise à jour:
    10-06-2001 diffusion