Exercice Java Corrigé pour Débutant | Partie 8

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.

Exemple:

Tab1: [2, 1, -3, 3]

Tab2: [3, 2, -3, -2]

Résultat: 6 2 9 -6
Solution:

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);     
    }
}

Sortie:

Tab1: [2, 1, -3, 3]

Tab2: [3, 2, -3, -2]

Résultat: 6 2 9 -6 
 

Exercice 2:

É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.

Exemple:

Tab: [1, 5, 9, 3, 5, 6, 0, 8, 4, 2]
Résultat: [5, 9, 3, 5, 1, 6, 0, 8, 4, 2]
Solution:

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));
    }
}

Sortie:

Tab: [1, 5, 9, 3, 5, 6, 0, 8, 4, 2]
Résultat: [5, 9, 3, 5, 1, 6, 0, 8, 4, 2]
 

Exercice 7:

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.

Exemple:

{10, 50, 30, 70, 20, 80, 90} -> True
{10, 50, 30, 70, 40, 80, 90} -> False
Solution:

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.

Exemple:

{10, 30, 10, 40, 60, 90, 70} -> True
{10, 30, 20, 40, 60, 90, 70} -> False
Solution:

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)); 
        }
    }
}

Sortie:

true
 

Éditeur de code Java: Testez votre code en ligne!


QCM-Java

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *