IFT1010 Programmation I

Département d'informatique et de
recherche opérationnelle

Hiver 2002


Accueil

Professeurs et
Démonstrateurs

Horaires et locaux

Notes de cours

Démonstrations
et devoirs

Examens

Liens utiles

Au sujet du
livre de cours

Consultez vos notes

Foire aux questions
(FAQ)

Démonstration 1: Introduction à Linux, Internet et aux éditeurs de texte


Pratique | Exercice Noté

Environnement de travail

  • 2 serveurs Linux centraux : phobos et deimos
  • Un grand nombre de stations de travail Linux en couleurs accessibles dans les locaux suivants:
    • 1340
    • 3311 (Laboratoire Turing)
    • 3185 et 3189
  • Des terminaux X en noir et blanc au S-116 (pavillon principal)

Historique

  • Ken Thompson et Dennis Ritchie, chercheurs à Bell Labs, sont les concepteurs du système d'exploitation UNIX (1969);
  • Système multi-usagers, multi-tâches, écrit en langage C;
  • Linus Torvalds, étudiant à l'époque (1991), a développé un "clone" de UNIX pour PC appelé LINUX.

Connexion sur les différentes machines

  • Au 3e étage (3311, 3185 et 3189)
    • Connexion directe sur la machine en donnant votre nom d'usager et votre mot de passe
  • Au 1340
    • Selectionner "Cette Machine" dans la liste affichée  (pour les étudiants inscrits au DIRO seulement)
    • Connexion directe sur la machine en donnant votre nom d'usager et votre mot de passe
  • S-116
    • Sélectionner son serveur attitré ou taper le nom de ce serveur (deimos.iro ou phobos.iro)
    • Connexion au serveur en donnant votre nom d'usager et votre mot de passe
Voici un exemple d'une fenêtre de connexion:

Note: Lors de votre première connexion, il vous sera demandé de changer votre mot de passe!

Les types de session

Il y a plusieurs environnements de travail (ou "desktops") que vous pouvez choisir au login en sélectionnant celui voulu dans le champ "Session Type". Un desktop est un programme qui gère les fenêtres, les menus, le "look and feel", etc. et qui donne à Linux une interface comparable à Windows ou Mac.
 

Fin de session

  • À partir du menu principal, choisissez "Logout".
  • N'oubliez pas ensuite de choisir "Logout" dans la boîte de dialogue qui apparaît!!
     

Travail dans un terminal

Une fois connecté, vous pouvez démarrer un terminal en cliquant sur l'icône approprié dans le bas de l'écran (une fenêtre noire). Un terminal vous permet d'exécuter des commandes directement en les tapant à l'aide du clavier. Les sections qui suivent traitent exclusivement de commandes executées dans un terminal.

Note: Si vous désirez que le curseur vous revienne après avoir lancé une commande au terminal, peu importe si l'exécution de la commande est terminée ou non, ajoutez un & à la fin de la commande!

Changement du mot de passe

Après votre première connexion, vous aurez à changer votre mot de passe. Il est conseillé de changer régulièrement son mot de passe pour éviter que quelqu'un d'autre le découvre.
  • Pour changer manuellement son mot de passe, il faut taper la commande chmp (CHanger Mot de Passe) dans un terminal.
  • Le système vous demandera d'entrer votre ancien mot de passe, puis il vous invitera à entrer le nouveau.

Fichiers et répertoires

  • Un fichier est une suite d'octets à laquelle on donne un nom.
  • Un fichier dont le nom commence par . est un fichier caché.
  • Les fichiers sont organisés en une hiérarchie de répertoires.
  • Chaque usager a son propre répertoire racine appelé HOME ou ~
  • Le répertoire courant est désigné par .
  • Le répertoire parent est désigné par ..

Opérations sur les répertoires

  • mkdir rep_name vous crée un nouveau répertoire ayant le nom rep_name (e.g. mkdir demo3).
  • cd [rep_name] vous place dans le répertoire ayant le nom rep_name (e.g. cd demo3) ou bien vous place dans votre répertoire racine si aucun nom n'est spécifié.
  • pwd vous affiche le nom du répertoire courant (e.g. /u/dift1010/demo3).
  • rmdir rep_name supprime le répertoire rep_name (e.g. rmdir demo3). Pour supprimer un répertoire non-vide, utilisez plutôt rmdir -r rep_name.

Opérations sur les fichiers

  • ls [options] [rep_name] liste les fichiers et répertoires enfants du répertoire rep_name. Sans rep_name, ls liste les fichiers et répertoires enfants du répertoire courant.

  •  

     
     
     
     
     

    Options utiles:
    -l: afficher plus de détails (taille, etc.)
    -a: afficher aussi les noms des fichiers et répertoires cachés
    -r: afficher aussi même le contenu des sous-répertoires

    Exemple:

    phobos% ls -al
    
    total 28
    drwxr-xr-x  14 dift1010 demo         1024 Aug 18 16:40 .
    drwxr-xr-x  38 root     root         1024 Aug 12 14:18 ..
    -rw-------   1 dift1010 demo          354 Aug 18 16:37 .ICEauthority
    -rw-------   1 dift1010 demo           49 Aug 18 16:39 .Xauthority
    -rw-------   1 dift1010 demo           10 Aug 12 16:32 .bash_history
    -rw-r--r--   1 dift1010 demo           40 Aug 12 14:01 .cshrc
    drwx------   3 dift1010 demo         2048 Aug 18 16:37 .enlightenment
    drwx------   6 dift1010 demo         1024 Aug 18 16:37 .gnome
    drwxr-xr-x   2 dift1010 demo         1024 Aug 12 16:37 .gnome-desktop
    drwxr-xr-x   2 dift1010 demo         1024 Aug 12 16:37 .gnome-help-browser
    drwx------   2 dift1010 demo         1024 Aug 12 16:36 .gnome_private
    -rw-------   1 dift1010 demo          985 Aug 18 16:39 .history
    drwxr-xr-x   3 dift1010 demo         1024 Aug 18 16:39 .kde
    -rw-r--r--   1 dift1010 demo          264 Aug 18 16:39 .kderc
    -rw-r--r--   1 dift1010 demo           28 Aug 12 14:01 .login
    drwxr-xr-x   2 dift1010 demo         1024 Aug 12 16:42 .mc
    drwx------   5 dift1010 demo         1024 Aug 13 11:22 .netscape
    drwx------   7 dift1010 demo         1024 Aug 18 16:06 .netscape_nt
    -rw-r--r--   1 dift1010 demo            1 Aug 12 14:01 .plan
    -rw-r--r--   1 dift1010 demo           25 Aug 12 14:01 .profile
    -rw-r--r--   1 dift1010 demo            5 Aug 12 14:01 .project
    -rw-r--r--   1 dift1010 demo            4 Aug 18 16:39 .wm_desktop
    -rw-r--r--   1 dift1010 65534           4 Aug 18 16:39 .wmrc
    -rw-------   1 dift1010 demo          633 Aug 18 16:39 .xsession-errors
    drwx------   5 dift1010 demo         1024 Aug 18 16:39 Desktop
    drwxr-xr-x   2 dift1010 demo         1024 Aug 12 16:39 HTML
    drwx------   2 dift1010 demo         1024 Aug 12 16:25 nsmail
    • Le premier caractère de la 1ère colonne de chaque ligne désigne le type de l'élément affiché.

    • - pour un fichier,
      d pour répertoire
    • Les caractères 2, 3 et 4 (e.g. rwx) représentent les droits du propriétaire sur le fichier ou le répertoire.
    • Les caractères 5, 6 et 7 (e.g. r-x) représentent les droits du groupe sur le fichier ou le répertoire (chaque utilisateur appartient à un groupe).
    • Les caractères 8, 9 et 10 (e.g. r-w) représentent les droits des autres sur le fichier ou le répertoire (ceux qui ne font partie du groupe).
    • La deuxième colonne indique le nombre de liens pour le fichier ou répertoire.
    • La troisième colonne indique le nom du propriétaire du fichier ou répertoire.
    • La quatrième colonne indique le groupe auquel appartient le propriétaire du fichier ou répertoire.
    • La cinquième colonne indique la taille du fichier ou répertoire, en octets (la taille d'un répertoire n'est pas la même chose que la taille du contenu de ce répertoire).
    • Les sixième, septième et huitième indiquent la date et l'heure de création.
    • La dernière colonne contient le nom du fichier ou répertoire.
  • cp source destination crée une copie du fichier source dans destination (e.g. cp plan plan.old copie le fichier plan dans le fichier plan.old, et cp ../Hello.java . copie le fichier Hello.java du répertoire parent dans le répertoire courant, sans changer son nom).
  • mv old_name new_name permet de changer le nom d'un fichier ou de le déplacer dans la hiérarchie (e.g. mv plan plan.old renomme le fichier plan par plan.old, et mv ../Hello.java . déplace le fichierHello.java du répertoire parent dans le répertoire courant, sans changer son nom).
  • rm name permet de supprimer un fichier ou un répertoire (e.g. rm plan.old supprime le fichier plan.old).
  • cat file_name affiche à l'écran le contenu du fichier file_name (e.g. cat .cshrc).
  • more file_name affiche page par page le contenu du fichier file_name (e.g. more .cshrc).
  • wc file_name compte le nombre de lignes, mots et/ou caractères dans le fichier file_name.
  • lpr -Pprinter file_name imprime le fichier file_name à partir de l'imprimante printer (e.g. lpr -Pq3189 .cshrc).
  • lpq -Pprinter donne l'état de la queue d'impression pour l'imprimante printer (e.g. lpq -Pq3189).

Droits d'accès sur fichiers et répertoires

chmod [usager][operation][droits] file_name ou rep_name permet de changer les droits d'accès pour un fichier ou un répertoire.

3 valeurs possibles pour [usager]:

  • u (user) pour le propriétaire du fichier ou répertoire
  • g (group) pour le groupe auquel appartient le propriétaire du fichier ou répertoire
  • o (others) pour les autres
3 types d'opérations:
  • = fixe les droits d'accès fournis (annule les droits précédents)
  • + ajoute des droits d'accès
  • - enlève des droits d'accès
3 types de droits:
  • r (read) : droit de lecture
  • w (write) : droit d'écriture
  • x (execute) : droit d'exécution pour les fichiers et de passage pour les répertoires
Exemples:

chmod o=rw test : tout le monde a le droit de lire et d'écrire dans le fichier test

chmod u+x test : ajoute au propriétaire le droit d'exécuter le fichier test

chmod o-w test : enlève le droit d'écriture pour les autres sur le fichier test

chmod go-x java : enlève le droit de passage pour le groupe et les autres sur le répertoire java

Internet

C'est dans le contexte de la guerre froide que le gouvernement américain a mis sur pied l'ARPA (advanced research projects agency) en 1957. L'un des mandats de cet organisme fut de trouver un moyen d'interconnecter entre eux différents ordinateurs de centres de recherche et univercités. C'est à cette époque que fut dévelopeé la technique de communication par paquets qu'on utilise encore aujourd'hui. Le principe est de diviser l'information en paquets connaissant chacun l'adresse du destinataire. Les différents noeuds du réseau dirigeront ensuite chaque paquets indépendemment selon le contexte de la circulation sur le réseau et selon le principe de redondance de connectivité. Ainsi les paquets ne prennent pas nécessairement le même chemin et n'arriveront pas dans le même ordre qu'ils sont partis. L'avantage principal de cette méthode est d'éviter de créer des centres névralgiques d'éguillage de l'information qui en cas de panne paraliseraient tout le réseau. C'est en 1974 que furent développés le protocol FTP (file transfert protocol) ainsi que TCP/IP (transmission control programme/internet protocol) mettant en application le principe de paquettage et fixant les standards.

On inaugura le premier réseau ARPANET à partir du très puissant ordinateur  Honeywell DDP-516 (12 kilo-octets de mémoire WOW!!!) en 1969 auquel on connecta 3 autres noeuds. Le réseau devient international en 1973 quand on ajoute des noeuds en Angleterre et en Norvège (il y a alors environ 40 sites sur le net). En 1976 apparu UUCP (Unix to Unix CoPy) permetant de ce brancher sur un réseau via modem. Ceci élargit grandement l'acces au net car une connection direct à ARPANET n'était réservé qu'à un club très sélect ($$$). Différents réseaux se sont dévelopés parallèlement et en 1982 on établit de façon définitive TCP/IP comme protocol entre ceux-ci et  Internet  devient le nom d'usage du réseau(Il y a alors 235 sites). 1983 marque l'arrivée du service DNS (domaine name server) qui permet d'utiliser des adresses du type iro.umontreal.ca pour référer à une adresse du type 123.456.789.012. En 1992 arrivée du WWW (World Wide Web) permettant aux utilisateurs de naviger en hypertexte.

Le World Wide Web (WWW)

Le WWW facilite grandement le transfert d'information. Le transfert de l'information s'appelle le HTTP (Hyper Text transfert Protocol). Le logiciel du web fournit une interface utilisateur très simple. Le Web est basé sur le concept d'hypertexte. Les documents du web sont écrits en langage HTML (Hyper Text Markup Language). Lorsque des graphiques, du son ou des composantes vidéo sont inclus, le document est dit Hypermédia.

Le navigateur (Browser) est un logiciel d'interface graphique qui permet d'accéder à l'information. Mosaic était le premier navigateur. De nos jours, les navigateurs les plus répondus sont Netscape Navigator et Microsoft Internet Explorer.

Plusieurs éditeurs de page web vous permettent d'écrire des pages web et de faire des sites web sans connaître le langage HTML. Comme exemple vous avez l'éditeur qui est intégré dans Netscape que vous allez utiliser dans un prochaine exercice.

FTP: c'est le "File transmition Protocol" pour le tranfert des fichiers. Sous des machines unix vous pouvez exécuter la commande "ftp deimos.iro.umontreal.ca" pour accéder à votre compte d'un autre serveur pour un transfert de fichiers. De la maison, vous pouvez utilisez un logiciel de transfert de fichiers comme WSftp ou cuteftp.

Web et programeurs: Les dévelopeurs de logiciel utilisent abondament le web pour diffuser des informations sur la programmation. Ainsi vous pouvez trouver des informations précieuses sur des librairies ou sur l'utilisation de logicels. Vous pouvez aussi trouver des tutoriels sur n'importe quel langage de programation. Il existe aussi des groupes d'échange où on discute de différents sujets relatifs à la programation et où on peut soumetre des questions. Savoir profiter de ces ressources est vital pour un programeur (surtout à 2am la veille d'une remise de devoir). Vous trouverez dans la rubrique liens de ce site différents endroits contenant des informations pertinantes à ce cours. Entre autres le site de Sun est la référence pour java.
 

Le Web et le courrier électronique

Nous conseillons l'utilisation de Netscape pour la navigation sur le web ainsi que pour la gestion du courrier électronique.
  • Pour démarrer Netscape, cliquez sur l'icône avec un N vert dans le bas de l'écran (ou tapez netscape dans un terminal).
  • Pour consulter votre courrier électronique (ou pour en envoyer), cliquez sur l'icône avec une enveloppe (deuxième en bas à droite de la fenêtre de Netscape).
  • Vous pouvez également utiliser pine pour le courriel. Cliquez sur l'icône avec une enveloppe dans le bas de l'écran (ou tapez pine dans un terminal).

  •  

    Quelques commandes de pine


    "d" pour détruire un message
    "u" si vous ne voulez plus détruire le message
    "n" pour passer au prochain message
    "p" pour revenir au message précédant
    "r" pour répondre à un message (On vous pose alors une question "reply all ? "; répondre "y" pour que tout les récipiendaires du message original recoivent votre réponse et  "n" pour que seul l'auteur du message recoive la réponse).
     

Les Éditeurs disponibles
Sur les machines Linux, plusieurs éditeurs de texte sont disponibles. Entre autres on retrouve pico, nedit, vi, emacs, etc. Ces éditeurs ont tous en commun de permettre d'éditer du texte, mais ont chacun leurs avantages et inconvénients.
Voici de brèves introduction à l'éditeur emacs:
 
  • Emacs
  • démarrage, édition d'un fichier (les parenthèses carées signifient que le nom d'un fichier est optionnel)

  •   > emacs [nom_de_fichier]
  • ctrl-h (voir légende pour les raccourcis clavier)
  • en appelant emacs sans nom de fichier à éditer ou en faisant la séquence de touches "ctrl-h t" dans emacs un tutoriel sera proposé
  • Séminaire UNIX
  • man emacs
  • sur le Web : Emacs reference materials, GNU Emacs on Windows NT and Windows 95/98
  • commandes utiles

  • Les commandes sont toutes accessibles par leur nom via une ligne de commande (au bas de l'écran emacs, aussi appelé mini-buffer). Cette ligne de commande est accessible dans emacs avec la commande ESC x (touche escape suivie de x). De plus, la plupart des commandes utiles ont un équivalent raccourci au clavier. On peut fermer emacs par exemple avec les deux commandes suivantes :
    ESC-x save-buffers-kill-emacs

    ou

    ctrl-x ctrl-c

    Pour quitter la ligne de commande, comme pour quitter toute commande, on fait ctrl-g
     

     
    Description de la commande Raccourci clavier Nom de la commande
    Quitter emacs ctrl-x ctrl-c save-buffers-kill-emacs
    Undo, en cas d'erreur d'édition. Défait la dernière modification au fichier. ctrl-x u advertised-undo
    "Grrr!", interrompt toute commande en cours. Quand on ne sait plus où on est rendu. ctrl-g keyboard-quit
    Aide ctrl-h help
    Ouvrir un fichier ctrl-x-f find-file
    Sauvegarder un fichier ctrl-x-s save-buffer
    Écrire un fichier sur le disque (write). "Emacs" demandera le nom du fichier. ctrl-x-w write-file
    Séparer une fenêtre d'édition en deux horizontalement ctrl-x 3 split-window-horizontally
    Séparer une fenêtre d'édition en deux verticalement ctrl-x 2 split-window-vertically
    Tue une fenêtre d'édition ctrl-x 0 delete-window
    Aller à une autre division de fenêtre ctrl-x o other-window
    Recherche d'un mot ou d'une phrase dans le texte ctrl-s isearch-forward
    Recherche d'un mot ou d'une phrase dans le texte par en arrière ctrl-r isearch-backward
    Permet d'effectuer un remplacement de chaîne de caractère ESC % query-replace
  • Légende pour les raccourcis clavier
  • ctrl est une abréviation écrite pour la touche contrôle sur le clavier
  • ctrl-x signifie touche contrôle et simultanément touche x
  • ctrl-x o signifie touche contrôle et simultanément touche x puis relâcher tout et appuyer sur la touche o
  • ctrl-x-w signifie maintenir la touche contrôle pour le temps de faire : touche x, relâcher touche x et touche w

Travail pratique (pas noté mais fortement recommandé)

Connexion et mot de passe

------------------------------------------------------------------------------
1. Se connecter
2. Démarrer un terminal
3. Changer son mot de passe
4. Se reconnecter avec le nouveau mot de passe

Commandes de base
------------------------------------------------------------------------------
5. Redémarrer un terminal (au besoin)
6. Essayer la commande "ls" et ses principales variantes ("ls -l", "ls -a")
7. Essayer quelques commandes utilitaires: "date", "cal", "who", "whoami"

Fichiers et répertoires
------------------------------------------------------------------------------
8. Créer un répertoire appelé "tp1"
9. Se placer dans le répertoire nouvellement créé
10. Essayer la commande "pwd"
11. Créer avec emacs un fichier texte nommé "Test" (au contenu quelconque)
12. Imprimer à l'écran le fichier "Test" (avec la commande cat )
13. Renommer le fichier "Test" pour qu'il devienne "Test2"
14. Déplacer le fichier "Test2" vers votre répertoire racine
15. Se déplacer vers votre répertoire racine
16. Modifier les permissions du fichier "Test2" de manière à le rendre lisible par tous, mais modifiable uniquement par vous
17. Supprimer "Test2" ainsi que "tp1" (maintenant vide)
------------------------------------------------------------------------------

Configuration de emacs

emacs est l'éditeur de texte que nous vous conseillons. Il vous servira aussi bien à écrire vos programmes en Java, qu'en C/C++ ou tout autre langage de votre choix. Des notes sur l'utilisation de base de emacs vous sont fournies dans la section liens utiles.

En particulier, vous devriez vous aider cette aide (et de vos démonstrateurs) pour être capables de créer un fichier source java, de le compiler à même emacs, puis de l'exécuter toujours depuis emacs qui ne tardera pas `1a devenir votre éditeur préféré...

Des fichiers de configuration emacs permettent de faciliter votre tache (par exemple pour obtenir automatiquement l'affichage de vos sources avec des couleurs distinctes identifiant des éléments particuliers dans vos sources, etc). Un tel fichier est disponible depuis le compte dift1010, nous vous proposons (encourageons) à l'installer dans votre compte personnel.

Pour cela, copier dans votre racine (home directory) le fichier se trouvant dans: /u/dift1010/RessourcesJava/.emacs. La prochaine fois que vous ouvrirez un fichier avec emacs, vous devriez noter des changements (positifs) dans sa configuration.

Configuration de la variable d'environnement CLASSPATH

Java exécute vos programmes en allant chercher des librairies déjà compilées (exemple la classe String). L'endroit où la machine virtuelle (invoquée par la commande java) recherche ses librairies est défini par la variable d'environnement CLASSPATH.

Nous vous conseillons de mettre à jour cette variable de manière à ce que Java puisse aller chercher des classes que nous utiliserons plus tard dans le cours (notamment pour effectuer de la saisie de chaînes de caractères au clavier). Pour cela suivre la demarche suivante:

Éditer le fichier .cshrc qui se trouve dans votre racine (home directory) et ajouter à la fin de ce fichier la commande suivante (faite par exemple un copier/coller):

setenv CLASSPATH ./:${CLASSPATH}\:/u/dift1010/RessourcesJava

Les modifications apportées à votre fichier .cshrc ne prendront effet que lors de la prochaine ouverture d'un terminal; ou alors tapez: source ~/.cshrc pour rendre les modifications valides dans un terminal déjà ouvert.)

Pour vérifier que votre environnement fonctionne bien, éditer sous emacs le fichier source TestEnvironnement.java, compilez le puis exécutez le depuis emacs. Vous devriez voir apparaître à l'écran une grille de mot mystère à résoudre (vous n'êtes pas obligé de trouver le mot mystère). Si tel n'est pas le cas, alors c'est que vous n'avez pas suivi les instructions à la lettre. Faites-vous aider d'un démonstrateur.

Configuration du compilateur Java que vous allez utiliser

Il existe plusieurs versions de compilateurs java sur les machines du département. Pour travailler avec la dernière version stable (actuellement jdk1-1.3, jdk-1.4 est en béta-version): insérez dans votre fichier .cshrc la commande suivante:

inclure jdk

La modification ne prendra effet que lors de la prochaine ouverture d'un terminal (ou console) ou alors utulisez la commande source (voir exercice précédant).

Exercice noté (1 point)

Remise

Cet exercice noté à pour but de vous faire pratiquer la procédure de remise électronique que vous utiliserez tout au long de cette session lors de vos remises d'exercices notés et de devoirs. Vous devez faire cette remise individuellement depuis votre propre compte. Certains d'entre-vous n'auront pas encore leur compte à la date de remise (prévenir dans ce cas votre démonstrateur), aussi avez-vous deux semaines pour remettre cet exercice.

Écrire un programme nommé Exercice1.java dont l'exécution affiche à l'écran les renseignements suivants:

  • Votre nom et votre prénom
  • Votre nom d'utilisateur (login name)
  • Les langages de programmation que vous avez déjà utilisés (le cas échéant)
Le format d'affichage n'est pas précisé, laissez libre cours à votre sens de l'esthétique. Vous devez néanmoins produire quelquechose qui ressemble à ceci:

Nom: Simard
Prénom: Jean
Nom d'utilisateur: simardj
Langages: Cobol,Pascal,C/C++,Java,Perl,Prolog,Tcl/Tk

Instructions pour effectuer votre remise: Placez-vous dans le repertoire où se trouve le fichier java à remettre. Puis tapez la commande:

remise ift1010 demo01 Exercice1.java Un message de confirmation vous est adressé. Profitez-en pour vérifier que vous avez envoyé la bonne version de votre programme Java.

Note importante:
La commande remise vous indique l'état de votre remise. Il vous appartient de vérifier que la remise a bien été effectuée. Vous pouvez vérifier l'état de votre remise en tapant la commande:

remise -v dift1010 demo01

Vous devriez obtenir une réponse qui ressemble à celle qui suit et qui vous permet d'obtenir la liste des fichiers remis, ainsi que leur taille (en octets).

Etat des remises de felipe pour le travail demo01 du cours ift1010
/u/dift1010/.remise/demo01/felipe:
total 10
drwx------ 2 dift1010 rali 1024 Oct 2 10:32 .
drwx------ 3 dift1010 pemo 1024 Oct 2 10:32 ..
-rw------- 1 dift1010 rali 3093 Oct 2 10:32 Exercice1.java

Erreurs classiques (dont vous êtes responsables):

  • le code de remise (ici demo01) est mal écrit (vous tapez par exemple Demo01 ou encore demO1)
  • vous remettez autre chose que le programme java demandé (peut-être par ce que vous vous trompez dans les noms de fichiers)
  • vous remettez votre exercice depuis un autre compte que le votre
  • vous remettez un programme qui compile chez vous, mais pas sous la version de Java disponible au département

Pour plus d'information sur la commande remise consultez le manuel en ligne (man remise)



Dernière mise à jour : Wed Jan 16 15:29:00 EST 2002
dift1010@iro.umontreal.ca