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.


Familiarisation avec l'équipement

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

  1. Utilisez Netscape pour aller chercher l'énoncé de la démonstration 1 (ce texte).

  2. 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.

  1. Essayez quelques commandes Unix (ex: ls, mkdir, cd, pwd, ...)

  2. Utilisez la commande mkdir pour créez les répertoires suivants dans votre compte:

      IFT1176/
      IFT1176/Devoirs/
      IFT1176/Demos/

  3. 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.


Remise électronique

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
    1. connectez-vous d'abord sur Linux ("Branchement sur Unix")
    2. exécutez l'instruction: inclure jdk
    3. faites l'étape A, décrite précédemment. D'abord assurez vous d'être sur dans bon répertoire!
  • Windows
    1. cliquez sur start puis run
    2. tapez cmd
    3. 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...


Quelques exercices sur l'héritage

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(){
          System.out.println(s1);
        }
      }
      class B extends A {
        String s3;
        protected void affiche(){
          System.out.println(s3);
        }
      }
      class C extends A {}
      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();

--------
--------
--------

--------
--------
--------

--------
--------
--------