IFT1176 -- Démonstration #1
Buts:
Directives: On vous conseille de faire la démonstration
en équipe de 2, mais de vous brancher tous les 2 à tour de rôle.
A. Connexion et fin de session
- Pour se connecter
Quand vous vous installez devant une machine de la DESI, vous avez une fenêtre vous demandant :
Login : entrez ici votre nom d'usager
Mot de passe : entrez ici votre mot de passe initial
Domaine : choisissez diro
Dans le cas d'une première connexion, suivre pour cela les directives affichées. Une copie de ces directives se trouvent aussi dans cette page. Vous ne pouvez pas appliquer ces directives en utilisant à titre d'exemple telnet, vous devez être physiquement en face d'une machine de la DESI pour pouvoir le faire.
- Pour terminer une session de travail
1. cliquer sur les touches Ctrl-Alt-Suppr (i.e. Ctrl-Alt-Del) simultanément,
2. choisir Log Off
3. confirmer par un yes. Ne faites surtout pas un shutdown (un arrêt complet) de la machine. Pas besoin d'éteindre l'écran. L'ordi. est programmé pour le faire après quelques minutes d'inutilisation.
B. Session de travail
Sur le bureau (de l'écran), appelé aussi Desktop, vous avez plusieurs icônes, les plus importants sont:
- Navigateur Internet: Le navigateur Netscape qui vous permet d'accéder au World Wide Web.
- Courrier Internet: Le messager Netscape (Netscape Messenger) qui vous permet de recevoir et d'envoyer du courrier électronique. Votre adresse électronique est votre login suivi de @IRO.UMontreal.CA
Par exemple, l'étudiant Fred Cailloux ayant comme login caillouf, aura comme adresse électronique caillouf@IRO.UMontreal.CA
L'utilisation du "messager Netscape" nécessite un mot de passe, celui de Unix (s'il est différent de celui de windows), sinon celui de windows fera l'affaire.
- Pour lire votre courrier, cliquez sur Retirer Message.
- Pour envoyer du courrier, cliquez sur Envoyer Message ou Répondre.
- Documents personnels: Un dossier où vous stockez vos fichiers personnels. Lorsque vous enregistrez un fichier à partir d'un logiciel assurez-vous d'enregistrer le fichier dans ce dossier. Ce dossier se trouve sur le disque R:\ qui est en réalité un serveur de fichiers dans lequel vos données seront sauvegardées. Attention, assurez-vous de ne pas dépasser les 32Mo de taille totale sur votre disque R.
- Cours-DIRO: Un dossier où vous trouverez les accès aux répertoires des différents cours.
- Branchement Unix: Un icône qui vous permet de vous brancher sur votre serveur Unix attitré.
- Recycle Bin: La poubelle où vous déposez les fichiers à jeter.
Plus de détails sur l'utilisation des machines vous seront donnés par les démonstrateurs.
N'oubliez pas de vous débrancher quand vous aurez fini!
C. Accès à la page Web du cours
- Utilisez Netscape pour aller chercher l'énoncé de la démonstration
1 (ce texte).
- Lancer Netscape en spécifiant l'adresse: http://www.iro.umontreal.ca/~dift1176
puis cliquez sur les liens appropriés. N'hésitez pas à fouiller les liens de la page Web du cours.
D. Familiarisation à Unix
Vous allez utiliser Linux, une version de Unix.
- Essayez quelques commandes Unix (ex: ls, mkdir, cd, pwd, ...)
- Utilisez la commande mkdir pour créez les répertoires suivants dans votre compte:
- Utilisation de la commande man.
Ceux qui ne sont pas familiers aux systèmes Unix doivent impérativement prendre le temps
de lire les documents sur Unix. Un autre document sur Unix, plus complet est disponible sur ce lien.
E. Familiarisation à Windows
Refaire "D" mais cette fois-çi à partir de Windows.
F. Éditeurs de texte
Les plus utilisés,
vi ou emacs. Emacs est l'éditeur de textes que nous vous conseillons.
A. Informations sur le compilateur Java utilisé dans ce cours
Java est un langage semi-compilé. L'exécution d'un programme Java se
déroule en deux étapes. Supposons pour illustrer ce processus que vous
disposiez d'un programme Java dont le nom est Application.java.
- La première étape consiste à compiler ce programme. Pour cela
placez vous dans le répertoire qui contient le document java à
compiler et tapez la commande: javac Application.java. Si la
compilation échoue, des messages d'erreurs vous seront fournis par le
compilateur qui vous permettrons de corriger vos erreurs. Si la
compilation ne génère pas de message d'erreur alors la première étape
est terminée, un ou plusieurs fichiers .class ont normalement
été générés.
- La seconde étape consiste à lancer votre programme. Cela se fait
en appelant la machine virtuelle Java et en lui fournissant en
argument le code compilé à exécuter. Dans notre exemple, la commande à
taper est la suivante: java Application
B. Compilation sur les deux systèmes
- Linux
- connectez-vous d'abord sur Linux ("Branchement sur Unix")
- exécutez l'instruction: inclure jdk
- faites l'étape A, décrite précédemment. D'abord assurez vous d'être sur dans bon répertoire!
- Windows
- cliquez sur start puis run
- tapez cmd
- faites l'étape A, décrite précédemment. D'abord assurez vous d'être sur dans bon répertoire!
C. Remise électronique
Le système de remise de travaux pratiques permet à un
étudiant de copier des fichiers dans un sous répertoire
du compte de démonstration et ce, de façon
sécuritaire pour tout le monde, car ce sous répertoire
n'est accessible qu'aux seuls démonstrateurs d'un cours
donné. Il permet aussi à un étudiant de
vérifier ce qu'il a remis pour un travail (TP) donne dans un
cours.
Dans cette démonstration, il vous est demandé de suivre les étapes
précédemment décrites puis de remettre le code Java
Application.java après vous être assuré que ce programme
s'exécute correctement.
La remise électronique doit se faire obligatoirement à partir de Unix (suivre d'abord l'étape B pour Linux), et elle s'effectue comme suit :
- De votre console de travail, tapez la commande: remise dift1176 tp0 Application.java
- Pour vérifier que la procédure de remise s'est déroulée correctement, tapez la commande:
remise -v dift1176 tp0
Pour plus de détails sur la procédure de remise, voir le
lien suivant ou
consulter à l'aide de la commande man la commande remise (c-à-d tapez dans votre console: man remise).
Notes importantes
N'oubliez pas de vous déconnecter à la fin de la
démonstration. Demandez le cas échéant à votre démonstrateur
comment procéder. Si vous oubliez de vous déconnecter, le support
informatique du DIRO peut à sa discrétion décider de bloquer votre
compte. Vous donnez également à d'autres utilisateurs la possibilité
de détruire/lire/modifier vos documents...
Exercice 1
Expliquez le fonctionnement du programme suivant (exo1.java)
Exercice 2
Réaliser une applet qui permet de dessiner un rectangle tout en respectant ce qui suit:
- Une interface Dessine qui contient la méthode public void dessine ()
- Une classe abstraite ObjetGeom
Cette classe contient, les champs données ...
- Point (défini dans java.awt)
- Dimension (défini dans java.awt)
et les méthodes ...
- public void deplace (int x, int y) sert à déplacer le point vers les nouveaux coordonnées (x,y)
- public double superficie () Une méthode abstraite qui sert à calculer la superficie de l'objet géométrique.
- Une classe Rect
Cette classe contient:
- la définition de la méthode superficie,
- et la méthode drawRect sert à dessiner un rectangle à partir d'un point d'origine en tenant compte des dimensions de l'objet à dessiner.
Exercice 3
Soit les déclarations suivantes:
// Fichier exo3.java
class A {
String s1;
private String s2;
protected void affiche(){
}
}
class B extends A {
String s3;
protected void affiche(){
}
}
public class exo2 {
public static void main (String [] args) {
/*
on ajoute un seul bloc à la fois
*/
}
}
// Fin du fichier
Si on ajoute dans la méthode main chacun des blocs suivants (un à la fois), indiquez si les lignes en gras sont correctes ou bien elles provoquent des erreurs. Nous entendons par correct: La syntaxe est correcte et l'exécution se fait sans erreur. Indiquez aussi l'affichage obtenu en sortie, dans le cas où la ligne doit afficher un résultat (bien sur si elle est correcte).
Blocs |
Erreur |
Correct |
Résultat |
A ref; ref.affiche(); |
-------- |
-------- |
-------- |
A ref4 = new A(); ref4.s1="toto"; ref4.s2="tata"; |
-------- -------- |
-------- -------- |
|
A ref1; B ref2; ref1 = new A(); ref2 = (B) ref1; |
-------- |
-------- |
|
A ref3; ref3 = new B(); |
-------- |
-------- |
|
B ref5 = new B();r ef5.s1 = "tata";r ef5.affiche();r ef5.s3 = "toto"; |
-------- -------- -------- |
-------- -------- -------- |
-------- |
A ref7; C ref8 = new C(); ref7 = (A) ref8; ref7.s3 = "tata";// s3 dans B |
-------- -------- |
-------- -------- |
|
C ref10 = new C(); ref10.affiche(); ((A) ref10).s1="toto"; ((A) ref10).affiche(); |
-------- -------- -------- |
-------- -------- -------- |
-------- -------- -------- |
|