Beruflich Dokumente
Kultur Dokumente
Exercice 1 :
Que donne le programme CalculeMoyenne lancé avec les paramètres suivants (introduits
à travers la ligne de commande) : x 2 –1 30 18 et x –3 2.3 ?
class CalculeMoyenne
{
static int moyenne(String[ ] liste) throws ExceptionRien
{
int somme=0,entier, nbNotes=0;
for (int i = 0 ; i<liste.length ; i++)
{
try
{
entier=Integer.parseInt (liste[i]);
if (entier < 0) throw new ExceptionIntervalle ("petite");
else if (entier>20) throw new ExceptionIntervalle ("grande");
else
{
somme+=entier;
nbNotes++;
}
}
catch (NumberFormatException e)
{
System.out.println("La note n°"+(i+1)+" n'est pas entière");
}
catch (ExceptionIntervalle e)
{
System.out.println ("La note n°"+(i+1)+ " est trop
"+e.getMessage());
}
}// fin for
if (nbNotes==0)
throw new ExceptionRien ( );
return (int)somme/nbNotes;
}
public static void main (String [ ] args)
{
try
{
System.out. println("La moyenne est : "+moyenne(args));
}
catch (ExceptionRien e)
{
System.out.println(e);
Page 1 sur 4
}
}
}
Exercice 2
Il s'agit de deviner ce que fait le programme suivant pour les instructions :
Java TestMoyenne 15 14 xx 12
Java TestMoyenne xx
Java TestMoyenne
Indication :
Java désigne ici le nom de l'interpréteur du langage Java
class TestMoyenne
{
static int moyenne (String [ ] liste) throws ArithmeticException
{
int somme=0,entier, nbNotes=0;
int i=0;
for (i=0;i<liste.length;i++)
{
try
{
entier=Integer.parseInt(liste[i]);
somme+=entier;
nbNotes++;
}
finally
{
System.out.println("Donnée traitée : "+liste[i]);
}
}
return somme/nbNotes;
}
public static void main(String [ ] args)
{
try
{
System.out. println("La moyenne est : "+moyenne(args));
}
catch (NumberFormatException e)
{
Page 2 sur 4
System.out.println("Erreur sur vos entiers");
}
catch (ArithmeticException e)
{
System.out.println ("Erreur, pas de paramètres");
}
}
}
}
Exercice 3
Soit la classe Temps suivante :
class Temps
{
private int heures;
private int minutes;
private int secondes;
Exercice 4
Soit le programme suivant qui calcule la factorielle d'un entier passé comme paramètre à
travers la ligne de commande :
Page 3 sur 4
System.out.println ("La factorielle de "+n+" est: "+f);
}
}
}
Pour chacun de ces cas l'erreur doit être signalée de façon précise à l'utilisateur.
Indications :
Si args[0] n'est pas un entier la méthode parseInt lance une exception instance
de NumberFormatException (du package java.lang)
Si l'accès à un tableau se fait avec un indice erroné (indice négatif ou supérieur à
la taille du tableau) une exception instance de
ArrayIndexOutOfBoundsException (du package java.lang) est lancée
Page 4 sur 4