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.
- 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.
- 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
- 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
- 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
- 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
- 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
- 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=", ")
