Première semaine

Préliminaires (quelques rappels avant de commencer à coder)

Rappel méthodologique (la démarche à suivre pour résoudre les exercices)

Exercice 0
L'incontournable "Hello World" .... Corrigé
Exercice 1
Calcul et affichage de la somme, de la différence, du produit, du quotient et du reste de la division entière de deux nombres entiers. Corrigé
Corrigé
Exercice 2
Rendre de la monnaie, i.e. calcul puis affichage du nombre (minimal) de pièces de 20, 10, 5, 2 et 1 Francs correspondant à un montant donné en francs. Corrigé
Corrigé
Exercide 3
Calcul et affichage du périmètre et de l'aire d'un cercle dont on saisira le rayon. Corrigé, Corrigé


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.

  1. Taper le source dans l'éditeur JEDPlus
  2. Sauvegarder ce source sous le bon nom (i.e. le nom suivant le mot clé "class" ... Attention aux majuscules !)
  3. 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)
  4. Exécuter le programme, soit avec le menu de JEDPlus, soit avec la commande "java nomDuFichier" (attention, pas besoin de suffixe .java ou .class)
  5. 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 0 :
Comme dans tout langage de programmation, nous allons débuter avec le sacro-saint "Hello World". Le but de ce programme consiste donc à afficher le message "Hello World !" à l'écran ! Voici l'affichage que devra produire votre programme :
 

C:\Java\Algo> java HelloWorld
Hello World !
C:\Java\Algo>

Rappel : System.out.print("uneChaine") permet d'afficher "uneChaine" à l'écran sans passage à la ligne.
Tandis que System.out.println("uneChaine") permet d'afficher "uneChaine" à l'écran mais cette fois avec un retour à la ligne.



Exercice 1 :
Dans cet exercice nous désirons calculer et afficher la somme, la différence, le produit, le quotient, et le reste de la division entière de de deux nombres entiers !
Plus précisèment, voilà le comportement du programme :
 

C:\Java\Algo> java Calcul
Donnez moi un nombre : 11
Donnez moi un autre nombre : 2
11 + 2 = 13
11 - 2 = 9
11 * 2 = 22
11 / 2 = 5
11 % 2 = 1
C:\Java\Algo>

Rappel : Clavier.readInt() est l'instruction permettant de saisir un entier au clavier.

Rappel : une déclaration de variable à la syntaxe suivante : typeDeDonnées variable1 [= valeur], variable2, .... variableN ;
Par exemple, si j'ai besoin de manipuler des entiers, je peux les déclarer ainsi : int monEntier = 5, monEntierASaisir;

Précision : les quatres premiers opérateurs (+, -, *, /) vous sont familiers, par contre le dernier ne l'est peut etre pas : c'est l'opérateur modulo, il calcule le reste de la division entière de deux nombres.



Exercice 2 :
Maintenant, nous allons nous attaquer à un problème un peu plus complexe. On souhaite réaliser un programme qui pourrait nous expliquer comment rendre la monnaie en utilisant un minimum de pièces. Exemple : je vais acheter ma baguette (qui coute 7 fr), et je paye avec un billet de 100 fr. Quelle monnaie doit me rendre le caissier ? Dans ce cas 100-7 = 93 Fr, sachant qu'il dispose de pièces de 20, 10, 5, 2 et 1 Franc. Ici, il devrait me donner 4 pièces de 20 Francs, 1 pièce de 10 Francs, 0 pièce de 5 Fr, 1 pièce de 2 Francs et 1 pièce d'1 Franc. Voyons maintenant l'affichage que devra produire ce programme qui sera d'une grande aide pour mon caissier :
 

C:\Java\Algo> java Monnaie
Donnez moi le nombre de francs : 93
93 Fr = 4 * 20 Fr + 1 * 10 Fr + 0 * 5 Fr + 1 * 2 Fr + 1 * 1 Fr.
C:\Java\Algo>

Précision : Vous pouvez (en fait, vous devez :-) écrire ce programme en n'utilisant que 2 variables !



Exercice 3 :
Un exercice un peu plus facile pour digérer le précédant : on désire calculer le périmètre et l'aire d'un cercle dont on demandera le rayon à l'utilisateur.
 

C:\Java\Algo> java Cercle
Entrez le rayon du cercle : 10
Le périmètre du cercle vaut 60
L'aire du disque vaut 300
C:\Java\Algo>

Précision : Utilisez la valeur entière 3 pour représenter PI (i.e. définissez une variable int PI = 3;), on jouera avec les flottants plus tard.

Autre précision : pour ceux qui s'ennuieraient refaites l'exercice en utilisant le type double et utilisez la constante Math.PI qui représente le nombre PI en Java.