IFT1166 - igt.net

... de pratique libre (P. L.) et des séances de révision (solution des devoirs,
solution de quelques anciennes questions d'examens). ... Critères de correction.

Part of the document


IFT1166 A-B-L-M
POO avec C++ |Énoncé du TP #1
25 points |Session d'été 2005 | |Chargé de cours : Le Van Nguyen
Do you have advice for beginning
computer science student?
- View the computer as a tool, and concentrate on
what it can help you
accomplish. PCs can't change the world. You can. Anthony Russo Laboratoire Bell (U.S.A.)
Modalités :
À remettre, au plus tard, dimanche le 29 mai 2005,
avant la fermeture des laboratoires.
(Chaque jour de retard entraîne une pénalité de 05 points.) Le travail est corrigé sur 25 points (25 % 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 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/horaire.htm
- 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 (7 points) Premier contact, entrée/sortie standard,
fonctionnalités du C++, ... Ce petit numéro vise à vous permettre de vous familiariser avec le C++ et à
certaines de ses fonctionnalités (les entrées/sorties, la transmission de
valeurs par des paramètres en référence, les commentaires en ligne, le type
booléen 'bool', etc.). Réalisez un petit programme qui demande à l'utilisateur deux entiers, puis
qui affiche les diviseurs communs (et leur nombre) de ces deux nombres. Par exemple, voici comment pourrait fonctionner le programme: Entrez une 1re valeur entiere: vingt-quatre
Erreur: entrez un nombre entier.
Entrez une 1re valeur entiere: 24
Entrez une 2e valeur entiere: 12
Diviseurs communs de 24 et 12: 1, 2, 3, 4, 6, 12 (6 diviseurs) Le programme devra ensuite permettre à l'utilisateur de recommencer
l'opération tant qu'il le souhaite. Pour ce numéro, portez attention aux
détails suivants: . Le programme doit valider les valeurs entrées par l'utilisateur,
afficher un message d'erreur pertinent et lui permettre de
recommencer, s'il entre une valeur incorrecte (comme par exemple,
entrer du texte lorsqu'il devrait entrer un nombre, etc.)
. Mettre des virgules seulement entre les diviseurs (ex: "1, 2, 3" est
bien, mais "1, 2, 3," ou ", 1, 2, 3" ne le sont pas !)
. Mettre au pluriel le mot "diviseur" au besoin (ex: 1 diviseur, 4
diviseurs). De plus, votre programme devra comporter une fonction nommée lireEntier qui
demande à l'utilisateur d'entrer une valeur entière et qui la retourne dans
un paramètre transmis par référence. Critères de correction Validation des valeurs entrées 2 points
Respect des autres détails exigés 2 points
Fonctionnement (affichages et résultats exacts) 2 points
Qualité, présentation, etc. 1 point
Numéro 2 (9 points) Manipulations de valeurs dans des tableaux Déclarez trois tableaux pouvant contenir au maximum 10 valeurs chacun. Le premier, un tableau de chaînes de caractères (string), contiendra les
noms de personnes. Les deuxième et troisième, des tableaux de réels
(double), contiendront les tailles (en mètres) et poids (en kilogrammes)
des personnes. À l'aide d'une fonction lirePersonnes, permettez à l'utilisateur d'entrer
les données de personnes (autant qu'il le veut entre 1 et 10). Une fois les tableaux remplis, faites le nécessaire pour déterminer et
afficher: . La taille moyenne des personnes dont le poids dépasse 45 kilogrammes.
. Le poids moyen des personnes dont la taille dépasse 1,60 mètres.
. Toutes les informations de la personne ayant la plus grande taille.
. Toutes les informations de la personne ayant le poids le plus élevé. Pour ce numéro: . Vous n'avez pas à faire de validation complète des valeurs entrées par
l'utilisateur (on présume que les données sont entrées correctement). Aperçu de ce que pourrait avoir l'air la lecture des données: Entrez le nom de la personne #1: Leonard Gratton
Entrez la taille (en m) de la personne #1: 1.74
Entrez le poids (en kg) de la personne #1: 83
Lire une autre personne ? (o/n) Critères de correction Remplissage des tableaux 2 points
Fonctionnement (résultats exacts) 5 points
Qualité, présentation, etc. 2 points
Numéro 3 (9 points) Tableau de structures, patron de fonction Reprenez votre numéro 2, mais au lieu d'utiliser trois tableaux (un tableau
de chaînes et deux tableaux de réels), utilisez un seul tableau de
structures Personne. La structure Personne contient:
. Les trois informations d'une personne (nom, taille et poids).
. Une méthode afficher() pour afficher toutes les information de cette
personne. Une fois le programme adapté, ajoutez également une fonctionnalité
permettant de supprimer une personne:
1. Le programme demande d'abord à l'utilisateur le nom de la personne à
supprimer.
2. Il effectue ensuite la recherche à l'aide d'une fonction
indicePersonne qui retourne l'indice de la personne dans le tableau,
si elle est trouvée, ou -1 si elle n'est pas trouvée.
3. Enfin, le programme effectue la suppression de l'élément (la personne)
dans le tableau à l'aide d'un patron de fonction supprimer. Finalement, affichez toutes les personnes (restantes) du tableau des
personnes. Critères de correction Adaptation en utilisant la structure Personne 3 points
Recherche, suppression (patron de fonction), affichage 4 points
Qualité, présentation, etc. 2 points
Remise électronique du TP1: 1. Allez dans votre dossier Documents personnels (disque réseau R) situé
sur le bureau et créer le dossier remise-tp1 (faites bien attention de
ne pas mettre de majuscules ou d'espaces blancs dans le nom du dossier).
2. 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).
3. 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 tp1 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 ift1166 tp1 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! Veuillez consulter les critères de correction de chacun des numéros d'un
travail. Bon travail ! -- L'équipe du IFT1166