Correction TP N° 5 Exercice 1 #include <stdio.h> main() { /* Déclarations */ in

Correction TP N° 5 Exercice 1 #include <stdio.h> main() { /* Déclarations */ int V[10] ; /* déclaration du table int I; /* indices courants */ /* Saisie des données */ for (I=0; I<10; I++) { printf("Elément[%d]: ",I); scanf("%d", &V[I]); } /* Affichage des entiers positifs */ printf("\n"); for (I=0; I<10; I++) {if(V[I]>=0) printf(" %d |",V[I]);} for (I=0; I<10; I++) {if(V[I]<0) printf(" %d |",V[I]);} return 0; } Exercice 2 #include <stdio.h> main() { /* Déclarations */ int T[50]; /* tableau donné */ int N; /* dimension */ int I,J; /* indices courants */ int AIDE; /* pour l'échange */ int SOM; /* somme des éléments */ int PMIN, PMAX; /* position du minimum et du maximum */ /* 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"); /* Calcul de la somme */ for (SOM=0, I=0; I<N; I++) SOM += T[I]; /* Edition du résultat */ printf("Somme de éléments : %ld\ n", SOM); /* Recherche du maximum et du minimum */ PMIN=0; PMAX=0; for (I=1; I<N; I++) { if(A[I]>A[PMAX]) PMAX=I; if(A[I]<A[PMIN]) PMIN=I; } /* Edition du résultat */ printf("Position du minimum : %d\ n", PMIN); printf("Position du maximum : %d\ n", PMAX); printf("Valeur du minimum : %d\n", A[PMIN]); printf("Valeur du maximum : %d\n", A[PMAX]); /* 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"); /* Initialisation des dimensions de TPOS et TNEG */ NPOS=0; NNEG=0; /* Transfer des données vers TPOS et TNEG */ for (I=0; I<N; I++) { if (T[I]>0) { TPOS[NPOS]=T[I]; NPOS++; } if (T[I]<0) { TNEG[NNEG]=T[I]; NNEG++; } } /* Edition du résultat */ printf("Tableau TPOS :\n"); for (I=0; I<NPOS; I++) printf("%d ", TPOS[I]); printf("\n"); printf("Tableau TNEG :\n"); for (I=0; I<NNEG; I++) printf("%d ", TNEG[I]); return 0; } Exercice 3 #include <stdio.h> main() { /* Déclarations */ int A[50]; /* tableau donné */ int VAL; /* valeur à rechercher */ int N; /* dimension */ int I; /* indice courant */ /* 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", &A[I]); } printf("Elément à rechercher : "); scanf("%d", &VAL ); /* Affichage du tableau */ printf("Tableau donné : \n"); for (I=0; I<N; I++) printf("%d ", A[I]); printf("\n"); /* Recherche de la position de la valeur */ I=0 ; While((I<N)&& (A[I]!=VAL)) I++; /* Edition du résultat */ if (A[I]==VAL) printf("La valeur %d se trouve à la position %d. \n",VAL, I); else printf("La valeur recherchée ne se trouve pas dans le tableau.\n"); return 0; } Exercice 4 #include <stdio.h> main() { /* Déclarations */ /* Les tableaux et leurs dimensions */ int A[50], B[50], C[100]; int N ; int IA, IB, IC; /* indices courants */ /* Saisie des données */ printf("Dimension du tableau A et B (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("Entrer les éléments de B dans l'ordre croissant :\n"); for (IB=0; IB<N; 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<N; IB++) printf("%d ", B[IB]); printf("\n"); /* Fusion des éléments de A et B dans C */ IA=0; IB=0; IC=0; while ((IA<N) && (IB<M)) if(A[IA]<B[IB]) { C[C]=A[IA]; IC++; IA++; } else { C[IC]=B[IB]; IC++; IB++; } /* Si IA ou IB sont arrivés à la fin de leur tableau, */ /* alors copier le reste de l'autre tableau. */ while (IA<N) { C[IC]=A[IA]; IC++; IA++; } while (IB<M) { C[IC]=B[IB]; IC++; IB++; } /* Edition du résultat */ printf("Tableau C :\n"); for (IC=0; IC<2*N; IC++) printf("%d ", C[IC]); printf("\n"); return 0; } Exercice 5 #include <stdio.h> main() { /* Déclarations */ int M[50][50]; /* matrice carrée */ int L, C; /* dimensions de la matrice */ int I, J; /* indices courants */ int S = 0 ; /* Saisie des données */ printf("Dimensions de la matrice L et C (max.50) : "); scanf("%d%d", &L,&C); for (I=0; I<L; I++) for (J=0; J<C; J++) { printf("Elément[%d][%d] : ",I,J); scanf("%d", &M[I][J]); S += M[I][J] ; } /* Affichage de la matrice */ printf("Matrice donnée :\n"); for (I=0; I<L; I++) { for (J=0; J<C; J++) printf("%d ", M[I][J]); printf("\n"); } /* Affichage de la somme de la matrice */ printf("\n La somme de la matrice est %d ",S); } return 0; } Exercice 6 #include <stdio.h> main() { /* Déclarations */ int U[50], V[50]; /* tableaux donnés */ int N; /* dimension */ int I; /* indice courant */ long PS; /* produit scalaire */ /* Saisie des données */ printf("Dimension des tableaux (max.50) : "); scanf("%d", &N ); printf("** Premier tableau **\n"); for (I=0; I<N; I++) { printf("Elément %d : ", I); scanf("%d", &U[I]); } printf("** Deuxième tableau **\ n"); for (I=0; I<N; I++) { printf("Elément %d : ", I); scanf("%d", &V[I]); } /* Calcul du produit scalaire */ for (PS=0, I=0; I<N; I++) PS += (long)U[I]*V[I]; /* Edition du résultat */ printf("Produit scalaire : %ld\n", PS); return 0; } Exercice 7 #include <stdio.h> main() { /* Déclarations */ int M[10][10]; /* déclaration de la matrice */ int V[100] ; /* déclaration du tableau */ int L, C; /* dimensions de la matrice */ int I, J, k; /* indices courants */ /* Saisie des données */ printf("Dimensions de la matrice L et C (max.50) : "); scanf("%d%d", &L,&C); k = 0 ; for (I=0; I<L; I++) for (J=0; J<C; J++) { printf("Elément[%d][%d] : ",I,J); scanf("%d", &M[I][J]); V[k] = M[I][J] ; K++ ; } /* Affichage du vecteur */ printf("Vecteur résultat :\n"); for (I=0; I<L*C; I++) printf(" %d ",V[I]); return 0; } Exercice 8 #include <stdio.h> main() { /* Déclarations */ int M[10][10]; /* matrice carrée */ int N; /* dimension de la matrice carrée */ int I, J; /* indices courants */ int x , Nbocc = 0; /* entier à saisir et nombre d’occurrence */ /* Saisie des données */ printf("Dimension de la matrice carrée (max.10) : "); scanf("%d", &N); for (I=0; I<N; I++) for (J=0; J<N; J++) { printf("Elément[%d][%d] : ",I,J); scanf("%d", &M[I][J]); } /* Donner l’entier à rechercher */ printf("Donner un entier : "); scanf("%d", &x); /* Compter le nombre d’occurrence */ for (I=0; I<N; I++) { for (J=0; J<N; J++) if(M[I][J]==x) Nbocc ++ ; } /* Affichage du résultat */ printf("\n Le nombre d’occurrence de %d est %d ", x, Nbocc); return 0; } Exercice 9 #include <stdio.h> main() { /* Déclarations */ int A[50]; /* tableau donné */ int N; /* dimension */ int I; /* rang à partir duquel A n'est pas trié */ int J; /* indice courant */ int AIDE; /* pour la permutation */ int PMAX; /* indique la position de l'élément */ /* maximal à droite de A[I] */ /* Saisie des données */ printf("Dimension du tableau (max.50) : "); scanf("%d", &N ); for (J=0; J<N; J++) { printf("Elément %d : ", J); scanf("%d", &A[J]); } /* Affichage du tableau */ printf("Tableau donné :\n"); for (J=0; J<N; J++) printf("%d ", A[J]); printf("\n"); /* Tri du tableau par sélection directe du maximum. */ for (I=0; I<N-1; I++) { /* Recherche du maximum à droite de A[I] */ PMAX=I; for (J=I+1; J<N; J++) if (A[J]>A[PMAX]) PMAX=J; /* Echange de A[I] avec le maximum */ AIDE=A[I]; A[I]=A[PMAX]; A[PMAX]=AIDE; } /* Edition du résultat */ printf("Tableau trié :\n"); for (J=0; J<N; J++) printf("%d ", A[J]); printf("\n"); return 0; } Exercice 10 #include <stdio.h> main() { /* Déclarations */ int T[50]; /* tableau donné */ int N; /* dimension */ int I,J; /* indices courants */ int MIN, MAX; /* minimum et maximum */ int choix ; /* choix du traitement à effectuer */ int VAL,X ; /* valeur à rechercher et valeur à supprimer */ int Y ; /* valeur à choisir pour continuer le traitement */ /* 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 Menu */ Do{ Printf("\n\n ******** MENU ***************") ; Printf("\n 1 : Affichage du tableau ") ; Printf("\n 2 : Rechercher l’élément minimum") ; Printf("\n 3 : Rechercher l’élément maximum") ; Printf("\n 4 : Rechercher un élément ") ; Printf("\n 5 : Supprimer un élément") ; Printf("\n 6 : Quitter le programme") ; Printf("\n Choisissez le traitement à effectuer : ") ; Scanf("%d",&choix) ; Switch(choix) { case 1: /* Affichage du tableau */ printf("Tableau donné : \n"); for (I=0; I<N; I++) printf("%d ", T[I]); printf("\n"); break; Case 2: /*recherche du maximum uploads/Science et Technologie/ correction-tp-programmation-c.pdf

  • 40
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager