Académique Documents
Professionnel Documents
Culture Documents
Sachant que :
Ecrire un programme qui calcule la somme des 100 premiers entiers et indique à l'écran le résultat.
Il s'agit d'écrire un programme qui calcule la factorielle des n premiers entiers et indique à l'écran le résultat. Le
nombre n doit être lu sur la ligne de commande.
public static int parseInt(String s); qui retourne l'int correspondant à la chaîne de caractères
indiquée en paramètre. Vous compilerez avec l'instruction :
javac Factorielle.java
java Factorielle 7
si vous voulez la factorielle des 7 premiers entiers
Exercice 3 : Palindrome
Il s'agit d'écrire un programme qui, étant donnée une chaîne de caractères (une instance de la classe String
Premier temps En un premier temps, la chaîne à traiter ne comportera pas de caractère d'espacement et sera
indiquée sur la ligne de commande.
Exemples
Si la commande est :
Si la commande est :
1
> java Palindrome laval
La réponse pourrait être
L'inverse de laval est laval
laval est un palindrome
On définira une seule classe qui n'aura aucun attribut et deux méthodes statiques :
Une méthode dont l'en-tête sera : static String inverse(String s) qui retournera un objet de type
String contenant la chaîne inverse de la chaîne s. Cette méthode aura entre autres variables locales une
variable nommée envers, de type char[], pour référencer un tableau de caractères comportant autant de
case que le nombre de caractères de la chaîne s. Ce tableau est destiné à contenir les caractères de s en
sens inverse de s.
Une méthode main ; dans cette méthode, on récupérera la chaîne par la ligne de commande, on calculera
son inverse grâce à la méthode inverse, on affichera cet inverse dans la fenetre de commande, on
indiquera aussi dans la fenêtre de commande si la chaîne est ou non un palindrome.
Indications
La classe String possède une méthode length() qui retourne le nombre de caractères de la chaîne
concernée. Par exemple, si on a :
String s = "java",
s.length() vaut 4
La classe String possède une méthode charAt(int i) qui retourne le (i + 1) ème caractère de la
chaîne concernée. Par exemple, si on a :
String s = "java",
s.charAt(2) vaut v
La classe String possède une méthode equals(String c) qui retourne true la chaîne concernée est
identique à la chaîne c et false sinon.Par exemple, si on a :
La classe String possède un constructeur ayant un paramètre de type char[] et retourne un objet de type
String correspondant au tableau reçu en paramètre. Par exemple, si on a :
Second temps :En un second temps, la chaîne à traiter sera indiquée par la fenêtre d'exécution mais la saisie se
fera après le lancement du programme. Cela permettra d'avoir des caractères d'espacement dans la chaîne de
caractères à traiter.
Exemples
2
Indication
Pour effectuer une saisie par la fenêtre d'exécution, on peut utiliser l'instruction suivante :
Scanner entree = new Scanner(System.in); L'objet nommé ci-dessus entree permet de faire des saisies ;
en particulier, l'instruction
String chaine = entree.nextLine(); met dans chaîne le contenu de la ligne indiquée dans la fenêtre
d'exécution par l'utilisateur (et "envoyée" par la touche d'entrée).
Il s'agit de modéliser un segment de droite dont les valeurs des deux extrémités sont entières. Si on échange les
deux extrémités, on considère qu'il s'agit encore du même segment. Les opérations que l'on souhaite faire sur ce
segment sont :
calculer sa longueur
savoir si un entier donné se trouve sur le segment (c'est-à-dire s'il est compris entre la plus petite et la plus
valeurs des extrémités du segment).
Pour la commande :
Pour la commande :
Indication
Version avec des attributs privés Dans une seconde écriture de la classe Segment, on souhaite assurer que extr1
soit toujours plus petit que extr2 ; pour cela, on déclare les attributs extr1 et extr2 comme privés (avec le
modificateur private) ; on permettra alors, bien que ces attributs soient privés, leur consultation et leur
modification, en définissant quatre méthodes (nommées généralement accesseurs) supplémentaires dans la classe
Segment:
int getExtr1(void);
void setExtr1(int a);.
int getExtr2(void);
void setExtr2(int a);
Dans le main défini dans EssaiSegment, on ajoutera quelques instructions au choix pour tester ces méthodes
supplémentaires.
Il s'agit de modéliser un vecteur de Z2 dont l'origine est en (0, 0) (un tel vecteur est donc caractérisé par deux
nombres entiers relatifs). Les opérations que l'on souhaite faire sur ce segment sont :
calculer sa longueur, par une méthode d'instance sans paramètre, nommée longueur, et qui retourne cette
longueur sous forme d'un double
savoir si le vecteur concerné est ou non plus petit qu'un autre un autre vecteur donné ; on écrira pour cela
une méthode d'instance nommée plusPetitQue qui recevra en paramètre l'autre vecteur et qui retournera
une variable de type boolean
additionner au vecteur concerné un autre vecteur ; on écrira pour cela une méthode d'instance nommée
addition qui recevra en paramètre l'autre vecteur et qui ne retournera rien
additionner deux vecteurs donnés ; on écrira pour cela une méthode statique nommée aussi addition (en
utilisant ainsi la possibilité de la surcharge) qui recevra en paramètres les deux vecteurs à additionner et
qui retournera le résultat sous forme d'un objet de type Vecteur
une méthode redéfinissant la méthode : public String toString()Celle-ci décrira une instance de
Vecteur sous la forme d'une chaîne de caractères (par exemple, le vecteur de composantes 1 et 2 pourra
être décrit par la chaîne de caractères : "vecteur (1, 2)"). La méthode retournera cette chaîne.
On écrira une méthode main pour tester cette classe Vecteur, méthode que l'on écrira à l'intérieur d'une classe
nommée EssaiVecteur. Les composantes des vecteurs à traiter dans les tests pourront être indiquées sur la ligne
de commande. Un exemple d'exécution de ce main peut être :
Indications
4
Exercice 6 : Les complexes
1- On souhaite manipuler les nombres complexes en java. Ecrire la classe Complexe suivante :
Class Complexe {
Private double pReel ;
Private double pIm ;
public Complexe (double pReel, double pIm) ;
public Complexe (double pReel) ;
public Complexe () ;
public double getRe () ;
public double getIm () ;
public void setRe (double) ;
public void setIm (double) ;
public double module () ;
public double argument () ;
public Complexe oppose () ;
public Comlexe conjuge () ;
public Complexe inverse () ;
public Complexe plus( Complexe c) ;
public Complexe moins ( Complexe c) ;
public Complexe multiplier ( Complexe c) ;
public Complexe diviser ( Complexe c) ;
public static Complexe creerC (double pReel, double pIm) ;
public static Complexe plus (Complexe c1, Complexe c2) ;
public static Complexe moins (Complexe c1, Complexe c2) ;
public static Complexe multiplier (Complexe c1, Complexe c2) ;
public static Complexe diviser (Complexe c1, Complexe c2) ;
public String toString() ;
}
2- Ecrire une classe EssaiComplexe qui met en œuvre les différentes méthodes de la classe Complexe.
2/ écrire la classe EssaiManipTableau contenant une méthode main pour tester les méthodes précédemment
définies
3/Faites le nécessaire pour ajouter une méthode maxMin, à la classe ManipTableau, qui retourne à la fois la
valeur min et la valeur max du tableau.
5
Exercice 8 : Gérer une pile d'entiers
1/ Il s'agit de définir une classe modélisant une pile d'entiers. Nécessairement, tous les attributs de cette classe
auront le modificateur private, ce qui signifie qu'on ne peut pas les utiliser directement de l'extérieur de la
classe (on dit encore qu'ils ne sont visibles que de leur propre classe). Cette classe possèdera les méthodes
suivantes (il faudra reprendre exactement les en-têtes indiquées) :
1/ On souhaite écrire la classe Date qui gère des dates. Les attributs jour, mois, an sont mémorisés comme
des entiers. Ecrire alors les méthodes « pubiques » suivantes :
2/ Ecrire la classe EssaiDate qui permet de donner les résultat de l’exécution suivants :
Au 3/2/2003