:: Enseignements :: Master :: M1 :: 2008-2009 :: Stage Java ::
![[LOGO]](http://igm.univ-mlv.fr/ens/resources/mlv.png) |
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.
-
Créer un répertoire td-java dans votre espace de travail
(avec la commande mkdir)
-
puis aller dans ce répertoire, avec la commande cd.
-
È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
-
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
-
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
}
}
-
Indiquer dans le programme où sont les variables
et quel est leur type associé.
-
Recopier le programme précédent et le compléter pour
qu'il affiche le nombre saisi par l'utilisateur.
-
Modifier le programme pour déclarer et initialiser
les variables en une seule ligne
-
Expliquer la ligne :
import java.util.Scanner;
-
Modifier le programme pour qu'il demande deux entier et
affiche la somme de ceux-ci.
-
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.
-
É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"
-
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
-
É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.
-
Modifier votre programme pour qu'il demande à l'utilisateur de rentrer
une valeur, puis affiche les nombre de 1 à la valeur rentrée.
-
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
-
Ecrire une fonction max qui prend deux entiers en paramètre
et renvoie le maximum des deux entiers.
Ecrire un main de test.
-
Ecrire une fonction min qui prend deux entiers en paramètre
et renvoie le minimum des deux entiers.
Modifier la méthode main pour tester.
aussi le minimum.
-
Ecrire une fonction max qui prend deux nombres à virgule
en paramètre et renvoie le maximum des deux nombres.
Modifier le main pour tester.
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.
-
Dans un premier temps tout faire dans le main
-
Dans un second temps, écrire une méthode statique sum
qui calcul la somme des entiers et appelée celle-ci de
la méthode main
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.
-
Écrire une méthode qui prend en paramètre une chaine de caractère,
découpe celle-ci en mot et met un mot sur deux en
majuscule minuscule respectivement.
On utilise pour cela split(), toUpperCase
et toLowerCase().
-
Écrire une méthode mirror qui renvoie une chaine de
caractère quise en paramètre à l'envers ("toto" devient "otot")
en utilisant charAt() et la concaténation
de chaine de caractère (+).
-
Ré-écrire la méthode mirror en utilisant un
StringBuilder et sa méthode append
pour effectuer la même opération.
Quelle implantation est la plus efficace ?
© Université de Marne-la-Vallée