Correction TD4 Les Tableaux, les structures conditionnelles et le tri des éléme

Correction TD4 Les Tableaux, les structures conditionnelles et le tri des éléments du tableau Exercice 1 Algorithme ex1-P1 Const M = 100 Variable T : Tableau [1..M] d’Entier T_min, i_min, i, N : Entier Début Répeter Écrire("Donner la dimension N du Tableau T ") Lire (N) Jusqu’à (N <= M) ET (N > 0) Pour i de 1 à N Faire Écrire(" Donner l’élément T [," i , " ] = ") Lire (T[i]) FinPour T_min T[1] i_min 1 Pour i de 2 à N Faire Si T[i] <= T_min Alors T_min T[i] i_min i FinSi FinPour Écrire("La plus petite valeur du tableau T= ", T_min, " est son indice = ", i_min) Fin Algorithme ex1-P2 Const M = 100 Variable T : Tableau [1..M] d’Entier T_max, i_max, N,i : Entier Début Répeter Écrire("Donner la dimension N du Tableau T ") Lire (N) Jusqu’à (N <= M) ET (N > 0) Pour i de 1 à N Faire Écrire(" Donner l’élément T [," i , " ] = ") Lire (T[i]) FinPour T_max T[1] i_max 1 Pour i de 2 à N Faire Si T[i] > T_min Alors T_max T[i] i_max i FinSi FinPour Écrire("La plus petite valeur du tableau T= ", T_max, " est son indice = ", i_max) Fin Algorithme ex1_P3 Const M = 100 Variable T : Tableau [1..M] d’Entier nb_T_nul, N,i : Entier Début Répeter Écrire("Donner la dimension N du Tableau T ") Lire (N) Jusqu’à (N <= M) ET (N > 0) Pour i de 1 à N Faire Écrire(" Donner l’élément T [," i , " ] = ") Lire (T[i]) Si T[i] = 0 Alors nb_T_nul nb_T_nul + 1 FinSi FinPour Écrire("Le nombre d’éléments nul du tableau T= ", nb_T_nul) Fin Algorithme ex1_P4 Const M = 100 Variable T : Tableau [1..M] d’Entier N,i : Entier T_moy :Réel Début Répeter Écrire("Donner la dimension N du Tableau T ") Lire (N) Jusqu’à (N <= M) ET (N > 0) Pour i de 1 à N Faire Écrire(" Donner l’élément T [," i , " ] = ") Lire (T[i]) T_moyT_moy + T[i] FinPour T_moy T_moy / N Écrire("La moyenne des éléments du tableau T= ", T_moy) Fin Exercie 2 Algorithme ex2_P1 Variable A : Tableau [1..120] de Réel B : Tableau [1..50] de Réel i, N, M : Entier Début Répeter Écrire("Donner la dimension N du Tableau B ") Lire (N) Jusqu’à (N <= 50) ET (N > 0) Pour i de 1 à N Faire Écrire(" Donner l’élément B[," i , " ] = ") Lire (B[i]) FinPour Répeter Écrire("Donner la dimension M du Tableau A ") Lire (M) Jusqu’à (M <= 70) ET (M > 0) Pour i de 1 à M Faire Écrire(" Donner l’élément A[," i , " ] = ") Lire (A[i]) FinPour Pour i de 1 à N Faire A[M+i] B[i] FinPour Fin Algorithme ex2_P2 Variable A : Tableau [1..120] de Réel B : Tableau [1..50] de Réel j, i, N, M : Entier Début. Répeter Écrire("Donner la dimension N du Tableau B ") Lire (N) Jusqu’à (N <= 50) ET (N > 0) Pour i de 1 à N Faire Écrire(" Donner l’élément B[," i , " ] = ") Lire (B[i]) FinPour Répeter Écrire("Donner la dimension M du Tableau A ") Lire (M) Jusqu’à (M <= 70) ET (M > 0) Pour i de 1 à M Faire Écrire(" Donner l’élément A[," i , " ] = ") Lire (A[i]) FinPour i M j 1 TantQue j <= N Faire Si B[j] >= 0 Alors i i+1 A[i] B[j] FinSi j j+1 FinTantQue Fin Algorithme ex2_P3 Variable A : Tableau [1..120] de Réel B : Tableau [1..50] de Réel i, N, M : Entier Début. Répeter Écrire("Donner la dimension N du Tableau B ") Lire (N) Jusqu’à (N <= 50) ET (N > 0) Pour i de 1 à N Faire Écrire(" Donner l’élément B[," i , " ] = ") Lire (B[i]) FinPour Répeter Écrire("Donner la dimension M du Tableau A ") Lire (M) Jusqu’à (M <= 70) ET (M > 0) Pour i de 1 à M Faire Écrire(" Donner l’élément A[," i , " ] = ") Lire (A[i]) FinPour Pour i de 2 à N pas 2 Faire A[M+ (i div 2) ] B[i] FinPour Fin Exercie 3 #include <stdio.h> main() { /* Déclarations */ int T[50]; /* tableau donné */ int N; /* dimension */ int I,J; /* indices courants */ int AIDE; /* pour l'échange */ /* Saisie des données */ printf("Dimension du tableau (max.50) : "); scanf("%d", &N ); for (I=0; I<N; I++) { printf("Elément %d : ", I); scanf("%d", &T[I]); } /* Affichage du tableau */ printf("Tableau donné : \n"); for (I=0; I<N; I++) printf("%d ", T[I]); printf("\n"); /* Inverser le tableau */ for (I=0, J=N-1 ; I<J ; I++,J--) /* Echange de T[I] et T[J] */ { AIDE = T[I]; T[I] = T[J]; T[J] = AIDE; } /* Edition des résultats */ printf("Tableau résultat :\n"); for (I=0; I<N; I++) printf("%d ", T[I]); printf("\n"); return 0; } Exercice 4 Explication de l’idée • Vérifier si T est symétrique : – Rappel, T est symétrique si T(i,j) = T(j,i) pour tout i et j • Idée: D’abord supposer que T est symétrique avec S = 1 • Ensuite, comparer chaque case T(i,j) avec la case T(j,i). – Si elles sont différentes alors affecter la valeur 0 à S •A la fin, il suffit de voir la valeur de S pour savoir si le tableau est symétrique ou pas Solution (cas de symétrie dans un tableau multidimensionnel) Exercice 5 Variables Nb, i : Entier Variable Flag : Booleen Tableau T[] :Entier Debut Ecrire ("Entrez le nombre de valeurs :") Lire (Nb) Pour i de 0 à Nb - 1 Ecrire ("Entrez le nombre n° ") Lire T[i] Fin pour Flag ← Vrai Pour i de 1 à Nb - 1 Si (T[i] <> T[i +1]) Alors Flag ← Faux FinSi Fin pour Si Flag Alors Ecrire ("Les nombres sont consécutifs") Sinon Ecrire ("Les nombres ne sont pas consécutifs") FinSi Fin Exercice 6 *Ecrire un algorithme permettant de trier par ordre croissant les éléments d’un tableau. lgorithme tri_Croissant; Var T : tableau [1..100] de réels ; N ,i,j: entiers ; Aux: réel ; Debut Si N=0 alors Ecrire(‘le tableau est vide ‘) ; Sinon Pour i <-- 1 à N-1 Faire Pour j <-- i+1 à N Faire Si T[i] > T[j] alors Aux <-- T[i] ; T[i] <-- T[j] ; T[j] <-- Aux ; Finsi Finpour j Finpour i Finsi Fin *Ecrire un algorithme permettant de trier par ordre décroissant les éléments d’un tableau. Algorithme tri_Décroissant; Var T : tableau [1..100] de réels ; N ,i,j: entiers ; Aux: réel ; Debut Si N=0 alors Ecrire(‘le tableau est vide ‘) ; Sinon Pour i <-- 1 à N-1 Faire Pour j <-- i+1 à N Faire Si T[i] < T[j] alors Aux <-- T[i] ; T[i] <-- T[j] ; T[j] <-- Aux ; Finsi Finpour j Finpour i Finsi Fin  Solution algorithmique de l’exercice (sans trie + fusion) https://waytolearnx.com/2019/08/fusionner-deux-tableaux-en-c.html  Solution algorithmique de l’exercice (avec trie des éléments du Tableau + fusion) Explication de l’exercice corrige Utiliser trois indices IA, IB et IFUS. Comparer A[IA] et B[IB]; remplacer FUS[IFUS] par le plus petit des deux éléments; avancer dans le tableau FUS et dans le tableau qui a contribué son élément. Lorsque l’un des deux tableaux A ou B est épuisé, il suffit de recopier les éléments restants de l’autre tableau dans le tableau FUS. #include <stdio.h> main() { /* Déclarations */ /* Les tableaux et leurs dimensions */ int A[50], B[50], FUS[100]; int N, M; int IA, IB, IFUS; /* indices courants */ /* Saisie des données */ printf("Dimension du tableau A (max.50) : "); scanf("%d", &N ); printf("Entrer les éléments de A dans l'ordre croissant :\n"); for (IA=0; IA<N; IA++) { printf("Elément A[%d] : ", IA); scanf("%d", &A[IA]); } printf("Dimension du tableau B (max.50) : "); scanf("%d", &M ); printf("Entrer les éléments de B dans l'ordre croissant :\n"); for (IB=0; IB<M; IB++) { printf("Elément B[%d] : ", IB); scanf("%d", &B[IB]); } /* Affichage des tableaux A et B */ printf("Tableau A :\n"); for (IA=0; IA<N; IA++) printf("%d ", A[IA]); printf("\n"); printf("Tableau B :\n"); for (IB=0; IB<M; IB++) printf("%d ", B[IB]); printf("\n"); /* Fusion des éléments de A et B dans FUS */ /* de façon à ce que FUS soit aussi trié. */ IA=0; IB=0; IFUS=0; while ((IA<N) && (IB<M)) if(A[IA]<B[IB]) { FUS[IFUS]=A[IA]; IFUS++; IA++; } else { FUS[IFUS]=B[IB]; IFUS++; IB++; } /* Si IA ou IB sont arrivés à la fin de leur tableau, */ /* alors copier le reste de l'autre tableau. */ while (IA<N) { FUS[IFUS]=A[IA]; IFUS++; IA++; } while (IB<M) { FUS[IFUS]=B[IB]; IFUS++; IB++; } /* Affichage du résultat FINAL*/ printf("Tableau FUS :\n"); for (IFUS=0; IFUS<N+M; IFUS++) printf("%d ", FUS[IFUS]); printf("\n"); return 0; } Exercice 7 1. #include<stdio.h> 2. #include<stdlib.h> 3. int main() 4. { 5. int t[100]; 6. int i,j,n,a; 7. printf("Donnez le uploads/Finance/ correction-td4-2021.pdf

  • 19
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Nov 23, 2022
  • Catégorie Business / Finance
  • Langue French
  • Taille du fichier 1.3192MB