TP 01 : Premiers pas avec Eclipse - Programme Factorielle Java

Telechargé par Newnainai
1
class Factorielle {
public static int fact(int n) {
int resultat=1;
for (int i = 2; i <= n; i++) {
resultat *=i;
}
return resultat;
}
public static void main(String[] args) {
int n = Integer.parseInt(args[0]);
System.out.print("factorielle de "+n+" : "+fact(n));
}
}
USTHB Faculté d'Informatique
Master1 IL MODAL
TP 01
Exercice 1
Premiers pas avec Eclipse
1.
Lancer Eclipse.
2.
Sélection du répertoire de travail
Dans la 1ère fenêtre, sélectionner un répertoire. Ce dossier sera votre répertoire de
travail où seront stockés les sources (.java) et les fichiers compilés (.class) de tous vos
programmes.
3.
Premier projet
Créer un nouveau projet (File > New > Project).
1ère fenêtre : Select a wizard, sélectionner Java project
2ème fenêtre : donner un nom au projet puis Finish
4.
Premier package
Dans la partie (Package Explorer), sélectionner le projet puis créer un nouveau
package (clic droit, New > Package)
Donner un nom à ce package : tp1
5.
Première classe
Dans la partie (Package Explorer), sélectionner le package tp1 puis créer une nouvelle
classe (clic droit, New > Class)
Donner un nom à la classe : Factorielle et vérifier que la case public static
void main(String[] args) est bien cochée.
Votre première classe est créée !
Un premier programme
Compléter la classe Factorielle que vous venez de créer :
Étant donné un entier fourni en ligne de commande (voir annexe), la classe Factorielle
calcule et affiche la factorielle de cet entier (par exemple : factorielle de 5 :120).
2
Exercice 2
Récursivité
Une fonction récursive est une fonction qui s'appelle ellemême. Ainsi, la fonction
factorielle peut être définie de manière plus concise en utilisant la récursivité.
Ecrire une méthode récursive static int fact_recursive(int n)
calculant n!.
Exercice 3
Gestion des exceptions
Ce programme ne se préoccupera pas pour l'instant des cas d'erreurs pouvant se
produire. Essayez successivement en exécutant le programme :
1.
de ne pas faire figurer sur la ligne de commande le paramètre attendu
2.
de mettre un paramètre non entier
3.
de mettre un paramètre entier négatif
Dans les deux premiers cas, une exception est signalée (voir annexe). Dans le dernier cas, le
résultat est faux.
Vous devez modifier le programme pour que, dans chacun de ces cas, l'erreur soit attrapée
par le programme et signalée à l'utilisateur.
3
Pour lancer ce programme depuis Eclipse en lui communiquant une suite d'arguments sur la
ligne de commandes, il vous faut procéder comme suit :
o
Cliquez sur la flèchebas à la droite du bouton Run.
o
Sélectionner l'item Run Configurations... dans le menu contextuel
o
La fenêtre de configuration des exécutions est affichée. Dans cette fenêtre, sélectionnez
l'onglet Arguments
o
Dans le champ Program Arguments écrivez les arguments que vous souhaitez
transmettre à votre programme lors de son exécution
o
cliquez surle bouton Apply, ensuite lancez l'exécution en cliquant sur le
bouton Run
Le premier paramètre envoyé sur la ligne de commande après le nom du programme se
trouve à l'indice 0 du tableau de chaînes de caractères de l'argument de la méthode main.
Cette méthode envoie une exception de type ArrayIndexOutOfBoundsException
si le paramètre attendu ne figure pas sur la ligne de commande.
La classe Integer du paquetage java.lang possède la méthode :
public int static parseInt(String s)throws
NumberFormatException;
qui retourne l'entier correspondant à la chaîne de caractères indiquée en paramètre.
Cette méthode envoie une exception de type NumberFormatException si la chaîne de
caractères ne correspond pas à un entier.
L'instruction "try ... catch" permet de gérer les exceptions.
o
La déclaration "throws" permet d'indiquer que la méthode fact est susceptible de
lever une exception : ici ExceptionGrand.
o
ExceptionGrand sera propagée/transmise à la méthode appelante si elle est levée
par l'instruction "throw".
o
Donc il faut que les méthodes qui appellent la méthode fact mettent éventuellement
en place un mécanisme de capture try-cath ou qu'elles gèrent l'exception.
Dans le premier cas, on souhaite que le programme affiche par exemple : " Indiquez
l'entier sur la ligne de commande"
Si le paramètre indiqué est 4, afficher : "-4 est négatif : la factorielle
n'est pas définie".
Travail à faire
a.
Ecrivez une classe ExceptionNegatif définissant une exception qui sera levée lors
d'une tentative de calcul de factorielle d'un entier négatif.
b.
Ecrivez une classe ExceptionGrand définissant une exception qui sera levée lors
d'une tentative de calcul de factorielle d'un entier trop grand.
Annexe
1 / 3 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!