IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Exercices en Java (05-Méthodes)

Ce cinquième chapitre concerne la notion de méthodes.
Le premier exercice concerne les nombres parfaits et le deuxième exercice les nombres premiers. Le troisième et le quatrième exercice portent sur le PGCD (Plus Grand Commun Diviseur). Le cinquième exercice est un programme d'éducation. Le sixième exercice fait deviner un nombre à l'utilisateur. Le septième exercice concerne la Puissance. Le huitième exercice concerne les Tours de Hanoi.

Les principales notions abordées sont les suivantes :

  • Notion de méthode ;
  • Composants graphiques simples ;
  • Méthodes mathématiques ;
  • Méthodes récursives ;
  • Nombres aléatoires ;
  • Visibilité des variables.

Pour faire et comprendre ces exercices, vous aurez besoin d'un certain nombre de notions sur le Java en rapport avec le chapitre. Pour cela, vous pouvez consulter les tutoriels java de developpez à l'adresse suivante : https://java.developpez.com/cours/Cours en Java

La documentation de l'API sur le site de Sun est aussi une mine d'or : http://java.sun.com/javase/6/docs/api/

Article lu   fois.

L'auteur

Profil ProSite personnel

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

I. Nombre parfait

I-1. Énoncé

Un nombre entier est parfait si ses facteurs y compris 1 mais hormis lui-même s'additionnent pour former le nombre.
Exemple: 6 est un nombre parfait (1 + 2 + 3).
Écrivez une méthode qui détermine si son paramètre nombre est parfait. Utilisez cette méthode dans une application graphique qui affiche tous les nombres parfaits entre 1 et 1000. Affichez aussi les facteurs de chacun de ces nombres pour vérifier.

Classes de l'API utilisées :

I-2. Aperçu

Image d'aperçu.
Aperçu du résultat.

I-3. Démonstration


Note : javaws -viewer (accessible aussi dans le panneau de configuration Java) permet de voir les différentes applications JWS en cache et de les gérer.

I-4. Solution

Parfait.java
TéléchargerCacher/Afficher le codeSélectionnez

II. Nombre premier

II-1. Énoncé

Un nombre entier est premier s'il n'est divisible que par 1 et lui-même.
Exemple : 2, 7, 13 sont des nombres premiers alors que 4, 9, 12 n'en sont pas.
Écrivez une méthode qui détermine si un nombre est premier. Insérez cette méthode dans une application graphique pour trouver tous les nombres premiers entre 1 et 1000.

Classes de l'API utilisées :

II-2. Aperçu

Image d'aperçu.
Aperçu du résultat.

II-3. Démonstration


Note : javaws -viewer (accessible aussi dans le panneau de configuration Java) permet de voir les différentes applications JWS en cache et de les gérer.

II-4. Solution

Premier.java
TéléchargerCacher/Afficher le codeSélectionnez

III. PGCD

III-1. Énoncé

Le plus grand diviseur commun (PGCD) de deux nombres entiers est le plus grand entier qui puisse diviser les deux nombres.
Écrivez une méthode non récursive qui renvoie le PGCD de deux nombres passés en paramètres. Utilisez cette méthode dans une application graphique qui demande les deux valeurs à l'utilisateur et affiche le résultat dans une barre d'état.

Classes de l'API utilisées :

III-2. Aperçu

Image d'aperçu.
Aperçu du résultat.
Image d'aperçu.
Aperçu du résultat.

III-3. Démonstration


Note : javaws -viewer (accessible aussi dans le panneau de configuration Java) permet de voir les différentes applications JWS en cache et de les gérer.

III-4. Solution

Pgcd.java
TéléchargerCacher/Afficher le codeSélectionnez

IV. PGCD2

IV-1. Énoncé

Le plus grand diviseur commun (PGCD) de deux nombres entiers est le plus grand entier qui puisse diviser les deux nombres.
Écrivez une méthode récursive qui renvoie le PGCD de deux nombres passés en paramètres. Utilisez cette méthode dans une application graphique qui demande les deux valeurs à l'utilisateur et affiche le résultat dans une barre d'état.

Classes de l'API utilisées :

IV-2. Aperçu

Image d'aperçu.
Aperçu du résultat.
Image d'aperçu.
Aperçu du résultat.

IV-3. Démonstration


Note : javaws -viewer (accessible aussi dans le panneau de configuration Java) permet de voir les différentes applications JWS en cache et de les gérer.

IV-4. Solution

Pgcd2.java
TéléchargerCacher/Afficher le codeSélectionnez

V. Programme d'éducation

V-1. Énoncé

Construisez un programme qui aide les étudiants de niveau élémentaire à apprendre l'addition, la soustraction, la multiplication et la division.
L'étudiant doit pouvoir choisir au lancement du programme entre cinq types de problèmes arithmétiques via une boîte de dialogue :

  • 1 : addition ;
  • 2 : soustraction ;
  • 3 : multiplication ;
  • 4 : division ;
  • 5 : tous types.

L'étudiant doit ensuite pouvoir sélectionner le niveau de difficulté toujours via une boîte de dialogue :

  • 1 : nombres à un seul chiffre ;
  • 2 : nombres à deux chiffres ;
  • 3 : nombres à 3 chiffres.

Utilisez « Math.random » pour générer aléatoirement des nombres.
Le programme affiche ensuite la question dans en haut de la fenêtre. Exemple : Combien fait 27 + 35? L'étudiant entre sa réponse au moyen d'un JTextField.
Si la réponse est correcte, un des messages suivants est affiché dans l'application :

  • C'est très bien !
  • Excellent !
  • Tu fais du beau travail !
  • Bonne réponse, continue.

Et une nouvelle question est posée.
Si la réponse est incorrecte, un des messages suivants est affiché dans l'application :

  • Désolé, essaie encore. ;
  • Mauvaise réponse. Essaie une autre fois ;
  • Non, essaie à nouveau.

Et la même question est reposée.
Pour déterminer la phrase qui sera affichée, utilisez un nombre aléatoire entre 1 et 4. Utilisez ensuite une structure switch pour afficher les messages.
Le programme doit compter le nombre de réponses correctes et incorrectes entrées par l'étudiant. Au bout de 10 réponses, calculez le taux de réponses correctes. Si celui-ci est inférieur à 75 %, affichez le message « SVP, Demande à ton professeur de t'aider ».
Une nouvelle session doit ensuite démarrer.

Classes de l'API utilisées :

V-2. Aperçu

Image d'aperçu.
Aperçu du résultat.
Image d'aperçu.
Aperçu du résultat.

V-3. Démonstration


Note : javaws -viewer (accessible aussi dans le panneau de configuration Java) permet de voir les différentes applications JWS en cache et de les gérer.

V-4. Solution

Education.java
TéléchargerCacher/Afficher le codeSélectionnez

VI. Deviner un nombre

VI-1. Énoncé

Écrivez une application graphique qui demande à l'utilisateur de deviner un nombre entier (choisi aléatoirement) entre 1 et 1000. L'application affiche « Devinez le nombre que j'ai choisi entre 1 et 1000 : ».
Un JTextField en dessous permet à l'utilisateur de rentrer un nombre et de valider avec la touche entrée. Si la réponse est incorrecte le programme affiche « Trop grand, essayez encore! » ou « Trop petit, essayez encore » dans une barre d'état et vide le JTextField. Lorsque la réponse est correcte, affichez « Félicitation, vous avez deviné le nombre! ».
Comptez le nombre d'essais du joueur. Quand le joueur a trouvé le nombre, si le nombre de tentatives est inférieur à 10 affichez « Soit vous connaissez le secret, soit vous êtes chanceux! ». Si le nombre de tentatives est égal à 10 affichez « D'accord, vous connaissez le secret! ». Sinon, affichez « Vous pouvez certainement faire mieux! ».

Classes de l'API utilisées :

VI-2. Aperçu

Image d'aperçu.
Aperçu du résultat.

VI-3. Démonstration


Note : javaws -viewer (accessible aussi dans le panneau de configuration Java) permet de voir les différentes applications JWS en cache et de les gérer.

VI-4. Solution

Deviner.java
TéléchargerCacher/Afficher le codeSélectionnez

VII. Puissance

VII-1. Énoncé

Écrivez une méthode récursive puissance(bas, exposant) qui renvoie base à la puissance exposant.
Exemple : puissance(5, 3) = 5 * 5 * 5.
Intégrez cette méthode à une application graphique qui permette à l'utilisateur d'entrer la base et l'exposant.

Classes de l'API utilisées :

VII-2. Aperçu

Image d'aperçu.
Aperçu du résultat.
Image d'aperçu.
Aperçu du résultat.

VII-3. Démonstration


Note : javaws -viewer (accessible aussi dans le panneau de configuration Java) permet de voir les différentes applications JWS en cache et de les gérer.

VII-4. Solution

Puissance.java
TéléchargerCacher/Afficher le codeSélectionnez

VIII. Tours de Hanoi

VIII-1. Énoncé

Les tours de Hanoi sont composées de trois piquets. Au départ, la pile contient un certain nombre de disques sur le premier piquet empilés du plus grand au plus petit, de bas en haut. Le but est de déplacer tous les disques du premier piquet au troisième piquet sans que jamais un disque plus grand ne se retrouve au-dessus d'un disque plus petit. Le deuxième piquet permet d'empiler temporairement des disques.
L'algorithme récursif permettant de résoudre ce problème est le suivant :

  1. Déplacer n-1 disques du premier piquet au deuxième piquet en utilisant le troisième piquet comme piquet d'empilement temporaire ;
  2. Déplacer le dernier disque du premier piquet au troisième piquet. (le plus grand) ;
  3. Déplacer n-1 disques du deuxième piquet au troisième piquet en utilisant le premier piquet comme piquet d'empilement temporaire.

Créez une application graphique résolvant ce problème. Le nombre de disques étant saisi par l'intermédiaire d'un JTextField. La méthode tour à écrire prend 4 paramètres : le nombre de disques, le piquet où sont placés les disques au départ, le piquet servant d'empilement temporaire et le piquet sur lequel doivent être les disques à la fin.
Ainsi le programme doit afficher les étapes de déplacement des disques d'un piquet à un autre dans un JTextArea avec défilement.
Exemple avec un nombre de disques égal à 3 :
1 -> 3
1 -> 2
3 -> 2
1 -> 3
2 -> 1
2 -> 3
1 -> 3

Classes de l'API utilisées :

VIII-2. Aperçu

Image d'aperçu.
Aperçu du résultat.
Image d'aperçu.
Aperçu du résultat.

VIII-3. Démonstration


Note : javaws -viewer (accessible aussi dans le panneau de configuration Java) permet de voir les différentes applications JWS en cache et de les gérer.

VIII-4. Solution

Hanoi.java
TéléchargerCacher/Afficher le codeSélectionnez

IX. Remerciements

Je tiens à remercier wichtounet pour les conseils, remarques et relectures.
Je remercie aussi www.developpez.com me permettant de publier cet article et Nono40 pour ses outils.

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2007 Sébastien ESTIENNE. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.