IFT 1969
Programmation scientifique en C/C++
Nouvelle version Énoncé du T.P. #3 Barème : corrigé sur 40
points
Session : hiver 2005
Fermeture des laboratoires pour la session d’hiver 2005 : consulter l’horaire des labos vers
le 07 ou 14 avril.
Chargé de cours: Le Van N. (levan@iro.umontreal.ca) Modalités :
À remettre, au plus tard, jeudi le 21 avril 2005, avant la fermeture des labos.
Pénalité du retard :
22 avril : - 5 points 23 avril : -10 points 24 avril : -15 points
Attention: le 24 avril est la dernière journée d'ouverture des labos pour la session.
(Aucun travail ne sera accepté après cette date !)
Le travail est corrigé sur
40 points
(40 % 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.
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).
Pour recevoir votre travail après la correction, remettez-le dans une enveloppe pré affranchie et pré adressée (c’est la fin de session!)
Remettez ensuite vos travaux à vos démonstrateurs 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/~dift1969
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/
Faites appel à vos démonstrateurs, en écrivant à leur adresse de courriel :
dift1969@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.
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.
Numéro 1 (16 points, matière : calcul matriciel) :
On dispose du fichier de type texte
«mat_h05.txt»
qui contient les informations de matrices etles opérations à effectuer. On met accessible aussi le fichier
matrice.c
qui comporte un programmeincomplet en C. Les tâches à réaliser pour le numéro 1 sont décrites dans la partie des commentaires
au début du programme.
Jeudi le 10 mars, on explique en classe la notion de tableau à 2 indices, on donne un exemple
sur la gestion des notes du IFT 1969 (fichiers : note1969.txt et tableau_2.c), on explique aussi
le format du fichier mat_h05.txt et la réalisation de quelques opérations comme :
+ : addition de 2 matrices x : multiplication de 2 matrices
lecture des coordonnonnées d’une matrice, affichage d’une matrice etc . . ..
Il reste à compléter le programme matrice.c pour effectuer certaines opérations matricielles.
Critères de correction du numéro 1 :
1. Présentation ...2 points
a) Le programme doit être commenté de façon adéquate (identification des auteurs, description du codage, description des variables, etc).
b) choix d’identificateurs plus significatifs c) Indentation et aération du code.
d) Lisibilité des résultats.
2. Qualité de la programmation pour les fonctions …. 7 points
3. Bon fonctionnement... 7 points
Numéro 2 (16 points, matières : type énumération, tableau des structures) :
(matière du jeudi le 24 avril 2005)
En classe, on a déjà expliqué le programme
tableau_2.c
pour gérer les notes du coursIFT 1969 avec un tableau à 2 indices.
On fournit un fichier de type texte nommé
Note1969.H05
dont chaque ligne contient les informations suivantes d’un étudiant du cours IFT 1969 :- son code permanent : une chaîne de 12 caractères
- un caractère représentant la section (le groupe d’inscription : A ou B) - les 5 notes (intra, final, tp1, tp2, tp3)
Écrivez un programme en langage C utilisant, entre autres : - le type énumération
- un tableau de structures (struct) qui permet de :
1. lire le fichier, remplir le tableau de structures, transmettre via pointeur le nombre
effectif d’étudiants lus;
2. calculer les notes et déterminer le code littéral
3. afficher les informations de 10 premiers et de 5 derniers étudiants avant le tri
4. trier les données selon leurs codes permanents
5. afficher les informations de 10 premiers et de 5 derniers étudiants après le tri
6. chercher et afficher les informations de 3 étudiants avec leurs codes permanents suivants :
ELKM28097006
THAU09587804
SAMM22068405
Critères de correction du numéro 2 :
1. Présentation ...2 points
a) Le programme doit être commenté de façon adéquate (identification des auteurs, description du codage, description des variables, etc).
b) choix d’identificateurs plus significatifs c) Indentation et aération du code.
d) Lisibilité des résultats.
2. Qualité de la programmation pour les matières visées du numéro 2 …. 7 points
3. Bon fonctionnement... 7 points
Numéro 3 (08 points, matières : notion de pointeur)
Écrivez un programme en C (suffixe .c) dont la fonction principale comporte les déclarations suivantes :
double final[] = { 85.25, 76.50, 52.80, 67.50, 79.40, 92.25, 80.75 , 72.50 };
char section[] = { ‘A’, ‘B’, ‘A’, ‘A’, ‘A’, ‘B’, ‘B’, ‘A’ };
int nbEtud = sizeof(final) / sizeof(double);
Le programme permet :
1. d’afficher (en utilisant la notion de pointeur) le contenu de ces deux tableaux
2. de calculer, de transmettre des résultats via pointeurs puis les afficher : a) la meilleure note et la moyenne de l’examen final des étudiants de la
section ‘A’
b) la meilleure note et la moyenne de l’examen final des étudiants de la section ‘B’
3. de compter, de transmettre des résultats via pointeurs puis les afficher : a) le nombre d’étudiants de la section ‘A‘ dont le final dépasse 80.0 le nombre d’étudiants de la section ‘A‘ dont le final dépasse la moyenne
du final de cette section;
b) le nombre d’étudiants de la section ‘B‘ dont le final dépasse 75.2 le nombre d’étudiants de la section ‘B‘ dont le final dépasse la moyenne
du final de cette section.
Critères de correction du numéro 3 :
1. Présentation ...2 points
e) Le programme doit être commenté de façon adéquate (identification des auteurs, description du codage, description des variables, etc).
f) choix d’identificateurs plus significatifs g) Indentation et aération du code.
h) Lisibilité des résultats.
3. Bon fonctionnement utilisant de fonctions et pointeurs 6 points
Jeudi le 07 avril, on présentera les grandes lignes du C++, quelques idées de
la programmation orientée objet (POO) mais on ne posera
aucune question
au TP3 ni au final de cet hiver 2005.
Bonne chance et bon succès ! Équipe du IFT 1969, hiver 2005
Cours donnés par Le Van N. cet été 2005 :
IFT 1166 à 2 campus (sections A+B à UDM : le jour, sections L+M à Longueuil : le soir)
IFT 1170 (Programmation Java avec applications) Horaire des cours d’été 2005 :
http://www.desi.umontreal.ca/cours/horaire/horaire.htm
Voir le nouvel schéma des cours de programmation offerts par la DESI à compter de l’été 2005.