0% ont trouvé ce document utile (0 vote)
2 vues4 pages

Java Chapitres4et5

Le document présente des exercices corrigés sur la programmation Java, couvrant les chaînes, ArrayList, énumérations et la gestion des exceptions. Chaque exercice inclut un objectif, un code source et des explications sur les concepts utilisés. Les fichiers à compiler et exécuter pour chaque exercice sont également listés.

Transféré par

jeanlucmudibura0
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
2 vues4 pages

Java Chapitres4et5

Le document présente des exercices corrigés sur la programmation Java, couvrant les chaînes, ArrayList, énumérations et la gestion des exceptions. Chaque exercice inclut un objectif, un code source et des explications sur les concepts utilisés. Les fichiers à compiler et exécuter pour chaque exercice sont également listés.

Transféré par

jeanlucmudibura0
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

Programmation Java — UCB BAC1 2026

Chapitres 4 et 5 — Exercices corrigés

Chapitre 4 — Chaînes, ArrayList et Énumérations

Exercice 4.1 — Manipulation de la classe String


Objectif : lire une chaîne et compter séparément les voyelles et les consonnes avec length() et
charAt(i).

Fichier : Exercice4_1.java
public class Exercice4_1 {
public static void main(String[] args) {
String chaine = "Programmation";
int voyelles = 0, consonnes = 0;
String v = "aeiouAEIOU";

for (int i = 0; i < [Link](); i++) {


char c = [Link](i);
if ([Link](c)) {
if ([Link](c) != -1) voyelles++;
else consonnes++;
}
}

[Link]("Voyelles : " + voyelles);


[Link]("Consonnes : " + consonnes);
}
}

💡 length() retourne la taille de la chaîne. charAt(i) retourne le caractère à l'indice i. indexOf(c) retourne -1 si
le caractère est absent.

Exercice 4.2 — Utilisation dynamique d'ArrayList


Objectif : manipuler une ArrayList<String> avec add(), remove(), set() et size().

Fichier : Exercice4_2.java
import [Link];

public class Exercice4_2 {


public static void main(String[] args) {
ArrayList<String> liste = new ArrayList<String>();

[Link]("Alice");
[Link]("Bob");
[Link]("Claire");
[Link]("David");
[Link]("Eve");

[Link](1); // Supprime "Bob"


[Link]([Link]() - 1, "Emma"); // Modifie le dernier

[Link]("Taille : " + [Link]());


[Link](liste);
}
}
💡 Contrairement aux tableaux, ArrayList est dynamique : sa taille change automatiquement. remove(1)
supprime l'élément à l'indice 1.

Exercice 4.3 — Types Énumérés (Enum)


Objectif : créer une énumération Jour et parcourir ses valeurs avec values() et ordinal().

Fichier : Exercice4_3.java
public class Exercice4_3 {

enum Jour {
LUNDI, MARDI, MERCREDI, JEUDI, VENDREDI, SAMEDI, DIMANCHE
}

public static void main(String[] args) {


for (Jour j : [Link]()) {
[Link]([Link]() + " - " + j);
}
}
}

💡 values() retourne tous les membres de l'énumération. ordinal() retourne la position (0 pour LUNDI, 1 pour
MARDI, etc.).

Chapitre 5 — Gestion des Exceptions

Exercice 5.1 — Exception implicite (ArithmeticException)


Objectif : intercepter une division par zéro avec un bloc try / catch.

Fichier : Exercice5_1.java
import [Link];

public class Exercice5_1 {


public static void main(String[] args) {
Scanner sc = new Scanner([Link]);

[Link]("Numerateur : ");
int a = [Link]();
[Link]("Denominateur : ");
int b = [Link]();

try {
int resultat = a / b;
[Link]("Resultat : " + resultat);
} catch (ArithmeticException e) {
[Link]("Erreur : division par zero impossible.");
}
}
}

💡 ArithmeticException est une exception implicite (non vérifiée). Elle est levée automatiquement par la JVM
lors d'une division par zéro.

Exercice 5.2 — Exception explicite personnalisée


Objectif : créer une classe ErrDepl extends Exception et la lever avec throw new ErrDepl().
Fichier : [Link]
public class ErrDepl extends Exception {
public ErrDepl() {
super("Coordonnees negatives interdites.");
}
}

Fichier : [Link]
public class PointAvecException {
private int x, y;

public PointAvecException(int x, int y) {


this.x = x;
this.y = y;
}

public void deplacer(int dx, int dy) throws ErrDepl {


if (dx < 0 || dy < 0) {
throw new ErrDepl();
}
this.x += dx;
this.y += dy;
}
}

Fichier : Exercice5_2.java (fichier à compiler et exécuter)


public class Exercice5_2 {
public static void main(String[] args) {
PointAvecException p = new PointAvecException(3, 5);
try {
[Link](2, -1); // declenche ErrDepl
} catch (ErrDepl e) {
[Link]("Exception : " + [Link]());
}
}
}

💡 throws dans la signature indique que la méthode peut lever cette exception. throw new ErrDepl() la
déclenche effectivement.

Exercice 5.3 — Redéclenchement et propagation


Objectif : intercepter une exception dans un bloc catch, afficher un message, puis la redéclencher
vers l'appelant avec throw e.

Fichier : Exercice5_3.java
public class Exercice5_3 {

static void operationRisquee() throws ArithmeticException {


try {
int result = 10 / 0;
} catch (ArithmeticException e) {
[Link]("Interception locale : " + [Link]());
throw e; // redeclenchement vers l'appelant
}
}

public static void main(String[] args) {


try {
operationRisquee();
} catch (ArithmeticException e) {
[Link]("Interception dans main : " + [Link]());
}
}
}

💡 throw e redéclenche l'exception déjà capturée. throws dans la signature de la méthode est obligatoire
pour informer l'appelant.

Résumé — Fichiers à compiler


Pour chaque exercice, compiler et exécuter uniquement le fichier principal :

Exercice 4.1 : javac Exercice4_1.java → java Exercice4_1


Exercice 4.2 : javac Exercice4_2.java → java Exercice4_2
Exercice 4.3 : javac Exercice4_3.java → java Exercice4_3
Exercice 5.1 : javac Exercice5_1.java → java Exercice5_1
Exercice 5.2 : javac Exercice5_2.java → java Exercice5_2
Exercice 5.3 : javac Exercice5_3.java → java Exercice5_3

Vous aimerez peut-être aussi