• Aucun résultat trouvé

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

N/A
N/A
Protected

Academic year: 2022

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

Copied!
1
0
0

Texte intégral

(1)

IFT1166 A+B et L+M

POO avec C++ Énoncé du TP #2

35 points Session d'été 2005

Chargé de cours : Le Van Nguyen

Do you have advice for beginning computer science student?

- Keep things simple. Find real problems and solve them in the

simplest possible way.

Most of all, have fun with everything you do and make sure

everyone around you is having fun!

Radia Perlman

Sun Microsystem (U.S.A.)

Modalités :

À remettre, au plus tard, dimanche le 19 juin, avant la fermeture des laboratoires.

(Chaque jour de retard entraîne une pénalité de 10 points.)

Toutes les matières du TP2 sont demandées à l’intra => essayez de faire le TP2 avant l’intra malgré que la remise du TP2 aura lieu après l’intra.

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.

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/~dift1166

 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

(2)

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/

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

dift1166@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.

Numéro 1 (10 points : encapsulation, string, tableau d’objets)

(Les matières du numéro 1 sont présentées durant la semaine du 16 mai. Certaines fonctions membres sont expliquées en classe)

Réalisez un programme en C++ qui comporte la classe incomplète suivante :

class Etudiant {

private:

string codePerm; // exemple "TREJ15028009"

int nbCafe; // nombre de tasses de café consommées par jour public:

// constructeurs, méthodes à écrire char getSexe()const { return . . . } int getAge() const

{

return 105 - atoi(codePerm.substr(8, 2).c_str());

} . . . };

Complétez la classe, en réalisant des constructeurs et autres fonctions membres appropriées afin de satisfaire aux exigences suivantes :

1. Dans la première démonstration (fonction demo1()) du fonctionnement de cette classe, on instancie (construit) deux objets de la classe Etudiant :

etud1 : avec code permanent "TREJ15028009" est né le 15 février 1980. Il consomme 3 tasses de café par jour.

etud2 : avec code permanent "CHAN27568503" est née le 27 juin 1985. Elle consomme 1 tasse de café par jour (valeur par défaut).

On affiche les informations de ces deux étudiants comme suit :

Informations de TREJ15028009

- sexe : masculin - age a 2005 : 25 an(s)

- cafe consomme : 3 tasse(s) par jour

(3)

Informations de CHAN27568503

- sexe : feminin - age a 2005 : 20 an(s)

- cafe consomme : 1 tasse(s) par jour

Déterminez et affichez les informations de l’étudiant qui consomme plus de café entre

etud1 et etud2.

Cette première démonstration permet aussi d’afficher la consommation de café originale de l’objet etud1, de réduire cette consommation à trois tasses de moins et de réafficher la consommation après la réduction.

Réaffichez les informations de l’étudiant qui consomme plus de café entre etud1 et

etud2.

2. Dans la deuxième démonstration (fonction demo2()) du fonctionnement de cette classe, on déclare et initialise un tableau de 5 étudiants, par exemple :

Etudiant etud[] = {

Etudiant("TREJ15028009", 2), Etudiant("CHAN27568503"), Etudiant("ARCP02067001", 5), Etudiant("LAFJ31628104", 0), Etudiant("TREM01128607") };

int nbEtud = sizeof(etud) / sizeof(Etudiant);

a) affichez le contenu de ce tableau.

b) supprimez le deuxième et le troisième étudiant puis affichez le contenu du tableau.

c) déterminez et affichez les informations de l’étudiant le plus âgé dans le tableau restant.

Critères de correction

Classe Etudiant, pointeur this, méthodes get, set, ... 3 points

Bon fonctionnement 4 points

Présentation, qualité, etc. 3 points

Numéro 2 (10 points : surcharge des opérateurs, tableau dynamique d’objets)

(Une partie des matières du numéro 2 sont présentées durant la semaine du 16 mai.

Le reste seront présentées dans la semaine du 23 mai)

En classe, on a expliqué l’exemple tab_dyna.cpp pour un tableau dynamique des structures;

chaque élément de ce tableau est une structure de type Nation.

(4)

Adaptez l’exemple pour un tableau dynamique de pays. Chaque élément sera un objet d'une classe Nation. Le programme permettra :

 de surcharger l’opérateur < pour trier ce tableau des pays selon leur population.

On exige, par ailleurs, un patron du tri par sélection.

 de surcharger l’opérateur d’affichage <<

On affiche les 5 premiers pays d’Asie avant le tri, puis les 10 premiers pays d’Amérique après le tri, en utilisant, entre autres, cette surcharge de l’opérateur d’affichage.

 de déterminer et d’afficher :

a) la liste des pays dont le nom du pays est le même que le nom de la capitale (exemple : Panama, etc.)

b) le pays le plus peuplé d’Afrique.

c) le pays le plus grand en superficie d’Europe.

Critères de correction :

Classe Nation, pointeur this, surcharge des opérateurs, etc. 3 points

Tableau dynamique des pays, fonctionnement 4 points

Présentation, qualité, etc. 3 points

Numéro 3 (15 points : liste linéaire des pays)

(La notion de liste linéaire chaînée sera présentée dans la semaine du 23 mai avec l’exemple ListePers.cpp dont 30 points de l’intra seront reliées à cet exemple).

Réalisez un programme en C++ qui permet de lire le fichier des pays participant aux Jeux Olympiques d’Athènes en 2004 (pays_jo.e05) afin de créer la liste linéaire chaînée des pays d’Europe.

On ajoute ensuite le pays suivant au début de la liste :

Nom : LUXEMBOURG

Capitale : LUXEMBOURG

Superficie : 2586 km2

Population : 442972 habitants On détermine et affiche les informations :

1. du pays d’Europe ayant le moins d’habitants.

2. du pays d’Europe le plus petit en superficie.

3. du pays d’Europe dont le nom du pays contient plus de lettres que le nom des autres pays (France contient 6 lettres, Allemagne en contient 9, etc.)

Le programme lit un deuxième fichier athenes.txt dont chaque ligne contient le nom d’un pays participant, suivi du nombre de médailles d’or, d’argent et de bronze remportées. Exemple :

ETATS-UNIS 35 39 29 CHINE 32 17 14 RUSSIE 27 27 38

(5)

Pour chaque nom de pays lu, on cherche dans la liste linéaire ce pays, puis on affiche toutes les informations du pays trouvé, ainsi que le nombre de médailles d’or, d’argent et de bronze remportées.

Critères de correction

Liste linéaire chaînée des pays, bon fonctionnement 10 points

Présentation, qualité, etc. 5 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 « Raccourcis 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 ift1166 tp2 remise-tp2/*

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 ift1166 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 l'évaluation d'un travail. Un programme qui fonctionne est bien mais insuffisant pour mériter une meilleure note!

(6)

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

Bon travail ! -- L'équipe du IFT1166

Références

Documents relatifs

Anne Muxel, CEVIPOF (Sciences-po) Loredana Sciolla, Université de Turin Ilvo Diamanti, Université d’Urbino 18h : clôture de la première journée Jeudi 11 mai 2006 Salle Louis

Le Produit Intérieur Brut mondial nominal, calculé selon les taux de change officiel, est estimé à 87 799 milliards de dollars américains selon la Banque Mondiale soit, pour

Les pays et territoires suivants sont désignés comme étant bénéficiaires des traitements tarifaires indiqués.. Les abréviations des traitements tarifaires sont définies à

Blottie au cœur de la montagne catalane, tout près de l’Andorre et de l’Espagne, le Parc Naturel Régional des Pyrénées Catalanes, entre Cerdagne et Capcir, se décline au

Commentaires/Eléments clés : Les principes relatifs aux activités de prévention, de traitement et de prise en charge du VIH/SIDA et des IST en Afrique du Sud ont été adoptés dans

Guide de lecture : le solde aéronautique au premier semestre 2016 se dégrade de 2,9 milliards par rapport au deuxième semestre 2015, en raison d’une baisse

À l’exclusion des pays européens et des territoires sur leur juridiction, les pays admissibles non prioritaires sont ceux qui figurent sur la Liste des bénéficiaires d'aide publique

Fortis et ABN AMRO annoncent une première étape dans la cession de certaines activités de la BU Pays-Bas d’ABN AMRO Ce jour, Fortis et ABN AMRO annoncent qu’une première étape