Pages - Menu

Pages

Les classes et les objets en java exercices corrigés - POO string


Utiliser les objets de la classe String

Exercice 1 : 

Écrivez un programme qui réalise les opérations suivantes :


a. Demander la saisie d’une phrase.
b. Afficher la phrase en majuscules.
c. Compter le nombre de « a » dans la phrase puis, s’il y en a, transformer tous les « a » en « * ».
d. Tester si, entre le cinquième caractère et le douzième, se trouve une séquence de caractères préalablement saisie au clavier.

Exercice 2 : 

Écrivez un programme qui permet d’obtenir les actions suivantes :

a. Saisir des mots jusqu’à ce que l’utilisateur entre le mot « Fin ».
b. Afficher, parmi les mot saisis, le premier dans l’ordre alphabétique.
c. Afficher, parmi les mot saisis, le dernier dans l’ordre alphabétique.

Le mot "Fin" ne doit pas être pris en compte dans la liste des mots saisis.

Créer une classe d’objets

Exercice 3 : 


L’objectif est de définir une représentation d’un objet Personne.

a. Sachant qu’une personne est définie à partir de son nom, son prénom et son âge, définissez les données de la classe Personne.

b. Écrivez une application MesAmis qui utilise un objet Untel de type Personne et qui demande la saisie au clavier de ses nom, prénom et âge.

Consulter les variables d’instance

Exercice 4 : 


Pour définir les comportements d’un objet de type Personne :

a. Dans la classe Personne, décrivez la méthode présentezVous(), qui affiche les caractéristiques de la personne concernée.

b. Modifiez l’application de façon à afficher les caractéristiques de l’objet Untel.

c. Dans la classe Personne, décrivez la méthode quelEstVotreNom(), qui permet de connaître le nom de la personne concernée.

d. Dans la classe Personne, décrivez la méthode quelEstVotreAge(), qui permet de connaître l’âge de la personne concernée.

e. Modifiez l’application de façon à afficher le nom puis l’âge d’Untel.

Analyser les résultats d’une application objet

Exercice 5 : 


Pour bien comprendre ce que réalise l’application FaireDesPoints, observez les deux programmes suivants :

public class Point // Le fichier s’appelle Point.java
{
int x, y;
public void créer()
{
System.out.print("Entrez l’abscisse : ");
x = Lire.i();
System.out.print("Entrez l’ordonnee : ");
y = Lire.i();
}
public void afficher()
{
System.out.println("x : " + x + " y : " + y);
}
public void déplacer( int nx, int ny)
{
x = nx;
y = ny;
}
} // fin de la class Point

public class FaireDesPoints // Le fichier s’appelle FaireDesPoints.java
{
public static void main( String [] arg)
{
Point P = new Point();
P.afficher();
P.créer();
P. afficher();
P.déplacer(10, 12);
P.afficher();
}
} // fin de la class FaireDesPoints

a. Quel est le programme qui correspond à l’application ?

b. Quel est le programme définissant le type Point ?

c. Recherchez les attributs de la classe Point, et donnez leur nom.

d. Combien de méthodes sont-elles définies dans la classe Point ? Donnez leur nom.

e. Quels sont les objets utilisés par l’application FaireDesPoints ? Que valent leurs données x et y après exécution de l’instruction déclaration ?

f. Sur la représentation graphique ci-dessous, placez, pour l’objet P, la valeur initiale ainsi que le nom des méthodes.
  

g. À l’appel de la méthode créer(), comment les valeurs sont-elles affectées aux attributs des objets concernés ? Modifiez les cases concernées sur la représentation graphique.

h. Même question pour la méthode déplacer().

i. Quel est le résultat final de l’application ?

--------------------------------------------------------------------------------------------------

Correction

--------------------------------------------------------------------------------------------------

Corrige Exercice 1 : 



public class Exercice1 {
public static void main(String [] argument) {
String s1 = "", s2 = "", s3 = "", s4 = "";
int nbA = 0;
// a. demande la saisie d'une phrase
System.out.print("Entrez une phrase : ");
s1 = Lire.S();
// b. affiche la phrase en majuscule
s2 = s1.toUpperCase();
// c. compte le nombre de 'a'
for (int i = 0; i < s2.length(); i++)
if(s2.charAt(i) == 'A') nbA++;
System.out.println("Vous avez entre : " + s1);
System.out.println("Soit en majuscule : " + s2);
System.out.println("Ce mot contient : " + nbA + " A ");
// c. transforme tous les 'a' par des '*'
s3 = s2.replace('A','*');
System.out.println("Il s'ecrit donc : " + s3);
System.out.print("Entrez un second mot : ");
s4 = Lire.S();
// d. teste si s4 se trouve entre les 5ième et 12ième caractères de s1
if (s1.regionMatches(5,s4,0,7))
System.out.println("La sous chaine " + s4 + " est bien placee ");

}
}

Corrige Exercice 2 : 




Le programme reprend la marche à suivre de l'exercice 2 du chapitre 4, qui recherche la plus grande et la plus petite valeur d'une liste de nombres saisis au clavier, la saisie s'arrêtant lorsque l'utilisateur entre la valeur 0. Pour cet exercice, la démarche est identique. Seules, les techniques de comparaison diffèrent puisque les variables utilisées ne sont plus numériques mais, alphabétiques.

public class Exercice2 {
public static void main(String [] argument) {
String s1 = "", sPlusGrand = "", sPlusPetit = "";
System.out.print("Entrez un mot : ");
s1 = Lire.S();
sPlusGrand = s1 ;
sPlusPetit = s1 ;
do {
if (s1.compareTo(sPlusGrand) < 0) sPlusGrand = s1 ;
if (s1.compareTo(sPlusPetit) > 0) sPlusPetit = s1 ;
System.out.print("Entrer une mot (FIN pour sortir) : ") ;
s1 = Lire.S();
} while ( ! s1.equalsIgnoreCase("FIN") );
System.out.println("Le plus grand mot : " + sPlusGrand) ;
System.out.println("Le plus petit mot : " + sPlusPetit) ;
}
}

Remarquez le '!' devant l'expression s1.equalsIgnoreCase("FIN"). Le '!' est utilisé pour nier une expression située juste après. Littéralement, l'expression se traduit par « tant que s1 n'est pas égal à "FIN" sans tenir compte des majuscules ».


Corrige Exercice 3 et 4 : 




La classe Livre :

public class Livre {
// 3.a Définition des propriétés
public String titre;
public String categorie ;
public String isbn ;
public String nomAuteur ;
public String prenomAuteur ;
public String code ;
// 4.a Définition des comportements : La méthode afficherUnLivre()
public void afficherUnLivre(){
System.out.println("Titre : " + titre);
System.out.println("Auteur : " + nomAuteur + " " + prenomAuteur);
System.out.println("Categorie : " + categorie);
System.out.println("ISBN : " + isbn);
}
// 4.c Définition des comportements : La méthode calculerLeCode()
public String calculerLeCode () {
String debutNom;
String debutPrenom;
String debutCategorie;
int longueurIsbn;
String finIsbn;
// 4.c Récupérer les deux premières lettres du nom
debutNom=nomAuteur.substring(0,2);
// 4.c Récupérer les deux premières lettres du prénom
debutPrenom=prenomAuteur.substring(0,2);
// 4.c Récupérer les deux premières lettres de la catégorie
debutCategorie=categorie.substring(0,2);
// 4.c Calculer la longueur du mot ISBN
longueurIsbn=isbn.length();
// 4.c Récupérer les deux dernières lettres du numéro ISBN
finIsbn=isbn.substring((longueurIsbn-2),longueurIsbn);
// 4.c Retourner la suite des caractères extraits ci-avant
return debutNom+debutPrenom+debutCategorie+finIsbn;
}
}

La classe Bibliotheque :

public class Bibliotheque {
public static void main(String [] arg){
// 3.b Définition de l’objet livrePoche
Livre livrePoche = new Livre();
// 3.b Saisie du titre, pour l’objet livrePoche
System.out.print("Entrez le titre : ");
livrePoche.titre= Lire.S();
// 3.b Saisie de la catégorie pour l’objet livrePoche
System.out.print("Entrez la categorie : ");
livrePoche.categorie = Lire.S();
// 3.b Saisie du nom de l’auteur pour l’objet livrePoche
System.out.print("Entrez le nom de l'auteur : ");
livrePoche.nomAuteur= Lire.S();
// 3.b Saisie du prénom de l’auteur pour l’objet livrePoche
System.out.print("Entrez le prenom de l'auteur : ");
livrePoche.prenomAuteur= Lire.S();
// 3.b Saisie du numéro ISBN pour l’objet livrePoche
System.out.print("Entrez le numero ISBN : ");
livrePoche.isbn= Lire.S();
// 4.b Affichage des caractéritiques de l’objet livrePoche
livrePoche.afficherUnLivre();
// 4.d Affichage du code de l’objet livrePoche
System.out.println("code du livre : " + livrePoche.calculerLeCode());
}
}

Corrige Exercice 5 : 



a. Le programme correspondant à l'application est celui qui contient la fonction main(). Dans cet exercice, le programme s'appelle FaireDesTriangles.

b. Le type Triangle est défini par la classe Triangle, décrite dans le fichier Triangle.java.

c. Les attributs de la classe Triangle sont les coordonnées définissant les trois sommets d’un triangle. Ils ont pour nom respectivement xA, yA, xB, yB, xC et yC déclarés comme variables d'instance de type int.

d. Trois méthodes sont définies dans la classe Triangle. Elles ont pour nom : créer(), afficher() et déplacer().

e. L'application utilise un objet portant le nom P. Les données x et y de l'objet P valent toutes les deux 0, juste après l'instruction de déclaration de l'objet P.

f. L'objet T est représenté de la façon suivante :
  

g. La méthode créer() est appelée par l'intermédiaire de l'objet T. Ce sont donc les données xA, yA,xB, yB, xC et yC de l'objet T qui mémorisent les valeurs saisies au clavier.
  

h. De la même façon, la méthode déplacer() est appelée par l'intermédiaire de l'objet T. Ce sont
donc les données xA, yA, xB, yB, xC et yC de l'objet T qui prennent les valeurs transmises en paramètre de la méthode.



i. Le résultat final est le suivant :

Point A : 0 0
Point B : 0 0
Point C : 0 0
Point A :
Entrez l'abscisse : 10
Entrez l'ordonnée : 10
Point B :
Entrez l'abscisse : 20
Entrez l'ordonnée : 40
Point C :
Entrez l'abscisse : 40
Entrez l'ordonnée : 10
Point A : 10 10
Point B : 20 40
Point C : 40 10
Point A : 110 10
Point B : 120 40
Point C : 140 10






Aucun commentaire:

Enregistrer un commentaire