- Faire un repertoire TP1, dans lequel vous allez sauvegarder tous les programmes que vous ecriverez aujourd'hui. Créer un fichier source Java. Un fichier source contient du texte, écrit en Java. Vous pouvez utiliser n'importe quel éditeur de texte pour créer et éditer des fichiers sources (kwrite,...).
- Recopier le texte du code de la classe Hello présentée ci-dessous (selectionner le texte et coller dans votre editeur en utilisant le bouton de milieu de votre souris) et sauvegarder le fichier sous le nom Hello.java.
/* Hello - Affiche le message "Bonjour". */
import fr.jussieu.script.*;
class Hello{
public static void main(String[] args){
Deug.println("Bonjour");
}
}
- Compiler le fichier source dans un fichier de bytecode. Le compilateur Java, appelé javac, prend le fichier source Hello.java et le traduit en fichier Hello.class que la machine virtuelle Java peut comprendre : un fichier de bytecodes
Placez-vous dans le répertoire contenant votre fichier Hello.java et exécuter la commande suivante :
javac Hello.java
Si votre prompt réapparait sans message d'erreur, félicitations !, vous avez compilé avec succès votre premier programme Java. Sinon, lisez attentivement les messages d'erreur qui vous indiquent notamment la ligne suspecte dans le fichier source, ainsi que des informations sur la nature de l'erreur. Vérifiez que votre répertoire contient dorénavant le fichier Hello.class.
- Exécuter le programme contenu dans le fichier de bytecode en tapant la commande
java Hello
La machine virtuelle Java (Java VM) interprète le fichier de bytecode et exécute les instructions.
- Analyser et identifier chaque ligne du programme précédent.
Séquentialité
Le programme Hello précédent n'est effectuait qu'une seule action : a afficher "Bonjour". Le modifier pour qu'il a affiche "Bonjour", puis qu'il a affiche "Au revoir". A quoi servent les points virgules ? Les accolades ?
Le jeu des 4 erreurs
Recopier le code du programme Hello2.java disponible ci-dessous. Ce programme contient 4 erreurs. Essayez de le compiler et, à l'aide du message d'erreur commencez à le corriger. Recommencez jusqu'à ce que le programme fonctionne correctement :
/* Hello2 *
* Version incorrecte du programme Hello
* qui doit être corrigée avant de pouvoir
* afficher le texte "Bonjour". */
import fr.jussieu.script.Dug;
class Hello2 public static void main(String] args) { Deug.println("Bonjour !);
//Affichage } }
Variables et types
- Considérer le programme suivant :
import fr.jussieu.script.Deug;
class Type{
public static void main(String[] args) {
int x;
float y;
x = 1234;
y = 3.14f;
int z = 42;
}
}
Quelles sont les variables utilisées dans celui-ci ? Quel est leur type. Que se passe-t-il si l'on remplace la ligne 7 par y = 3.14 ; ? Que faire pour éviter l'erreur ? Pourquoi le programme original marche-t-il si l'on remplace la ligne 5 par double y ; ?
- Ecrire un programme Typage qui déclare une variable x de type int. Affectez x avec la valeur 1234 et compiler. Que se passe-t-il ? Recommencer successivement d'affecter x avec les valeurs -2, 3.14f, 4.5, toto et false. Que se passe-t-il ? Pour chaque valeur proposée, quels sont les types possibles qu'il aurait fallu donner à la variable x ?
-
Ecrivez un programme Hello3 qui déclare une variable message de type String, lui affecte la valeur "coucou ! ! !" et affiche le message dans le terminal.
- Considérer le programme suivant (compiler et executer):
import fr.jussieu.script.Deug;
class Type{
public static void main(String[] args) {
int x;
Deug.print("Entrez un nombre: ");
x = Deug.readInt();
Deug.println(x);
}
}
Que se passe-t-il ? Quelle est la difference entre Deug.print et Deug.println? Qu'est ce que fait la fonction readInt. Trouvez les explications sur readInt ici
- Ecrivez un programme Echo qui lit un message saisi par l'utilisateur dans le terminal et affiche ce message dans le terminal quand l'utilisateur appuie sur la touche Entrée. (Vous pouvez utiliser le programme de la question précédente)
- Ecrire un programme Hello4 qui lit un nom saisi dans le terminal et affiche le message Bonjour ... ! , où ... est remplacé par le nom.
- Ecrire un programme Hello5 qui demande à l'utilisateur son prénom puis son nom, les lit, puis affiche le message Bonjour ... ! , où ... est remplacé par le prénom suivi du nom.
Exercices complementaires
- Écrire un programme qui calcule et affiche les racines d'un polynôme
a x2 + b x + c.
Pour simplifier, on supposera que les deux racines existent, sans faire de cas particulier pour une racine double.
Les valeurs de a, b et c seront introduites par une déclaration de la forme :
double a = 3, b = 2, c = -1;
On comparera le résultat affiché par le programme avec les racines mathématiques (-1 et 1/3).
- On recommencera ensuite pour les valeurs
a = 0.3, b = 0.2 et c = -0.1
, en modifiant le texte du programme.
On devrait trouver les mêmes racines, mais on constate que les calculs ne sont pas très précis.
- Écrire un programme qui convertit un nombre de secondes en heures, minutes et secondes qui seront affichées dans cet ordre. Par exemple, en déclarant le nombre total de secondes par (ou faire l'utilisateur entrer ce nombre):
int secondes = 4000;
on doit aboutir à un affichage du style :
4000 s = 1 h, 6 mn et 40 s
- Écrire un programme qui réalise l'addition de deux durées exprimées en heures, minutes et secondes.
Les données seront introduites sous la forme :
int h1 = 1, m1 = 23, s1 = 45;
int h2 = 4, m2 = 56, s2 = 15;
et le résultat sera affiché comme ci-dessus.