Vous êtes sur la page 1sur 11

INFORMATIQUE / BLOC1 / PROGRAMMATION DE BASE LABO 1

Laboratoire 1
DURÉE PRÉVUE : 4H00

OBJECTIFS
Au terme de ce laboratoire, l'étudiant sera capable de :
→ identifier les éléments d'un programme

→ utiliser les commandes de la console/du terminal


→ écrire, compiler, exécuter et débuguer un programme Java

POUR EN SAVOIR PLUS

DOCUMENTATION
Dans ces exercices, il sera essentiellement question d’apprendre à exécuter des commandes dans
la console/le terminal de votre système d’exploitation.

Sachez que la console propose de nombreuses commandes. Seules quelques-unes d’entre elles
vous seront montrées. N'hésitez donc pas à en tester d'autres en consultant la liste suivante (pour
les utilisateurs de Windows) :
http://windows.developpez.com/cours/ligne-commande/?page=page_4

En plus de ces commandes préexistantes, d’autres commandes spécifiques au Java sont


disponibles après l’installation du JDK. Ces dernières sont détaillées sur le site d'Oracle :
https://docs.oracle.com/en/java/javase/18/docs/specs/man/index.html

1
INFORMATIQUE / BLOC1 / PROGRAMMATION DE BASE LABO 1

EXERCICE 1 : IDENTIFIER LES ÉLÉMENTS D'UN PROGRAMME


Ci-dessous, un programme qui permet de déterminer le jour de la semaine correspondant à une date
donnée. La capture provient de l'éditeur de code Notepad++.

Nommez les éléments suivants et donnez une brève description :


→ [LIGNE 1] labo1 :
→ [LIGNE 3] JourDeLaSemaine :

→ [LIGNE 5] main :
→ [LIGNE 6] // Variables pour... :

→ [LIGNE 7] 27 :
→ [LIGNE 7] jour = 27 :

→ [LIGNE 13] int jourDeLaSemaine :


→ [LIGNE 16] (14 - mois) / 12 :
→ [LIGNE 23] System.out.println(jourDeLaSemaine) :

2
INFORMATIQUE / BLOC1 / PROGRAMMATION DE BASE LABO 1

EXERCICE 2 : CODER UN PROGRAMME, LE COMPILER ET L'EXÉCUTER

AVERTISSEMENT
L'espace de travail choisi pour les exemples est le répertoire C:\Java.
Si vous travaillez sur un ordinateur du campus, vous n'avez pas les droits permettant de créer ce
répertoire. À la place, créez un répertoire Java sur le disque réseau H: qui apparaît dans
l'Explorateur de fichiers. Cet emplacement mémoire de 1 Go représente votre espace personnel sur
le serveur. Il est accessible de n'importe quel ordinateur du campus.
Pour vous rendre dans cet emplacement via la console, vous devez simplement saisir la commande
H:.

RÉDIGER UN PROGRAMME
1. Créez dans votre espace de travail un répertoire nommé labo1 (en minuscules, sans espace
et se termine par le chiffre 1), ce qui donne le chemin d’accès C:\Java\labo1. C'est dans
ce répertoire que vous enregistrerez tous les programmes de ce 1er labo
2. Lancez un éditeur de code (par exemple, Notepad++)
3. Reproduisez le code source du programme JourDeLaSemaine donné dans l'exercice
précédent
4. Enregistrez le fichier dans le répertoire labo1 en le nommant JourDeLaSemaine.java

COMPILER UN PROGRAMME
1. Accédez à la console/au terminal (dans Windows : ouvrir la fenêtre Exécuter avec le raccourci
Windows + R, puis saisir cmd)
2. Changez de répertoire à l'aide de la commande cd (change directory) pour vous rendre dans
votre répertoire de travail
3. Compilez le programme JourDeLaSemaine avec la commande javac

3
INFORMATIQUE / BLOC1 / PROGRAMMATION DE BASE LABO 1

4. Si la compilation échoue, lisez attentivement les messages détaillant les erreurs décelées afin
de trouver l’origine du problème

COMMENT CORRIGER EFFICACEMENT DES ERREURS DE COMPILATION


Voici quelques conseils :
→ Dans la description d’une erreur, repérez le numéro de la ligne spécifié à la suite
du nom du fichier. Par exemple, l’erreur répertoriée ci-dessous est située à la ligne
10 du fichier JourDeLaSemaine.java.

Vous localiserez ainsi plus rapidement l’instruction problématique dans votre code
source.
→ Corrigez les erreurs par ordre d’apparition, autrement dit en les parcourant de
haut en bas. En effet, les erreurs situées « plus loin » dans le code sont parfois
causées par celles qui les précèdent.

5. [OPTIONNEL] À l'aide de la commande dir ou de l'explorateur de fichiers, vérifiez qu'un fichier


.class a bien été créé dans le même répertoire que le fichier .java
6. Indiquez ce qu’il se passe lors de la compilation dans les cas de figure suivants :
→ [LIGNE 3] modifiez le nom de la classe en remplaçant la lettre J majuscule par son
équivalent minuscule :
→ [LIGNE 5] supprimez l’accolade ouvrante { :
→ [LIGNE 7] renommez la variable jour en j :

→ [LIGNE 7] renommez la variable mois en m :


→ [LIGNE 7] ajoutez un zéro en préfixe du littéral entier 9 :
→ [LIGNE 10] supprimez le point-virgule :
→ [LIGNE 16] placez en commentaire l’instruction //anneeEnCours = (14 -... :
→ [LIGNE 23] modifiez le nom de la classe System en remplaçant la lettre S majuscule
par son équivalent minuscule :

→ [LIGNE 26] supprimez l’accolade fermante } :

MÉTHODOLOGIE
Après chaque modification du code source, n’oubliez pas d’enregistrer la modification
apportée en cliquant sur l’icône ou en utilisant le raccourci Ctrl + S.
Après chaque compilation, n’oubliez pas d’annuler la modification en cliquant sur
l’icône ou en utilisant le raccourci Ctrl + Z.

POUR MIEUX MAÎTRISER LA CONSOLE


Voici quelques techniques facilitant l'usage de la console :
→ Utilisez la flèche du haut/bas pour retrouver les commandes
précédentes/suivantes.

4
INFORMATIQUE / BLOC1 / PROGRAMMATION DE BASE LABO 1

→ Appuyez sur F7 pour afficher une fenêtre listant les dernières commandes
exécutées.
→ Utilisez l'auto-complétion avec la touche tabulation pour accélérer la saisie d'un
chemin (des pressions répétées de la touche tabulation permettent de parcourir
les résultats correspondant aux premiers caractères saisis).

EXÉCUTER UN PROGRAMME
1. Lancez le programme JourDeLaSemaine avec la commande java (soyez vigilent à
l'écriture qui diffère de celle utilisée pour la compilation)

2. Si le résultat obtenu n’est pas celui attendu (voir la capture ci-dessus), comparez votre code
source avec celui donné au début de l’énoncé pour détecter l’erreur de calcul
3. Indiquez ce qu’il se passe lors de l’exécution du programme dans les cas de figure suivants :
→ [LIGNE 1] modifiez le nom du package en remplaçant le chiffre 1 minuscule par la
lettre l minuscule :
→ [LIGNE 5] supprimez le qualificatif public de la fonction main :
→ [LIGNE 5] supprimez le contenu des parenthèses (String[] args) :
→ [LIGNE 7] remplacez le littéral 2021 par 2000000000 (2 milliards) :

→ [LIGNE 16] remplacez le littéral 12 par 0 :

MÉTHODOLOGIE
Après chaque modification du code source, n’oubliez pas d’enregistrer la modification
apportée et de compilez à nouveau le code source !
Après chaque exécution, n’oubliez pas d’annuler la modification.

4. Modifiez les données de départ dans le code source afin de répertorier les résultats
correspondants dans le tableau ci-dessous. Vous pourrez ainsi déduire la signification du
nombre entier calculé par le programme.

Date Nombre entier obtenu


25/09/2021
26/09/2021
27/09/2021
28/09/2021
29/09/2021
30/09/2021

5
INFORMATIQUE / BLOC1 / PROGRAMMATION DE BASE LABO 1

01/10/2021
02/10/2021
03/10/2021

MÉTHODOLOGIE
Après chaque modification du code source, enregistrez la modification apportée, compilez
le code source, puis exécutez le programme.

6
INFORMATIQUE / BLOC1 / PROGRAMMATION DE BASE LABO 1

EXERCICE 3 : DÉBOGUER UN PROGRAMME

LES ERREURS DE PROGRAMMATION


Nous l’avons constaté précédemment, il existe différents types d’erreurs :
• Les erreurs de compilation qui sont détectées au moment de la compilation d’un programme
car elles empêchent le compilateur d’effectuer la traduction du code source en bytecode (par
exemple, l’oubli d’un point-virgule).
• Les erreurs d’exécution qui sont détectées au moment de l’exécution d’un programme car ce
dernier effectue une opération non valide (par exemple, une division par zéro) ou ne
parvient pas à effectuer l’une des opérations spécifiées (par exemple, la fonction main est
introuvable).

• Les erreurs logiques qui ne peuvent être détectées que par le programmeur lui-même
lorsqu’il exécute son programme en comparant le résultat produit par ce dernier avec le
résultat attendu (par exemple, une erreur dans la retranscription de calculs mathématiques).
Ces bugs sont les plus complexes à identifier et à corriger !

A force de programmer, l’une des premières compétences que vous développerez sera d’identifier
plus rapidement vos erreurs. L’une des suivantes sera de devenir suffisamment rigoureux lorsque
vous coderez pour éviter de commettre ces erreurs.

EXÉCUTER UN PROGRAMME PAS-À-PAS


L'une des méthodes de débogage, c'est-à-dire de localisation d'erreurs logiques dans un programme,
les plus courantes est l'exécution pas-à-pas. Cela signifie que le code du programme est exécuté
instruction par instruction.
L'intérêt de cette démarche est de pouvoir consulter l'état des variables après chaque instruction
afin de localiser une erreur ou, simplement, de mieux comprendre ce que fait un code.
Pour cela, il existe des outils appelés débogueurs. Pour une question de facilité, nous utiliserons le
débogueur Java Visualizer disponible sur la page suivante :
https://cscircles.cemc.uwaterloo.ca/java_visualize/

7
INFORMATIQUE / BLOC1 / PROGRAMMATION DE BASE LABO 1

Pour en comprendre son fonctionnement, suivez la procédure suivante :


1. Rendez-vous sur la page spécifiée.
2. A l’exception de la 1ère ligne indiquant le package, copiez l’entièreté du code source de votre
fichier JourDeLaSemaine.java dans l’éditeur de code de Java Visualizer.
3. Cliquez sur le bouton Visualize Execution.
4. Cliquez sur le bouton Last >> pour exécuter l’ensemble des instructions du programme.
Vous pouvez ainsi vérifier au niveau de la sortie que le résultat est toujours correct (affiche 1
pour la date du 27/09/2021).
[OBSERVATION] L’état final des différentes variables est affiché dans le cadre bleu situé à
droite du code.
5. Afin d’introduire une erreur logique dans le code, cliquez sur le lien Edit code, puis
initialisez la variable annee avec la valeur 2000000000 (2 milliards) au lieu de 2021 et,
enfin, cliquez à nouveau sur le bouton Visualize Execution.
6. Cliquez de manière répétée sur le bouton Forward >> tout en comparant l’instruction
exécutée avec la modification de l’état de la variable concernée dans le cadre de droite.
[REMARQUE 1] Pour mieux comprendre comment fonctionne le débogueur, lisez
attentivement la légende expliquant la signification des deux couleurs utilisées en
surimpression du code :

[REMARQUE 2] Il est possible de revenir en arrière à tout moment à l’aide du bouton < Back
ou en déplaçant le curseur.
7. Maintenant que vous avez compris comment utiliser cet outil, localisez l’instruction lors de
laquelle un dépassement de capacité a lieu. Cette erreur vous a été expliquée dans le cadre
des cours théoriques.

8
INFORMATIQUE / BLOC1 / PROGRAMMATION DE BASE LABO 1

EXERCICE 4 : À VOUS DE JOUER


Créez un fichier nommé Inconnu.java et reproduisez le code ci-dessous.
La technique employée ici est très fréquemment utilisée lorsqu’il s’agit de vérifier la validité d’un
numéro (registre national, code-barres, carte bancaire …).

Répondez aux questions suivantes en utilisant les outils qui vous ont été présentés :

→ Quelle est la valeur affichée en fin d'exécution ? 20

→ Quels sont les états des variables nombre, somme et chiffre aux lignes 10, 14, 18, 22 et 26
du code source ci-dessus ?
[REMARQUE] N’oubliez pas de copier ce code dans Java Visualizer sans les deux premières
lignes. Les numéros de ligne précités deviennent alors 8, 12, 16, 20 et 24.

Ligne nombre somme chiffre


8 7805 5 5
12 780 5 0
16 78 13 8
20 7 20 7
24 0 20 0

→ Que fait ce programme ? Quelle est la signification du résultat affiché ?

Affiche la somme des restes.


9
INFORMATIQUE / BLOC1 / PROGRAMMATION DE BASE LABO 1

EXERCICE 5 : DÉTECTER ET CORRIGER LES ERREURS D’UN PROGRAMME


Le programme ConversionsTemperature doit afficher la conversion de 19 degrés Celsius en Kelvin et
en degrés Fahrenheit.
Les formules de conversion sont les suivantes :
→ K = °C + 273,15

→ °F = 9 / 5 × °C + 32

Avant de reproduire le code source, effectuez mathématiquement les calculs ci-dessous afin de
déterminer les résultats que le programme est censé produire pour une température de 19°C. Pour
ce faire, aidez-vous d’une calculatrice (par exemple, celle de votre système d’exploitation) :
→ 19 + 273,15 = ................. K

→ 9 / 5 × 19 + 32 = ................. °F

Reproduisez ensuite le programme suivant, puis exécutez-le afin de vérifier la validité des résultats
obtenus.
Si une ou plusieurs erreurs de compilation sont détectées, corrigez-les sur base des informations
affichées par le compilateur.

Normalement, vous devriez également déceler une erreur logique au niveau du résultat exprimé en
degrés Fahrenheit. Pour trouver l’origine du problème et corriger ce dernier, utilisez Java Visualizer.

10
INFORMATIQUE / BLOC1 / PROGRAMMATION DE BASE LABO 1

EXERCICE 6 : UN AVANT-GOÛT DE PROGRAMMATION


Adaptez le programme ConversionsTemperature de sorte qu’il affiche les résultats manquants du
tableau ci-dessous. Dans certains cas, il est nécessaire de retravailler les formules données.

Degrés Celsius Kelvin Degrés Fahrenheit


19,00 292,15 66,20
20,00 293,15 68
21,00 294,15 69,8
-173.15 100,00 279,67
-32 241,15 0,00

11

Vous aimerez peut-être aussi