Première semaine
Préliminaires : Quelques rappels avant de commencer à
coder !
Pour programmer on doit d'abord saisir le source du programme, le sauver
sous le bon nom, le compiler avant d'enfin pouvoir l'exécuter.
- Taper le source dans l'éditeur JEDPlus
- Sauvegarder ce source sous le bon nom (i.e. le nom suivant le mot
clé "class" ... Attention aux majuscules !)
- Compiler le code source, soit avec le menu de JEDPlus, soit avec
la commande "javac nomDuFichier.java" (ceci génére
le fichier nomDuuFichier.class)
- Exécuter le programme, soit avec le menu de JEDPlus, soit
avec la commande "java nomDuFichier" (attention, pas besoin de
suffixe .java ou .class)
- Admirer le résultat et se congratuler ... ou commencer la
chasse au(x) bug(s) :-)
Rappel du squelette d'une classe en Java (i.e. un programme) :
class MaClasseAMoi {
public static void main(String[] args){
// Déclaration
des variables
// Saisie des données
auprès de l'utilisateur
// Réalisation
des calculs
// Affichage des résultats
/* N'hésitez
pas à utiliser les commentaires, soit comme ci-dessus
lorsque vous n'avez qu'une seule ligne, soit comme ici, lorsque
vous voulez insérer des commentaires beaucoup plus longs ! */
}
}
|
Important: Enregistrez votre fichier sous le meme nom que le nom
de classe (ici, on sauverait sous "MaClasseAMoi.java").
Rappel méthodologique :
Première étape : Partir à la peche aux informations
!
Dans cette première phase on identifie les différentes
informations que l'on aura a manipulé. On détermine quelles
informations sont constantes (par exemple lorsqu'elles sont données
dans l'énoncé), quelles informations doivent etre saisies
auprès de l'utilisateur (ce qui donne généralement
lieu à un affichage pour que l'utilisateur sache ce que l'on attend
de lui), quelles informations sont calculées.
Cette première phase nous permet d'effectuer un certain nombre
de déclaration de variables.
Deuxième étape : S'attaquer au corp du problème
!
Maintenant, il faut trouver une manière de résoudre le
problème posé dans l'énoncé. Pour cela nous
devons établir un algorithme (un programme) qui grace aux différentes
informations que nous avons identifiées dans l'étape précédante,
pourra effectuer le calcul de la solution.
Troisième étape : Penser à la sortie !
Une fois que les calculs sont faits, encore faut-il les afficher, pour
que l'utilisateur voit le(s) résultat(s). Ne mélangez jamais
les calculs avec les affichages !
DERNIERE étape : CODER ! (j'insiste lourdement : ceci doit etre
la DERNIERE étape)
Une fois les trois premières étapes passées, il
ne reste plus qu'à traduire tout cela en Java. N'oubliez pas qu'il
faut utiliser des noms de variables significatifs (a, b, c, d ne sont pas
des noms de variables très "parlant"), n'hésitez pas à
abuser des commentaires pour expliquer de manière informelle le comportement
de votre code Java.
Exercice 1 :
On désire représenter un jeu de 52 cartes (on enlève
les jokers :). On dispose donc de quatre familles : COEUR, TREFLE, PIQUE,
CARREAU, et les valeurs des cartes sont les suivantes : AS, ROI, DAME, VALET,
DIX, NEUF, HUIT, SEPT, SIX, CINQ, QUATRE, TROIS, DEUX. Le but de l'exercice
est juste de créer une carte (celle que vous voulez) et de l'afficher
(écriture de la méthode toString).
C:\Java\Algo>
java TestCarte
As de Trèfle
C:\Java\Algo> |
Voici le code de la classe TestCarte, à vous de faire celui de la
classe Carte :
class TestCarte
{
public static void main(String[] args)
{
Carte carte = new Carte(Carte.AS,
Carte.TREFLE);
System.out.println(carte);
}
}
|
Exercice 2 :
Dans cet exercice nous désirons jouer au jeu de la bataille navale.
Pour cela, on aimerait disposer d'une classe Navale représentant le
jeu d'un joueur.
Le jeu est constitué d'un tableau à deux dimensions représentant
l'espace de jeu, chaque case pouvant contenir soit de l'eau, soit un bateau
:
C:\Java\Algo> java
TestNavale
1 2 3 4 5 6 7 8
A - - - - - - - -
B - # - - - - - -
C - # - - - - - -
D - # - - - # - -
E - # - - - - - -
F - - - # # - - -
G - - - - - - - -
H - - - - - - - -
Entrez une position (D2 par exemple) : D6
D6 contient un bateau.
La taille du bateau en D6 est de 1 case(s).
C:\Java\Algo> |
Vous devez donc écrire plusieurs méthodes :
_ String toString() : permettant d'afficher le plateau jeu
_ boolean bateauEn(int x, int y) : retournant 'true' si un bateau
se trouve dans la case (x,y), faux sinon !
_ boolean bateauEn(String position) : idem ci-dessus, mais le
paramètre est passé sous la forme d'une chaine de caractères.
Exemple : "B2", "D4" ....
_ int tailleBateauEn(int x, int y) : retourne la taille du bateau
en (x,y). Attention, cette méthode n'est pas triviale : il faut en
effet tester les quatre directions possibles !