Avec des exercices corrigés en Java, vous pratiquerez divers concepts du langage de programmation Java. Vous commencerez par des exercices Java de base à des exercices plus avancés. La solution est fournie pour chaque exercice. Vous devez essayer de résoudre chaque problème par vous-même avant de vérifier la solution. Si vous avez des questions concernant chaque problème, nous vous encourageons à les poster sur notre forum.
Exercice 1:
Écrire un programme Java pour multiplier les éléments correspondants de deux tableaux d’entiers.
import java.util.*;
public class Main {
public static void main(String[] args) {
// Initialiser une chaîne de caractères pour stocker
// le résultat
String res = "";
// Définir deux tableaux d'entiers
int[] tab1 = {2, 1, -3, 3};
int[] tab2 = {3, 2, -3, -2};
System.out.println("\nTab1: " + Arrays.toString(tab1));
System.out.println("\nTab2: " + Arrays.toString(tab2));
// Multiplier les éléments correspondants des deux tableaux
// et créer la chaîne de résultats.
for (int i = 0; i < tab1.length; i++) {
int n1 = tab1[i];
int n2 = tab2[i];
res += Integer.toString(n1 * n2) + " ";
}
// Afficher le résultat
System.out.println("\nRésultat: " + res);
}
}
Écrire un programme Java pour vérifier si une chaîne de caractères commence par un mot spécifié.
Exemple:
str: "Hi Alex."
mot: 'Hi'
-> true
Solution:
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) {
String str = "Hi Alex.";
// Vérifier si la chaîne commence par 'Hi'
boolean res = str.startsWith("Hi");
// Afficher le résultat
System.out.println(res);
}
}
Sortie:
true
Exercice 3:
Écrivez un programme Java qui commence par un entier n, le divise par 2 s'il est pair, ou le multiplie par 3 et lui ajoute 1 s'il est impair. Répétez le processus jusqu'à ce que n = 1.
Exemple de sortie:
Saisir la valeur de n: 11
Valeur de n = 1
Solution:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
System.out.println("Saisir la valeur de n: ");
// Créer un objet Scanner pour lire les données saisies par
// l'utilisateur
Scanner sc = new Scanner(System.in);
// Lire un nombre entier
int n = sc.nextInt();
// Continuer la boucle jusqu'à ce que n devienne 1
while (n != 1) {
// Vérifier si n est pair
if (n % 2 == 0) {
n = n / 2; // S'il est pair, diviser n par 2
} else {
n = (3 * n + 1) / 2; //Si impair, effectuer le calcul
}
}
// Afficher la valeur finale de n
System.out.println("\nValeur de n = " + n);
// Fermer le scanner
sc.close();
}
}
Sortie:
Saisir la valeur de n: 11
Valeur de n = 1
Exercice 4:
Écrire un programme Java pour compter le nombre d'éléments pairs et impairs dans un tableau d'entiers.
Exemple:
Tab: [1, 3, 5, 4, 2]
Nombre d'éléments pairs: 2
Nombre d'éléments impairs: 3
Solution:
import java.util.*;
public class Main {
public static void main(String[] args) {
int[] tab = {1, 3, 5, 4, 2};
// Initialisation des compteurs pour les nombres pairs
// et impairs
int c_pair = 0, c_impair = 0;
System.out.println("Tab: "+ Arrays.toString(tab));
// Parcourir le tableau pour compter les nombres pairs
// et impairs
for (int i = 0; i < tab.length; i++) {
if (tab[i] % 2 == 0) {
// Incrémenter le compteur pour les nombres pairs
c_pair++;
} else {
// Incrémenter le compteur pour les nombres impairs
c_impair++;
}
}
System.out.printf("\nNombre d'éléments pairs: %d", c_pair);
System.out.printf("\nNombre d'éléments impairs: %d", c_impair);
}
}
Sortie:
Tab: [1, 3, 5, 4, 2]
Nombre d'éléments pairs: 2
Nombre d'éléments impairs: 3
Exercice 5:
Ecrivez un programme Java pour tester si un tableau d'entiers contient un élément 20 à côté de 20 ou un élément 80 à côté de 80, mais pas les deux.
Exemple:
Tab: [20, 20, 50, 60, 80, 80]
false
Solution:
import java.util.*;
public class Main {
public static void main(String[] args) {
int[] tab = {20, 20, 50, 60, 80, 80};
System.out.println("Tab: "+ Arrays.toString(tab));
// Initialiser des variables booléennes pour vérifier la
// présence de caractéristiques spécifiques
boolean exist2020 = false;
boolean exist8080 = false;
// Parcourir le tableau pour trouver(par exemple, 2020 et
// 8080).
for (int i = 0; i < tab.length - 1; i++) {
if (tab[i] == 20 && tab[i + 1] == 20) {
exist2020 = true;
}
if (tab[i] == 80 && tab[i + 1] == 80) {
exist8080 = true;
}
}
// Vérifier si les motifs 2020 et 8080 ont été trouvés et
// afficher le résultat.
System.out.printf(String.valueOf(exist2020 != exist8080));
}
}
Sortie:
Tab: [20, 20, 50, 60, 80, 80]
false
Exercice 6:
Écrire un programme Java pour réorganiser tous les éléments d'un tableau d'entiers de sorte que tous les nombres impairs précèdent tous les nombres pairs.
import java.util.*;
public class Main {
public static void main(String[] args) {
int[] tab = {1, 5, 9, 3, 5, 6, 0, 8, 4, 2};
// Initialiser une variable d'index pour suivre les nombres
// pairs
int i = 0;
// Afficher le tableau original
System.out.println("Tab: "+ Arrays.toString(tab));
// Trouver l'index du premier nombre impair (i)
while (i < tab.length && tab[i] % 2 == 0)
i++;
// Réorganiser le tableau de manière à ce que les nombres
// impairs viennent après les nombres pairs.
for (int j = i + 1; j < tab.length; j++) {
if (tab[j] % 2 != 0) {
// Echanger les nombres pairs et impairs
int temp = tab[i];
tab[i] = tab[j];
tab[j] = temp;
i++;
}
}
// Afficher le tableau modifié
System.out.println("Résultat: "+ Arrays.toString(tab));
}
}
Ecrivez un programme Java pour créer un tableau (longueur 0) de valeurs de chaînes de caractères. Les éléments contiendront '0', '1', '2' jusqu'à '5'.
Exemple:
Résultat: [0, 1, 2, 3, 4, 5]
Solution:
import java.util.*;
public class Main {
public static void main(String[] args) {
// Définir le nombre d'éléments du tableau
int n = 6;
// Créer un tableau de chaînes de caractères à n éléments
String[] str = new String[n];
// Initialiser le tableau avec des nombres sous forme de
// chaînes de caractères
for (int i = 0; i < n; i++) {
str[i] = String.valueOf(i);
}
// Afficher le résultat
System.out.println("Résultat: " + Arrays.toString(str));
}
}
Sortie:
Résultat: [0, 1, 2, 3, 4, 5]
Exercice 8:
Ecrivez un programme Java pour vérifier s'il y a un 10 dans un tableau d'entiers avec un 20 quelque part plus tard.
import java.util.*;
public class Main {
public static void main(String[] args) {
int[] tab = {10, 50, 30, 70, 20, 80, 90};
// Initialiser une variable booléenne pour le test
boolean drapeau = false;
// Initialiser une variable de résultat pour suivre
// l'évolution de la situation
int result = 0;
// Parcourir le tableau
for (int i = 0; i < tab.length; i++) {
if (tab[i] == 10)
// Activez le drapeau booléen lorsque 10 est trouvé
// dans le tableau.
drapeau = true;
// Vérifier si 10 et 20 se trouvent dans le tableau avec
// des conditions spécifiques
if (drapeau && tab[i] == 20) {
// Afficher true si 10 et 20 sont trouvés
System.out.printf(String.valueOf(true));
result = 1; // Fixer le résultat à 1
}
}
// Si le résultat est toujours 0, cela signifie que 20 n'a
// pas suivi 10 dans le tableau.
if (result == 0) {
//Afficher false
System.out.printf(String.valueOf(false));
}
}
}
Sortie:
true
Exercice 9:
Écrire un programme Java pour vérifier si un tableau d'entiers contient un nombre 10 l'un à côté de l'autre ou deux nombres (10) identiques séparés par un élément.
import java.util.*;
public class Main {
public static void main(String[] args) {
int[] tab = {10, 30, 10, 40, 60, 90, 70};
// Initialiser une variable de résultat pour suivre
// l'évolution de la situation
int result = 0;
int x = 10; // Définir le nombre à rechercher
// Itérer dans le tableau, en considérant les paires
// d'éléments adjacents
for (int i = 0; i < tab.length - 1; i++) {
if (tab[i] == x && tab[i + 1] == x) {
// Afficher true lorsque des éléments x consécutifs
// sont trouvés
System.out.printf(String.valueOf(true));
result = 1; // Fixer le résultat à 1
}
// Vérifier si l'élément x est suivi d'un autre x avec un
// élément entre les deux
if (i <= tab.length - 3 && tab[i] == x && tab[i + 2] == x) {
// Afficher true si x éléments sont trouvés avec
// un élément entre eux
System.out.printf(String.valueOf(true));
result = 1; // Fixer le résultat à 1
}
}
// Si le résultat est toujours 0, cela signifie que le motif
// spécifique n'a pas été trouvé.
if (result == 0) {
// Afficher false
System.out.printf(String.valueOf(false));
}
}
}