• Aucun résultat trouvé

À remettre, au plus tard, dimanche 13 mars, avant la fermeture des laboratoires.

N/A
N/A
Protected

Academic year: 2022

Partager "À remettre, au plus tard, dimanche 13 mars, avant la fermeture des laboratoires."

Copied!
4
0
0

Texte intégral

(1)

IFT1170 A-B-C-D-L-M

Java et ses applications Énoncé du TP #2

35 points Session d'automne 2004

Chargés de cours : L.V. Nguyen, Y. Kadri et M. Reid Modalités :

À remettre, au plus tard, dimanche 13 mars, avant la fermeture des laboratoires.

(Chaque jour de retard entraîne une pénalité de 5 points.) Le travail est corrigé sur

35 points

(35 % des travaux pratiques).

Les travaux se font seul ou en équipe de deux, au maximum.

(Vous ne remettez alors qu'un seul travail.) Remise des travaux :

Vous devez remettre vos travaux sur papier, ainsi que de façon électronique.

(Cette procédure vous sera expliquée par vos démonstrateurs.)

Pour la remise papier, imprimez vos codes sources, ainsi que les résultats de l'exécution de vos programmes (placés en commentaire à la suite de vos programmes), et attachez-les à une page de remise de travaux (disponible sur le site du cours).

Remettez ensuite vos travaux à vos démonstrateurs, à la réceptionniste du campus Longueuil, ou dans une des boîtes de remise à l'Université de Montréal (au S-118, sur le mur entre X-115 et X-117, près de la porte 2196 du pavillon André-Aisenstadt).

N'oubliez pas de bien identifier vos travaux, tant sur papier que dans votre programme.

Indiquez votre nom et nom d'usager dans l'entête dans chacun de vos programmes.

Si vous travaillez en équipe, pensez à indiquer les coordonnées des deux coéquipiers ! Dépannage :

 Consultez le site du cours régulièrement, il contient de nombreuses informations, mises à jour régulièrement, concernant les travaux et la matière du cours :

http://www.iro.umontreal.ca/~dift1170

 Profitez des périodes de travaux pratiques (démonstration), des périodes de pratique libre (P. L.) et des séances de révision (solution des devoirs, solution de quelques anciennes questions d’examens). Des auxiliaires pourront vous venir en aide dans la réalisation de vos travaux. Pour l’horaire, veuillez consulter le site Web de la DESI :

http://www.desi.umontreal.ca/cours/horaire/documents/labos_cour.pdf

 Faites appel à vos démonstrateurs, en écrivant à leur adresse de courriel :

dift1170@iro.umontreal.ca

(Indiquez le sigle et la section cours, ainsi que le numéro du travail dans le sujet de votre message.)

Consultez la FAQ (questions fréquemment posées) sur le site du cours.

Consultez la référence du langage Java offerte par Sun:

http://java.sun.com/j2se/1.4.2/docs/api/index.html

(2)

Numéro 1 (20 points)

Tableaux d'objets, StringTokenizer, tri par sélection, toString() Vous disposez de deux fichiers de données en format texte (.txt) contenant les informations d'acteurs et de films.

Le fichier acteurs.txt est très simple: sur chaque ligne se trouve un numéro d'identification et le nom d'un acteur. Voici un exemple de données contenues dans le fichier:

46 Rachel Weisz

07 Dominique Blanc

23 Bill Murray

Le fichier films.txt conserve les informations d'un film sur deux lignes. Sur la première se trouvent l'année de sortie du film, suivie du titre du film. Sur la deuxième se trouvent une suite de numéros d'identification d'acteurs ayant joué dans ce film, tous séparés par une virgule. Voici un exemple de données contenues dans le fichier:

2000 Dancer in the Dark

19,21,14,29

1988 Dangerous Liaisons

34,35,32,39,08

Consignes

1. Réalisez la petite classe Acteur contenant:

a. Les champs pour conserver le numéro et le nom de l'acteur.

b. Un constructeur.

c. Des méthodes d'accès et de modification.

d. La méthode toString() qui retourne le nom de l'acteur.

2. Réalisez la classe Film contenent:

a. Les champs pour conserver l'année et le titre du film.

b. Un tableau d'objets Acteur pouvant contenir 10 acteurs.

c. Un constructeur qui reçoit l'année et le titre du film.

d. Des méthodes d'accès. (Attention: vous ne devez toutefois pas avoir de méthode qui retourne le tableau des acteurs lui-même !)

e. Une méthode pour ajouter un acteur (la méthode reçoit un objet Acteur).

f. Une méthode pour supprimer un acteur (la méthode reçoit un numéro d'acteur).

g. Une méthode de type boolean pour déterminer si un l'acteur dont le numéro est reçu en paramètre a un rôle dans le film.

h. La méthode toString() qui retourne le nom du film ainsi que les acteurs qui jouent dans ce film. Voici un exemple de ce que la méthode pourrait retourner:

The Avengers (1998) - Ralph Fiennes - Anne Bancroft

3. Réalisez une classe contenant la méthode main():

(3)

a. Remplissez un tableau d'objets Acteur (maximum 50 acteurs), en lisant le fichier des acteurs.

b. Remplissez un tableau d'objets Films (maximum 20 films), en lisant le fichier des films. Il s'agit de créer un objet Film, de rechercher les acteurs dans le tableau des acteurs d'après leur numéro d'identification, puis de les ajouter au film.

c. Triez les films (tri séquentiel) selon leur année de sortie.

d. Corrigez (par programmation, bien sur !) le nom de l'actrice "Cameron Diaz", dont le nom comporte une erreur dans le fichier des acteurs (il est orthographié

"Cameron Dioz").

e. Un film comporte plus d'acteurs que les autres. Recherchez et affichez le film qui comporte le plus d'acteurs.

f. Un acteur ne se retrouve dans aucun film. Recherchez et affichez l'acteur qui n'apparaît dans aucun film.

g. Supprimez les actrices "Cameron Diaz" et "Uma Thurman" du tableau des acteurs, ainsi que de tous les films dans lesquels elles ont joué.

h. Affichez le contenu du tableau des films après ces opérations.

Critères de correction

Manipulations (tri, recherches, etc.) des tableaux d'objets 11 points

Utilisation du StringTokenizer 2 points

Redéfinition de toString() 3 points

Fonctionnement, qualité, présentation, etc. 4 points

Numéro 2 (15 points)

Vector, tri rapide, recherche dichotomique

Lorsqu'on travaille avec une grande quantité de données, on doit apporter une attention

particulière aux algorithmes qu'on utilise: le tri par sélection et la recherche séquentielle ne sont plus suffisants...

Vous disposez d'un fichier texte (mots.txt) contenant plus de 60000 mots susceptibles de se retrouver dans un jeu de mots croisés; un mot par ligne.

Consignes

1. Réalisez la classe Dictionnaire, contenant:

a. Un vecteur (protected Vector) qui contiendra les mots (des String).

b. Un constructeur, qui reçoit le nom du fichier contenant les mots. Il devra:

i. Charger dans le vecteur tous les mots du fichier.

ii. Trier, avec le tri rapide (quick sort), le vecteur des mots.

c. Une méthode void chercher(String) qui reçoit un mot. La méthode devra:

i. Trouver le mot à l'aide de la recherche dichotomique.

ii. Afficher le mot, en plus des cinq mots qui le précèdent et qui le suivent, alphabétiquement.

2. Réalisez une classe contenant la méthode main():

(4)

a. À l'aide d'un Dictionnaire et de sa méthode chercher(String), permettez à l'usager de faire la recherche de mots, tant qu'il le souhaite.

Critères de correction

Vector 5 points

Tri rapide, recherche dichotomique 6 points

Fonctionnement, qualité, présentation, etc. 4 points

Remise électronique du TP2:

 Allez dans votre dossier Documents personnels (disque réseau R) situé sur le bureau et créer le dossier remise-tp2 (faites bien attention de ne pas mettre de majuscules ou d’espaces blancs dans le nom du dossier).

 Déposez vos programmes dans ce nouveau dossier. Vérifiez que les noms de vos fichiers ne contiennent ni accents, ni espaces blancs, ni caractères spéciaux (autrement dit, les noms ne contiennent que des lettres et/ou des chiffres).

 Double-cliquez sur l’icône Branchement sur UNIX situé dans le dossier

« Raccoursis DESI »sur le bureau. Branchez-vous sur Unix; c’est-à-dire entrez votre nom d’usager et votre mot de passe Unix. À l’incitation, tapez la commande:

remise ift1170 tp2 remise-tp1/*

Faites bien attention de respecter les majuscules et les minuscules !

À tout moment, vous pouvez vérifier quels fichiers vous avez remis en tapant la commande:

remise -v ift1170 tp2

La liste des fichiers remis sera alors affichée. Si tout c’est bien passé, tapez

"exit", puis fermez la fenêtre de Telnet.

La remise électronique prend note du jour de la remise; les T.P. peuvent donc être remis en retard (avec pénalité). Vous pouvez faire une remise électronique autant de fois que vous le voulez, mais respectez la règle suivante: remettez toujours votre T.P. du même compte. Chaque nouveau fichier remis écrase le fichier du même nom remis auparavant; seule la dernière version sera alors conservée et corrigée.

La correction des travaux :

Suite à une recommandation de la direction de la DESI et du DIRO, la qualité de l'algorithme et de la programmation occupent une place importante dans

(5)

l'évaluation d'un travail. Un programme qui fonctionne est bien mais insuffisant pour mériter une meilleure note!

Veuillez consulter les critères de correction de chacun des numéros d'un travail.

Bon travail ! -- L'équipe du IFT1170

Références

Documents relatifs

Vous disposez du fichier pays.cpp , contenant entre autres l'ébauche d'une classe contenant les informations d'un pays et une fonction pour lire et remplir un tableau d'objets

Vous disposez du fichier pays.cpp , contenant entre autres l'ébauche d'une classe contenant les informations d'un pays et une fonction pour lire et remplir un tableau d'objets

Quinte flush (straight flush): quinte dont toutes les cartes sont de la même série, mais dont la carte la plus forte est inférieure à l'as.. Par exemple: K♥-Q♥-J♥-10♥-9♥ est

Notez: vous utilisez la classe que vous avez réalisé au travail pratique no.2 comme classe de base, mais un fichier Dictionnaire.java contenant une version parfaitement

[r]

En vous souhaitant une bonne réception de ce document important pour la poursuite des études de votre enfant et en vous demandant de nous faire parvenir avant le 20 avril le talon

En vous souhaitant une bonne réception de ce document important pour la poursuite des études de votre enfant et en vous demandant de nous faire parvenir avant le 21 avril le talon

1) La formation que l’étudiant souhaite suivre dans le cadre de sa 5ème année ne doit pas être proposée dans son IEP d’origine. 2) L’étudiant doit obtenir au