adplus-dvertising

Exercices corrigés sur les tableaux en Python, Java et langage C - TD1-

Exercices corrigés sur les tableaux en Python, Java et langage C - TD1-

Un tableau est une structure de données linéaire qui contient une collection séquentielle finie de données homogènes.

Le tableau utilise un index de valeur entière pour accéder à un élément spécifique. L'index commence à 0 et va jusqu'à N-1 (où N est la taille du tableau).

Un tableau est une collection d'éléments stockés dans des emplacements de mémoire continus.

Dans les exercices suivants, nous nous concentrerons sur des tableau à une dimension. Nous vous montrerons comment implémenter et utiliser des tableaux.

Tous les exercices sont résolus en utilisant Python, Java et C

Exercice 1

Écrivez un programme pour déclarer et initialiser un tableau, puis saisissez ses éléments à partir de l'utilisateur et affichez le tableau.

Exemple :
Données d'entrée 
  • Saisir le nombre d'éléments : 5
  • Elément 1 : 3
  • Elément 2 : 7
  • Elément 3 : 4
  • Elément 4 : 9
  • Elément 5 : 8

Données de sortie
  • 3 7 4 9 8
Corrigé
import java.util.Scanner;

public class Test {
    public static void main(String[] variables) {
        Scanner clavier = new Scanner(System.in);

        int N, i;
        int tab[];

        // Saisir la taille actuelle du tableau */
        System.out.print("Saisir le nombre d'éléments : ");
        N = clavier.nextInt();

        // intialiser la taille du tableau tab avec N
        tab = new int[N];

        // Saisir les éléments du tableau tab */

        for (i = 0; i < N; i++) {
            System.out.print("Elément " + (i + 1) + " : ");
            tab[i] = clavier.nextInt();
        }

        // afficher les éléments du tableau tab
        for (i = 0; i < N; i++) {
            System.out.print(tab[i] + ", ");
        }

        // fermer les ressources
        clavier.close();
    }
}

                                        
#include <stdio.h>
#define TAILLE_MAX 1000 // La taille maximale

int main()
{
    int tab[TAILLE_MAX]; // Déclarer un tableau de taille TAILLE_MAX
    int i, N;

    /* Saisir la taille actuelle du tableau  <  TAILLE_MAX */
    printf("Saisir le nombre d'éléments : ");
    scanf("%d", &N);

    /* Saisir les éléments du tableau tab */

    for(i=0; i<N; i++)
    {
        printf("Elément %d", i+1);
        scanf("%d", &tab[i]);
    }


    /*
     * afficher les éléments du tableau tab
     */
    for(i=0; i<N; i++)
    {
        printf("%d, ", tab[i]);
    }

    return 0;
}
                                        
# Saisir la taille actuelle du tableau
N = int(input("Saisir le nombre d'éléments : "))

# intialiser la taille de tableau avec N
tab=[0]*N;

# Saisir les éléments du tableau source
for i in range(N):
    tab[i]=int(input("Saisir l'élement {0} : ".format(i+1)))

# afficher les éléments du tableau tab
for i in range(N):
    print(tab[i],end=', ')
                                        

Exercice 2

Écrivez un programme pour déclarer un tableau, puis saisissez ses éléments par l'utilisateur et affichez tous les éléments négatifs.

Exemple :
Données d'entrée 
  • Saisir le nombre d'éléments : 5
  • Elément 1 : 3
  • Elément 2 : -7
  • Elément 3 : 4
  • Elément 4 : -9
  • Elément 5 : 8

Données de sortie
  • -7 , -9
Corrigé
import java.util.Scanner;

public class Test {
    public static void main(String[] variables) {
        Scanner clavier = new Scanner(System.in);

        int N, i;
        int tab[];

        // Saisir la taille actuelle du tableau */
        System.out.print("Saisir le nombre d'éléments : ");
        N = clavier.nextInt();

        // intialiser la taille du tableau tab avec N
        tab = new int[N];

        // Saisir les éléments du tableau tab */

        for (i = 0; i < N; i++) {
            System.out.print("Elément " + (i + 1) + " : ");
            tab[i] = clavier.nextInt();
        }

        System.out.println("\nLes éléments négatifs du tableau sont : ");
        for (i = 0; i < N; i++) {
            // Si l'élément de tableau actuel est négatif */
            if (tab[i] < 0) {
                System.out.print(tab[i] + ", ");
            }
        }

        // fermer les ressources
        clavier.close();
    }
}

                                        
#include <stdio.h>

#define TAILLE_MAX 1000 // La taille maximale

int main()
{
    int tab[TAILLE_MAX]; // Déclarer un tableau de taille TAILLE_MAX
    int i, N;

    /* Saisir la taille actuelle du tableau  <  TAILLE_MAX */
    printf("Saisir le nombre d'éléments : ");
    scanf("%d", &N);

    /* Saisir les éléments du tableau tab */

    for(i=0; i<N; i++)
    {
        printf("Elément %d", i+1);
        scanf("%d", &tab[i]);
    }

    printf("\nLes éléments négatifs du tableau sont : ");
    for(i=0; i<N; i++)
    {
        /* Si l'élément de tableau actuel est négatif */
        if(tab[i] < 0)
        {
            printf("%d\t", tab[i]);
        }
    }

    return 0;
}
                                        
# Saisir la taille actuelle du tableau
N = int(input("Saisir le nombre d'éléments : "))

# intialiser la taille de tableau avec N
tab=[0]*N;

# Saisir les éléments du tableau source
for i in range(N):
    tab[i]=int(input("Saisir l'élement {0} : ".format(i+1)))

print("Les éléments négatifs du tableau sont : ")
for i in range(N):
    # Si l'élément de tableau actuel est négatif */
    if (tab[i] < 0):
        print(tab[i],end=", ")
                                        

Exercice 3

Écrire un programme pour déclarer un tableau, puis saisir ses éléments à partir de l'utilisateur et trouver la somme des éléments du tableau

Exemple :
Données d'entrée 
  • Saisir le nombre d'éléments : 5
  • Elément 1 : 3
  • Elément 2 : 7
  • Elément 3 : 4
  • Elément 4 : 9
  • Elément 5 : 8

Données de sortie
  • la somme = 31
Corrigé
import java.util.Scanner;

public class Test {
    public static void main(String[] variables) {
        Scanner clavier = new Scanner(System.in);

        int N, i, somme = 0;
        int tab[];

        // Saisir la taille actuelle du tableau */
        System.out.print("Saisir le nombre d'éléments : ");
        N = clavier.nextInt();

        // intialiser la taille du tableau tab avec N
        tab = new int[N];

        // Saisir les éléments du tableau tab */

        for (i = 0; i < N; i++) {
            System.out.print("Elément " + (i + 1) + " : ");
            tab[i] = clavier.nextInt();
        }

        // Ajouter chaque élément du tableau à somme
        for (i = 0; i < N; i++) {
            somme = somme + tab[i];
        }

        System.out.println("Somme de tous les éléments du tableau = " + somme);

        // fermer les ressources
        clavier.close();
    }
}

                                        
#include <stdio.h>
#define TAILLE_MAX 1000 // La taille maximale

int main()
{
    int tab[TAILLE_MAX];
    int i, N, somme=0;

    /* Saisir la taille actuelle du tableau  <  TAILLE_MAX */
    printf("Saisir le nombre d'éléments : ");
    scanf("%d", &N);

    /* Saisir les éléments du tableau tab */

    for(i=0; i<N; i++)
    {
        printf("Elément %d", i+1);
        scanf("%d", &tab[i]);
    }

    /*
     * Ajouter chaque élément du tableau à somme
     */
    for(i=0; i<N; i++)
    {
        somme = somme + tab[i];
    }


    printf("Somme de tous les éléments du tableau = %d", somme);

    return 0;
}
                                        
# Saisir la taille actuelle du tableau
N = int(input("Saisir le nombre d'éléments : "))

# intialiser la taille de tableau avec N
tab=[0]*N;

# Saisir les éléments du tableau source
for i in range(N):
    tab[i]=int(input("Saisir l'élement {0} : ".format(i+1)))

# Ajouter chaque élément du tableau à somme
somme=0
for i in range(N):
    somme = somme + tab[i]

print("Somme de tous les éléments du tableau = ",somme)
    
                                        

Exercice 4

Écrire un programme pour déclarer un tableau, puis saisir ses éléments à partir de l'utilisateur et rechercher les éléments maximum et minimum dans le tableau

Exemple :
Données d'entrée 
  • Saisir le nombre d'éléments : 5
  • Elément 1 : 3
  • Elément 2 : 7
  • Elément 3 : 4
  • Elément 4 : 9
  • Elément 5 : 8

Données de sortie
  • Maximum = 9
  • Minimum = 3
Corrigé
import java.util.Scanner;

public class Test {
    public static void main(String[] variables) {
        Scanner clavier = new Scanner(System.in);

        int N, i, max, min;
        int tab[];

        // Saisir la taille actuelle du tableau */
        System.out.print("Saisir le nombre d'éléments : ");
        N = clavier.nextInt();

        // intialiser la taille du tableau tab avec N
        tab = new int[N];

        // Saisir les éléments du tableau tab */
        for (i = 0; i < N; i++) {
            System.out.print("Elément " + (i + 1) + " : ");
            tab[i] = clavier.nextInt();
        }

        // Supposons le premier élément comme maximum et minimum */
        max = tab[0];
        min = tab[0];

        /*
          Trouvez le maximum et le minimum dans tous les éléments du tableau.
         */
        for (i = 1; i < N; i++) {
            // Si l'élément actuel est supérieur à max */
            if (tab[i] > max) {
                max = tab[i];
            }

            // Si l'élément actuel est inférieur à min */
            if (tab[i] < min) {
                min = tab[i];
            }
        }

        System.out.println("Maximum = " + max);
        System.out.println("Minimum = " + min);

        // fermer les ressources
        clavier.close();
    }
}

                                        
#include <stdio.h>

#define TAILLE_MAX 1000 // La taille maximale

int main()
{
    int tab[TAILLE_MAX];
    int i, max, min, N;

    /* Saisir la taille actuelle du tableau  <  TAILLE_MAX */
    printf("Saisir le nombre d'éléments : ");
    scanf("%d", &N);

    /* Saisir les éléments du tableau tab */

    for(i=0; i<N; i++)
    {
        printf("Elément %d", i+1);
        scanf("%d", &tab[i]);
    }


    /* Supposons le premier élément comme maximum et minimum */
    max = tab[0];
    min = tab[0];

    /*
     * Trouvez le maximum et le minimum dans tous les éléments du tableau.
     */
    for(i=1; i<N; i++)
    {
        /* Si l'élément actuel est supérieur à max */
        if(tab[i] > max)
        {
            max = tab[i];
        }

        /* Si l'élément actuel est inférieur à min */
        if(tab[i] < min)
        {
            min = tab[i];
        }
    }

    printf("Maximum = %d\n", max);
    printf("Minimum = %d", min);

    return 0;
}
                                        
# Saisir la taille actuelle du tableau
N = int(input("Saisir le nombre d'éléments : "))

# intialiser la taille de tableau avec N
tab=[0]*N;

# Saisir les éléments du tableau source
for i in range(N):
    tab[i]=int(input("Saisir l'élement {0} : ".format(i+1)))


# Supposons le premier élément comme maximum et minimum */
max = tab[0]
min = tab[0]

# Ajouter chaque élément du tableau à somme
somme=0
for i in range(N):
    # Si l'élément actuel est supérieur à max */
    if (tab[i] > max):
        max = tab[i]

    # Si l'élément actuel est inférieur à min */
    if (tab[i] < min):
        min = tab[i]

print("Maximum = ",max)
print("Minimum = ",min)
                                        

Exercice 5

Écrivez un programme pour déclarer un tableau, puis saisissez ses éléments à partir de l'utilisateur et recherchez l'élément le plus grand et le deuxième dans ce tableau

Exemple :
Données d'entrée 
  • Saisir le nombre d'éléments : 5
  • Elément 1 : 3
  • Elément 2 : 7
  • Elément 3 : 4
  • Elément 4 : 9
  • Elément 5 : 8

Données de sortie
  • Premier plus grand : 9
  • Deuxième plus grand : 8
Corrigé
import java.util.Scanner;

public class Test {
    public static void main(String[] variables) {
        Scanner clavier = new Scanner(System.in);

        int N, i, max1, max2;
        int tab[];

        // Saisir la taille actuelle du tableau */
        System.out.print("Saisir le nombre d'éléments : ");
        N = clavier.nextInt();

        // intialiser la taille du tableau tab avec N
        tab = new int[N];

        // Saisir les éléments du tableau tab */
        for (i = 0; i < N; i++) {
            System.out.print("Elément " + (i + 1) + " : ");
            tab[i] = clavier.nextInt();
        }

        max1 = max2 = tab[0];

        // Vérifier le premier plus grand et le deuxième
        for (i = 0; i < N; i++) {
            if (tab[i] > max1) {
                /*
                  Si l'élément actuel du tableau est le premier plus grand alors rendre le
                  courant max comme deuxième max puis max comme élément de tableau actuel
                 */
                max2 = max1;
                max1 = tab[i];
            } else if (tab[i] > max2 && tab[i] < max1) {
                /*
                  Si l'élément de tableau actuel est inférieur au premier plus grand mais est
                  plus grand que le deuxième plus grand alors faites-le deuxième plus grand
                 */
                max2 = tab[i];
            }
        }

        System.out.println("Premier plus grand = " + max1);
        System.out.println("Deuxième plus grand =" + max2);

        // fermer les ressources
        clavier.close();
    }
}

                                        
#include <stdio.h>

#define TAILLE_MAX 1000 // La taille maximale

int main()
{
    int tab[TAILLE_MAX], N, i;
    int max1, max2;

    /* Saisir la taille actuelle du tableau  <  TAILLE_MAX */
    printf("Saisir le nombre d'éléments : ");
    scanf("%d", &N);

    /* Saisir les éléments du tableau tab */

    for(i=0; i<N; i++)
    {
        printf("Elément %d", i+1);
        scanf("%d", &tab[i]);
    }

    max1 = max2 = tab[0];


    /*
     * Vérifier le premier plus grand et le deuxième
     */
    for(i=0; i<N; i++)
    {
        if(tab[i] > max1)
        {
            /*
             * Si l'élément actuel du tableau est le premier plus grand
             * alors rendre le courant max comme deuxième max
             * puis max comme élément de tableau actuel
             */
            max2 = max1;
            max1 = tab[i];
        }
        else if(tab[i] > max2 && tab[i] < max1)
        {
            /*
             * Si l'élément de tableau actuel est inférieur au premier plus grand
             * mais est plus grand que le deuxième plus grand alors faites-le
             * deuxième plus grand
             */
            max2 = tab[i];
        }
    }

    printf("Premier plus grand = %d\n", max1);
    printf("Deuxième plus grand = %d", max2);

    return 0;
}
                                        
# Saisir la taille actuelle du tableau
N = int(input("Saisir le nombre d'éléments : "))

# intialiser la taille de tableau avec N
tab=[0]*N

# Saisir les éléments du tableau source
for i in range(N):
    tab[i]=int(input("Saisir l'élement {0} : ".format(i+1)))


# Supposons le premier et deuxième plus grand = premier élément du tableau */
max1 = max2 = tab[0]

for i in range(N):
    if (tab[i] > max1):
        #Si l'élément actuel du tableau est le premier plus grand alors rendre le
        #courant max comme deuxième max puis max comme élément de tableau actuel
        max2 = max1
        max1 = tab[i]
    elif (tab[i] > max2 and tab[i] < max1):
        #Si l'élément de tableau actuel est inférieur au premier plus grand mais est
        #plus grand que le deuxième plus grand alors faites-le deuxième plus grand
        max2 = tab[i]

print("Premier plus grand = " , max1)
print("Deuxième plus grand =" , max2)
                                        

Exercice 6

Écrivez un programme pour déclarer un tableau, puis saisissez ses éléments à partir de l'utilisateur et comptez le nombre d'éléments pairs et impairs dans ce tableau

Exemple :
Données d'entrée 
  • Saisir le nombre d'éléments : 5
  • Elément 1 : 3
  • Elément 2 : 7
  • Elément 3 : 4
  • Elément 4 : 9
  • Elément 5 : 8

Données de sortie
  • Nombre d'éléments pairs : 2
  • Nombre d'éléments impairs : 3
Corrigé
import java.util.Scanner;

public class Test {
    public static void main(String[] variables) {
        Scanner clavier = new Scanner(System.in);

        int N, i, pair, impair;
        int tab[];

        // Saisir la taille actuelle du tableau */
        System.out.print("Saisir le nombre d'éléments : ");
        N = clavier.nextInt();

        // intialiser la taille du tableau tab avec N
        tab = new int[N];

        // Saisir les éléments du tableau tab */
        for (i = 0; i < N; i++) {
            System.out.print("Elément " + (i + 1) + " : ");
            tab[i] = clavier.nextInt();
        }

        // En supposant qu'il y a 0 éléments pairs et impairs
        pair = 0;
        impair = 0;

        for (i = 0; i < N; i++) {
            // Si l'élément courant du tableau est pair, incrémenter le nombre pair
            if (tab[i] % 2 == 0) {
                pair++;
            } else {
                impair++;
            }
        }

        System.out.println("Total des éléments pairs: " + pair);
        System.out.println("Total des éléments impairs : " + impair);

        // fermer les ressources
        clavier.close();
    }
}

                                        
#include <stdio.h>

#define TAILLE_MAX 1000 // La taille maximale

int main()
{
    int tab[TAILLE_MAX];
    int i, N, pair, impair;

    /* Saisir la taille actuelle du tableau  <  TAILLE_MAX */
    printf("Saisir le nombre d'éléments : ");
    scanf("%d", &N);

    /* Saisir les éléments du tableau tab */

    for(i=0; i<N; i++)
    {
        printf("Elément %d", i+1);
        scanf("%d", &tab[i]);
    }

    /* En supposant qu'il y a 0 éléments pairs et impairs */
    pair = 0;
    impair  = 0;

    for(i=0; i<N; i++)
    {
        /* Si l'élément courant du tableau est pair, incrémenter le nombre pair */
        if(tab[i]%2 == 0)
        {
            pair++;
        }
        else
        {
            impair++;
        }
    }

    printf("Total des éléments pairs: %d\n", pair);
    printf("Total des éléments impairs : %d", impair);

    return 0;
}
                                        
# Saisir la taille actuelle du tableau
N = int(input("Saisir le nombre d'éléments : "))

# intialiser la taille de tableau avec N
tab=[0]*N

# Saisir les éléments du tableau source
for i in range(N):
    tab[i]=int(input("Saisir l'élement {0} : ".format(i+1)))


# En supposant qu'il y a 0 éléments pairs et impairs
pair = 0
impair = 0

for i in range(N):
    # Si l'élément courant du tableau est pair, incrémenter le nombre pair
    if (tab[i] % 2 == 0):
        pair+=1
    else:
        impair+=1

print("Total des éléments pairs: ",pair)
print("Total des éléments impairs : " ,impair)
                                        

Exercice 7

Écrivez un programme pour déclarer deux tableaux, puis entrez les éléments du premier tableau de l'utilisateur et copiez tous ses éléments dans le deuxième tableau

Exemple :
Données d'entrée 
  • Saisir le nombre d'éléments : 5
  • Elément 1 : 3
  • Elément 2 : 7
  • Elément 3 : 4
  • Elément 4 : 9
  • Elément 5 : 8

Données de sortie
  • Les éléments du tableau source sont : 3, 7, 4, 9, 8
  • Les éléments du tableau dest sont : 3, 7, 4, 9, 8
Corrigé
import java.util.Scanner;

public class Test {
    public static void main(String[] variables) {
        Scanner clavier = new Scanner(System.in);

        int N, i;
        int source[], dest[];

        // Saisir la taille actuelle du tableau */
        System.out.print("Saisir le nombre d'éléments : ");
        N = clavier.nextInt();

        // intialiser la taille des tableaux avec N
        source = new int[N];
        dest = new int[N];

        // Saisir les éléments du tableau source */
        for (i = 0; i < N; i++) {
            System.out.print("Elément " + (i + 1) + " : ");
            source[i] = clavier.nextInt();
        }

        /*
          Copier tous les éléments du tableau source vers le tableau dest
         */
        for (i = 0; i < N; i++) {
            dest[i] = source[i];
        }

        /*
          Afficher tous les éléments du tableau source
         */
        System.out.println("\nLes éléments du tableau source sont : ");
        for (i = 0; i < N; i++) {
            System.out.print(source[i] + ", ");
        }

        System.out.println();
        /*
          Afficher tous les éléments du tableau dest
         */
        System.out.println("\nLes éléments du tableau dest sont : ");
        for (i = 0; i < N; i++) {
            System.out.print(dest[i] + ", ");
        }

        // fermer les ressources
        clavier.close();
    }
}

                                        
#include <stdio.h>
#define TAILLE_MAX 100

int main()
{
    int source[TAILLE_MAX], dest[TAILLE_MAX];
    int i, N;

    /* Saisir la taille actuelle du tableau  <  TAILLE_MAX */
    printf("Saisir le nombre d'éléments : ");
    scanf("%d", &N);

    /* Saisir les éléments du tableau tab */

    for(i=0; i<N; i++)
    {
        printf("Elément %d", i+1);
        scanf("%d", &tab[i]);
    }

    /*
     * Copier tous les éléments du tableau source vers le tableau dest
     */
    for(i=0; i<N; i++)
    {
        dest[i] = source[i];
    }

    /* 
     * Afficher tous les éléments du tableau source
     */
    printf("\nLes éléments du tableau source sont : ");
    for(i=0; i<N; i++)
    {
        printf("%d\t", source[i]);
    }

    /*
     * Afficher tous les éléments du tableau source
     */
    printf("\nLes éléments du tableau dest sont : ");
    for(i=0; i<N; i++)
    {
        printf("%d\t", dest[i]);
    }

    return 0;
}
                                        
# Saisir la taille actuelle du tableau
N = int(input("Saisir le nombre d'éléments : "))

# intialiser la taille des tableaux avec N
source=[0]*N
dest=[0]*N

# Saisir les éléments du tableau source
for i in range(N):
    source[i]=int(input("Saisir l'élement {0} : ".format(i+1)))


#Copier tous les éléments du tableau source vers le tableau dest

for i in range(N):
    dest[i] = source[i]

#Afficher tous les éléments du tableau source
print("Les éléments du tableau source sont : ")
for i in range(N):
    print(source[i], end=", ")

print()
#Afficher tous les éléments du tableau dest
print("Les éléments du tableau dest sont : ")
for i in range(N):
    print(dest[i], end=", ")
                                        

Partager ce cours avec tes amis :
Rédigé par ESSADDOUKI Mostafa
ESSADDOUKI
The education of the 21st century opens up opportunities to not merely teach, but to coach, mentor, nurture and inspire.