:: Enseignements :: Master :: M1 :: 2008-2009 :: Stage Java ::
[LOGO]

Premiers pas en Java, variables, tests, boucles, fonctions, ligne de commande, entrée standard



Exercice 1 - Hello Groland

On rappelle qu'il est préférable en Java que chaque classe soit définie dans un fichier qui lui est propre. Le nom du fichier doit être le nom de la classe qu'il contient, auquel on ajoute le suffixe .java. Les noms des classes doivent être constitués de mots accolés dont la première lettre est une majuscule.
Dans un premier temps nous allons écrire des petits programmes permettant de se familiariser avec le compilateur, la machine virtuelle et les méthodes.

  1. Créer un répertoire td-java dans votre espace de travail (avec la commande mkdir)
  2. puis aller dans ce répertoire, avec la commande cd.
  3. Ècrire le programme suivant :
         public class HelloGroland {
           public static void main(String[] args) {
             System.out.println("Hello Groland");
           }
         }
        
    dans votre éditeur de texte préféré et sauvegarder celui-ci dans le répertoire td-java sous le nom HelloGroland.java
  4. Compiler le programme en utilisant le commande javac puis vérifier que le fichier .class correspondant existe bien (avec la command ls (unix) ou dir (windows).
         javac HelloGroland.java
        
  5. Exécuter le programme avec la commande java
         java HelloGroland
        
    On ne met pas ".class" parce que la machine virtuelle le rajoute toute seule lorsqu'elle va chercher une classe.

Exercice 2 - Calculette simple

Écrire un programme prenant un nombre sur l'entrée standard et affichant celui-ci
Pour cela, on utilisera un objet Scanner et particulièrement sa méthode nextInt().
    import java.util.Scanner;

    public class Calculette {
      public static void main(String[] args) {
        Scanner scanner;
        scanner=new Scanner(System.in);
        int value;
        value=scanner.nextInt();
        // compléter ici
      }
    }
   

  1. Indiquer dans le programme où sont les variables et quel est leur type associé.
  2. Recopier le programme précédent et le compléter pour qu'il affiche le nombre saisi par l'utilisateur.
  3. Modifier le programme pour déclarer et initialiser les variables en une seule ligne
  4. Expliquer la ligne :
         import java.util.Scanner;
        
  5. Modifier le programme pour qu'il demande deux entier et affiche la somme de ceux-ci.
  6. Afficher en plus de la somme, la différence, le produit, le quotien et le reste.

Exercice 3 - Bien le bonjour

Écrire un programme demandant à un utilisateur quel est son nom et affichant "bonjour" suivi du nom rentré précédemment.
Faite en sorte d'afficher le texte "bonjour" et le nom sur une seul et même ligne
  • Soit un utilisant System.out.print()
  • Soit en utilisant le concaténation des chaîne de caractère (le +).

Exercice 4 - À propos artificiel

Conversons avec notre programme.

  1. Écrire un programme prenant un nombre sur l'entrée standard et affichant :
    • si le nombre est inférieur à 20 la phrase : "vous êtes jeunes"
    • si le nombre est supérieur à 60 la phrase : "vous êtes vieux"
  2. Ajouter une condition testant si le nombre est superieur ou égal à 20 et inférieur à 30 : la phrase sera alors "vous n'êtes plus tout jeune et pas complètement vieux"

Exercice 5 - Apprendre à compter

  1. Écrire un programme prenant un nombre sur l'entrée standard et affichant les nombres de 1 à 10 inclus.
    Vous utiliserez pour cela une boucle while.
  2. Modifier votre programme pour qu'il demande à l'utilisateur de rentrer une valeur, puis affiche les nombre de 1 à la valeur rentrée.
  3. Transformer la boucle while en boucle for et utiliser i++ pour effectuer l'incrémentation.

Exercice 6 - Compter à l'envers

LCréer un nouveau programme faisant la même chose que le programme précédent mais en affichant les nombres de 10 à 1, donc à l'envers.

Exercice 7 - Afficher les multiples

Afficher les multiples de 3 compris entre 1 et une valeur rentrée par l'utilisateur.

Exercice 8 - Le perroquet

Écrire un programme qui affiche tous les mots que tape l'utilisateur jusqu'à ce que celui-ci tape controle-D (unix) ou controle-Z suivi de Entrée (windows).
Pour savoir s'il reste des mots à lire sur l'entrée standard, on utilise la méthode Scanner.hasNext().

Exercice 9 - Calcul flottant et précision

On souhaite multiplier 1.0 par 2.0 puis utiliser le résulat et multiplier celui-ci encore par 2.0 jusqu'à ce que la valeuer soit la même d'une itération à l'autre.
  • Expliquer pourquoi la valeur va finir par se stabiliser.
  • Quelle est cette valeur ?
    Même chose si l'on essaye de divisant par 2.0 à chaque itération au lieu de multiplier.
  • Indiquer combien d'itération il a fallu dans le cas ou l'on multiplie par 2 en utilisant des float puis en utilisant des double.

Exercice 10 - Maximum/minimum de deux nombre

Dans las classe Numerical

Exercice 11 - Table de multiplication

Afficher la table de multiplication de 1 à 10, c-a-d une matrice de 10x10 avec les valeur de 1 à 10 en ligne et en colonne et dans chaque case le produit de la ligne par la colonne.
Modifier le programme pour que l'utilisateur choisisse la taille de la table.

Exercice 12 - Un triangle d'étoile

On souhaite afficher un triangle d'étoiles dont la taille est demandée au préalable à l'utilisateur.
Pour 4 cela donne :
    *
    **
    ***
    ****
   

Faire maintenant la même chose mais en dessinant une pyramide.

Exercice 13 - Somme des entiers consécutifs

On souhaite calculer la somme des entiers de 1 à n.

Exercice 14 - Factoriel

On souhaite calculer la valeur de factoriel n pour un n donnée par l'utilisateur.
Ècrire une méthode fact permettant de réaliser ce calcul. Notons que fact(n)=fact(n-1)*n c-a-d l'ancienne valeur de factoriel à laquelle on multiplie n et que fact(0)=1.
À partir de quel valeur, le cacul effectue t'il un dépassement de capacité ; vous pouvez tester avec des int puis avec des long.

Exercice 15 - Afficher les arguments de la ligne de commande

Écrire une classe PrintArgs qui affiche les arguments de la ligne de commande.
      $ java Voici des arguments
      Voici
      des
      arguments
    
Les arguments de la lignes de commandes sont stockées dans le tableau de chaînes de caractères passé en argument à la méthode public static main(String[] args).
  • Dans un premier temps, ecrivez une boucle de parcours en sachant qu'en Java les tableaux possède un attribut length qui renvoie la taille du tableau.
  • Ecriver la même boucle en utlisant la notation "foreach" i.e. for(type variable:tableau)

Exercice 16 - Calculette plus compliqué

Reprendre le code de la calculette et modifier le pour prendre des expression sur la ligne de commande ou si il n'y à pas d'argument sur l'entrée standard.
Eviter de dupliquer le code de calcul, essayer plutot d'utiliser le même code avec des valeurs provenant de la ligne de command ou de l'entrée standard.
Pour convertir une String contenant un entier en int, Vous pourrez utiliser la méthode parseInt() de la classe java.lang.Integer.

Exercice 17 - Chaine de caractère

On souhaite effectuer différentes manipulations sur les chaînes de caractère.