--------------------------------------------------
Subject: Questions/Reponses
---TP1--- -5-
Date: Fri, 15 Oct 1999 01:19:31 -0400
From: Mohamed Lokbani <lokbani@IRO.UMontreal.CA>
To: gift1166@IRO.UMontreal.CA
--------------------------------------------------
Subject: Questions/Reponses
---TP1--- -4-
Date: Sun, 10 Oct 1999 04:20:40 -0400 (EDT)
To: gift1166@IRO.UMontreal.CA
From: Mohamed Lokbani <lokbani@IRO.UMontreal.CA>
--------------------------------------------------
Subject: [IFT1166] Questions/Reponses
---TP1--- -3-
Date: Wed, 06 Oct 1999 12:46:03 -0400
From: Mohamed Lokbani <lokbani@iro.umontreal.ca>
To: gift1166@iro.umontreal.ca
--------------------------------------------------
Subject: [IFT1166] Questions/Reponses
---TP1--- -2-
Date: Tue, 05 Oct 1999 14:28:29 -0400
From: Mohamed Lokbani <lokbani@IRO.UMontreal.CA>
To: gift1166@IRO.UMontreal.CA
--------------------------------------------------
Subject: [IFT1166] Questions/Reponses
TP1.
Date: Mon, 04 Oct 1999 19:45:48 -0400
From: Mohamed Lokbani <lokbani@IRO.UMontreal.CA>
To: gift1166@IRO.UMontreal.CA
--------------------------------------------------
=======================================================================================
Subject: Questions/Reponses
---TP1--- -5-
Date: Fri, 15 Oct 1999 01:19:31 -0400
From: Mohamed Lokbani <lokbani@IRO.UMontreal.CA>
To: gift1166@IRO.UMontreal.CA
Bonjour,
ci-joint les reponses aux quelques questions posees a propos du TP-1.
N'attendez pas la derniere minute ......
--------------
-1-
> jài cherche partout le curses.h et je le retrouve nulle part,
et ni le
> conio.h je sais vraiment pas ou trouver le clrscr();
>
j'ai deja repondu a propos du conio, et j'avais deja dit que c'est pour PC.
pour linux, tu as "curses.h", son manuel n'est pas disponible, mais
tu peux
lire
son header file (*.h) a :
/usr/include/curses.h
c'est ecrit en ..... C++
Bref, tu peux te passer de ces fonctionnalites, il ne t'a pas ete demande
de
"peindre"
un tableau de Monet! Juste de repondre aux questions du TP.
------------------
-2-
> est ce qu'on a le droit de changer dans libtp1.h et ecrire
> typedef struct{
> ...
> } eleve;
> puis annoncer plus loin eleve list[max];?
>
en quoi cela te derange de le laisser comme il est?
un fichier entete est un fichier entete, tu le laisses comme il est.
------------------
-3-
> au fait, je me demandais aussi si on pourrait bien ajouter des fonctions
> dans la structure, en fin, peux tu la changer un peu? est ce juste
un
> exemple, ou devons nous la suivre?
>
tu dois la suivre! pour les fonctions il y a de la place ailleurs.
Mohamed Lokbani
=======================================================================================
Subject: Questions/Reponses
---TP1--- -4-
Date: Sun, 10 Oct 1999 04:20:40 -0400 (EDT)
To: gift1166@IRO.UMontreal.CA
From: Mohamed Lokbani <lokbani@IRO.UMontreal.CA>
Bonjour,
>>j'aimerais savoir si dans le devoir nous devons gerer
>>les erreurs entrees par l'utilisateur au clavier??
la reponse est oui a un test pres.
la verification doit se tenir aux chiffres mais pas aux
lettres, i.e.
vous entrez un chiffre au clavier, il faut que l'action
corresponde;
par contre si vous entrez une lettre, normalement vous devez
signaler l'erreur a l'utilisateur. Cependant, votre demonstrateur
m'a informe qu'il vous a epargne de ce test, i.e. qu'il etait
d'accord pour que vous ne fassiez pas le test de verification
suivant: est-ce un chiffre ou une lettre?
ceux qui ont inclus ce test, c'est bon, pas besoin d'aller
faire machines arrieres.
ceux qui ne l'ont pas fait, et qui testent leur systeme en
entrant au clavier une lettre au lieu d'un chiffre,
vous allez constater que le systeme part dans une boucle infinie.
il y a une maniere propre pour coder cela, et eviter ce probleme,
mais comme je l'ai deja signale, votre demonstrateur a deja donne
son feu vert pour que vous ne fassiez pas ce test.
A ce sujet voir l'exemple de la page 29/30 du livre "Programmer
en C++" de Claude Delannoy
>>De plus je cherche une fonction pour arrondir une
>>variable double, mais je n'en trouve pas dans le
>>help. Pourriez-vous m'aider avec ca svp??
tu as mixe les choses! Je suspecte que tu cherches plutot une fonction
qui permet d'afficher un chiffre arrondi, plutot que d'arrondir une
variable lors d'un calcul?
Si c'est le cas, Relies bien les exos de la demo01 & la solution
disponible sur la page web du cours.
Si ce n'est pas le cas, developpes un peu plus ta question, pour me
permettre
de cerner ce que tu voudrais faire avec.
Mohamed Lokbani
=======================================================================================
Subject: [IFT1166] Questions/Reponses
---TP1--- -3-
Date: Wed, 06 Oct 1999 12:46:03 -0400
From: Mohamed Lokbani <lokbani@iro.umontreal.ca>
To: gift1166@iro.umontreal.ca
Bonjour,
SVP qd vous m'adressez un email, incluez ce qui suit dans le subject:
[IFT1166] puis_le_titre_de_votre_email
histoire de pouvoir trouver plus rapidement votre email ds mon mailbox.
>>>Encore une autre question: jusqu'a quel point voulez-vous qu'on teste
>>>l'utilisateur?
>>>-Le programme doit-il verifier que les noms et prenoms ont moins
de 256
>>>caracteres? (idem pour le programme)
>>>-Faut-il verifier que le code permanent a 4 lettres puis 8 chiffres?
>>>-Faut-il mettre l'entree de l'utilisateur en majuscule ou supposer
qu'il
>>>va le faire tout seul?
>>>-Faut-il verifier que les notes fournies n'excedent pas 10, 15,
20 ou 40?
>>>... bref, a-t-on a verifier autre chose que la longueur du tableau
>>>Etudiant insere grace a load_data? Est-ce que le format des valeurs
qu'on
>>>a a saisir sera conforme?
Ds l'enonce du TP il y avait ce passage ....
------------------------------
Efficience : 2 points
La manière
avec laquelle vous allez coder votre programme.
Comment vous
allez manipuler le tableau de données? L'espace
mémoire
utilisé etc.
------------------------------
Si vous voulez etre note sur 10, mais avec un plafond max de 8 (i.e.
vous
perdez d'office les 2 points de "l'efficience"), ca ne me derange pas!
Donc je prefere eviter de repondre aux questions que cette etudiante
a
pose, histoire de lui permettre d'etre notee sur 10.
Les questions que tu as pose releves du programmeur, je ne peux pas
te dire
ce que tu dois faire et ce que tu ne dois pas faire. Par contre, je
me mettrai a la
place de l'utilisateur qui aura pour tache de tester la robustesse
de ton programme.
J'ai donne une specification assez detaillee, a toi de la transcrire
correctement en prenant compte des "petits details" ... oh combien
important.
Pourquoi avoir mentionne alors en haut et en large que la taille maximale
du
tableau sera limitee a 100. Car les "petits details" vous aurez pris
plus de temps a
implementer si cette taille etait "tres elevee". Je me suis permis
aussi de faire
quelques supposions pour la aussi, reduire la complexite du probleme
(voir l'enonce du tp).
En conclusion, relire la specification et aides toi du fichier resultat
et
du fichier d'entete (libtp1.h).
>>>J'aimerais savoir comment ouvrir (plutôt lire ) un fichier
binaire en C++.
>>>Est-ce que c'est comme en C ?
tu cherches cela juste pour ton info personnelle ou pour le TP?
Si c'est pour le TP, normalement t'as pas besoin de cela.
Si pour ton info perso, les commandes C sont valables en C++ (a qcqs
problemes pres, voir le cours pour cela). Pour le C++, il a des fonctions
propres a
lui pour manipuler les fichiers. Nous allons voir cela, ds la 12e semaine
(voir description du
cours) ds le chapitre "les flots" (flux).
>>>les fonctions ci-dessous fonctionnent en C, mais pas en C++. Par
>>> quelles fonctions puis-je les remplacer pour que cela fonctionne?
>>> flushall();
>>> getche();
>>> strupr(); //strupr: string upper : en majuscule
ce ne sont pas des fonctions standard C-ANSI.
getche();
strupr();
flushall();
ne fonctionneront que sur dos/windows. Par ce qu'elles ne sont pas presentes
sur les autres plateformes, on ne peut pas ecrire qu'elles "fonctionnent
en C".
Je ne connais pas de fonctions equivalentes pour getche & strupr.
Tu peux
utiliser getchar meme si elle n'a pas le meme role que getche. Pour
strupr
l'equivalent est: toupper, sauf qu'elle traite caractere par caractere
et non pas une chaine
entiere.
voir ds la librairie C/C++ le fichier entete:
ctype.h
il contient les fonctions de type & conversion de type.
Pour flushall, voir iostream.h la commande la plus proche est : flush
(pour
stdio.h c'est fflush).
Mohamed Lokbani.
=======================================================================================
Subject: [IFT1166] Questions/Reponses
---TP1--- -2-
Date: Tue, 05 Oct 1999 14:28:29 -0400
From: Mohamed Lokbani <lokbani@IRO.UMontreal.CA>
To: gift1166@IRO.UMontreal.CA
Bonjour,
>>Je voulais juste vous signaler que lorsqu'on execute notre programme
et
>>que l'on affiche les donnees que la fonction load_data nous donne,
les
>>notes finales de vos eleves sont toutes zero... Quelles que
soient leurs
>>notes de devoirs ou examens!
hier, j'avais ecrit ....
=================
Conseil:
Lire attentivement l'enonce du tp1 & aidez vous du fichier resultat.txt
pour
le solutionner.
=================
Ds l'enonce, il y avait le passage suivant:
nom de paragraphe :
3. Fichiers mis à votre disposition
----------------------------------
[passage]
Notez bien que le tableau "Etudiant" a une
taille maximale de 100
éléments (ne peut contenir plus
de 100 éléments du type "eleve"). A
vous de vérifier que la liste ne déborde
pas de la taille
préalablement fixée. Il est
à noter que les champs "note" et "etat"
doivent être mis à jour après
le chargement des données i.e voir les
explications "1. description du problème:
ouvrir un nouveau dossier"
au début de cet énoncé.
>>Autre chose: quand vous dites d'inserer une tabulation entre chacun
des
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>champ, qu'est-ce que vous voulez dire? Un espace? Dans vos
exemples
>>(resultats.txt) les colonnes ne sont pas alignees. C'est ce
que vous
>>voulez?
Je ne vous ai rien demande a ce propos. J'ai ecrit dans l'enonce du
TP ce
qui suit:
"entre chaque champ, il a été inséré une tabulation"
Histoire de vous donner une idee sur le format d'affichage de nos donnees.
Dans l'enonce, nulle part, a ete ecrit que vous deviez afficher sous
une
forme ou une autre. Par contre il vous a ete demande de realiser les
operations
notees de 1 a 10, tenant compte des specifications.
A vous de prendre des initiatives. Vous voulez afficher ds le meme format
que le fichier resultat, ok. Vous voulez dans votre propre format,
la aussi ok.
Pour info, une tabulation c'est "\t" (un tab sur le clavier),
un espace
"\s" (bar d'espace).
Pour plus de details sur cette question, voir avec votre demonstrateur
demain soir durant la demo.
>>j'ai une question sur le tp a faire: j'aissaie de faire marcher
>>le clrscr() et le clreol() por faire un dialogue-formulaire avec
l'usager
>>du programe mais je pense que la librerie conio.h n'existe pas, qu'est-ce
>>que je peux faire??? Est-ce qu'il ya une autre librerie qui
les contient?
clrscr & clreol ces commandes existent que sur un systeme DOS!
Si tu cherches les ennuis .......... voir :
curses.h
peut-etre tu trouveras des choses la-dedans qui pourraient t'interesser!
Mohamed Lokbani
=======================================================================================
Subject: [IFT1166] Questions/Reponses
TP1.
Date: Mon, 04 Oct 1999 19:45:48 -0400
From: Mohamed Lokbani <lokbani@IRO.UMontreal.CA>
To: gift1166@IRO.UMontreal.CA
Bonjour,
Conseil:
Lire attentivement l'enonce du tp1 & aidez vous du fichier resultat.txt
pour
le solutionner.
--------
Parmi les questions posees ................
-1-
>>En fait je ne comprend pas tres bien dans le tp1, et je ne
sais
>>pas si j'ai le droit de vous le demander, c'est la definition
>>de la variable Etudiant. Est-elle un pointeur vers 'struc
eleve'
>>(et auquel cas, on peut effectivement procede a un enregistrement
>>dynamique, ou bien un tableau dont la dimension serait fixee
a
>>l'avance (vous parler de la dimension qui ne doit pas exedee
>>une valeur egale a 100), mais dans ce cas, il n'y a plus
>>d'allocation dynamque du tableau ...
la reponse se trouve dans le cours et dans un des exos des demos.
-2-
>>je suis mêlée dans le cours, je veux savoir si
la déclaratio des
>>fonctions se fait à l'intérieur de la classe
et l'appel à l'exterieur de
>>la classe ou bien je dèclare mes fonctions initialiser...
>>dans le main et je les appelle à l'exterieur.
Pour les fonctions membres d'une classe, nous allons voir cela en details
ds
le prochain cours.
A noter, que j'ai deja donne un avant gout de la declaration de
fonctions
et leurs utilisations, voir les exemples dans le cours sinon les demos.
-3-
>>comment faire pour ouvrir un nouveau dossier étudiant
avec la mise à
>>jour des notes , je ne sais comment faire en c++.
a vous de trouver la reponse a votre question. Prenez la peine de consulter
les corrections de vos demos.
-4-
>>je veux savoir comment faire le tri par exemple d'un fichier
des
>>employés par ordre du nom, comment faire en c++?
>>j'attends ta réponse car j'effectue toutes mes lectures
mais je suis
perdue?
la vous me demandez de faire le tp a votre place! Peu importe le langage
de
programmation! Un: il faut deja savoir c'est quoi un tri? Deux: comment
utiliser le tri dans le probleme que vous voulez resoudre et puis Trois:
l'etape du codage dans un langage donne.
le c++ n'a rien a voir la dedans. Il faut juste mettre ses idees aux
claires. Pour cela, la bibliothèque Math-Info dispose de plusieurs
ouvrages
qui traitent sur le sujet. Un livre sur les structures de donnees fera
l'affaire.
Et puis pas la peine d'aller chercher le tri de la toute derniere
generation! Je vous ai laisse le choix, afin que vous puissiez par
vous meme
decider lequel choisir. Le plus simple si ca vous chante, le plus complique
si ca vous chante aussi ..... SAUF qsort de la librairie standard.
L'enonce
du TP est clair a ce sujet.
Ce qui nous interesse entre autres, c'est de voir la maniere avec laquelle
vous avez connecte cet algorithme de tri au probleme pose.
Comment comparer deux chaines de caracteres? Voir un ancien cours de
C, la
fonction strcmp.
Comment manipuler des structures? Voir les demos, les solutions sont
disponibles.
A vous de regrouper ces infos.
-5-
>>Vous serait-il possible de compiler la fonction
>>load_data du tp1 sous Linux PC, et me l'envoyer
>>afin que je puisse l'utiliser de chez moi (j'ai
>>la meme version Linux 6.0 RedHat), mais la librairie
>>semble ne pas fonctionner, erreur a l'edition des liens.
Je pense que ton probleme est plutot lie a l'installation du logiciel
linux
& gcc sur ta machine. La configuration des chemins pour acceder
a certaines
librairies qui poseraient problemes.
Histoire de ne pas brouiller tout le monde .... vous trouverez a part
dans
le lien du tp1 le fichier libtp1.o compile sous Redhat 5.2 & 6.0
http://www.iro.umontreal.ca/~dift1166
Pour ceux/celles qui n'arrivent pas a comprendre la question -5-, ni
sa
reponse, ne vous attardez pas sur ca.
================
A signaler qu'il a ete mentionne a plusieurs reprises dans le cours
et les
demos, votre programme doit obligatoirement compiler sur les machines
de
la salle 1340 (demos) sous les serveurs deimos ou phobos.
Mohamed Lokbani
=======================================================================================