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