Académique Documents
Professionnel Documents
Culture Documents
(EXERCICES/SOLUTIONS)
Master SEIB
2018-2019
Azzedine DLIOU
ENSA Agadir
Université Ibn Zohr
TABLEAU À UNE
DIMENSION
EXERCICE 1
Écrire un programme qui lit la dimension N d'un
tableau T du type int, la dimension maximale ne
doit pas dépasser 20 composantes, puis :
1. Remplit le tableau par des valeurs entrées au
clavier et affiche le carré des valeurs saisies dans
le tableau;
2. Calcule et affiche la moyenne des éléments du
tableau;
3. Détermine le plus petit élément et le deuxième
plus petit élément du tableau ainsi que leurs
indices;
4. Calcule le plus grand écart existant dans le
tableau;
5. Teste si un tableau est trié;
EXERCICE 1
6. Range les éléments du tableau T dans l'ordre
inverse sans utiliser de tableau d'aide, puis
affiche le tableau résultant;
7. Effectue un double décalage à gauche des
éléments du tableau;
8. Déclare un deuxième tableau dans lequel il
recopie toutes les valeurs impaires existantes
dans le premier tableau et complet le deuxième
tableau par des zéros;
9. Efface toutes les occurrences de valeur nulle
saisie par l'utilisateur dans le tableau T et tasse
les éléments restants, puis affiche le tableau
résultant.
EXERCICE 1: QUESTION 1
#include <stdio.h>
main()
{ for (I=0; I<N; I++)
/* Déclarations */ {
int T[20]; /* tableau donné */ printf("Elément %d : ", I);
int N; /* dimension */ scanf("%d", &T[I]);
int I; /* indice courant */ }
/* Saisie des données */ /* Affichage carré éléms */
do printf("Tableau donné :\n");
{ for (I=0; I<N; I++)
printf("Dimension (max.20) :"); printf("%d ", T[I]*T[I]);
scanf("%d", &N ); printf("\n");
} }
while(N<1 || N>20);
EXERCICE 1: QUESTION 2
long SOM;
/* 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);
printf("La moyenne des éléments est : %lf\n", (double)SOM/N);
EXERCICE 1: QUESTION 3
int I_min1, I_min2; /*Indices des valeurs Min*/
if(Tab[0]<Tab[1]){ I_min1=0;
I_min2=1; }
else{ I_min1=1;
I_min2=0; }
i=2;
while(i<Taille){
if(Tab[i]<Tab[I_min1]){
I_min2=I_min1;
I_min1=i;
}
else if(Tab[i]<Tab[I_max2])
I_min2=i;
i++;
}
/* Edition du résultat */
printf("Min1=%d \t pos_Min1=%d\n", Tab[I_min1], I_min1);
printf("Min2=%d \t pos_Min2=%d\n", Tab[I_min2], I_min2);
EXERCICE 1: QUESTION 4
int MAX, MIN; /* Valeurs Max et Min*/
int Ecart; /* Le plus grand écart dans le tableau */
MAX=MIN=T[0];
/* Calcul des valeurs du maximum et du minimum du tableau */
for (I=0; I<N; I++){
if (T[I] > MAX)
MAX=T[I];
if (T[I] < MIN)
MIN=T[I];
}
Ecart=MAX-MIN;
/* Edition des résultats */
printf("Le plus grand ecart dans le tableau est : %d\n", Ecart);
EXERCICE 1: QUESTION 5
/* Tester si le tableau est trié */
Int j,k;
for(I=J=k=0;I<N-1;I++){
if(T[I]>= T[I+1]) J++;
if(T[I]<= T[I+1]) k++;
}
/* Edition des résultats */
If(J==N-1||k==N-1)
printf("Le tableau est trié\n");
else
printf("Le tableau est non trié\n");
EXERCICE 1: QUESTION 6
int Aide;
/* 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");
EXERCICE 1: QUESTION 7
int AIDE0, AIDE1;
/* Décalage à droite du tableau */
AIDE0=T[0];
AIDE1=T[1];
for (I=0; I<N-2; I++)
T[I]=T[I+1];
T[N-2]=AIDE0;
T[N-1]=AIDE1;
/* Edition du tableau */
printf("Tableau apres decalage : \n");
for (I=0; I<N; I++)
printf("%d ", T[I]);
printf("\n");
EXERCICE 1: QUESTION 8
int T2[20];
/* Recopiage des éléments pairs */
for (I=0 ; I<N ; I++) T2[I] = 0 ;
for (I=0, J=0; I<N; I++)
if(!(T1[I]%2)) T2[J++]=T1[I];
/* Edition du tableau */
printf("Tableau apres recopiage : \n");
for (I=0; I<N; I++)
printf("%d ", T2[I]);
printf("\n");
EXERCICE 1: QUESTION 9
/* Effacer les valeurs nulles et comprimer : */
/* Copier tous les éléments de I vers J et */
/* augmenter J pour les éléments différents de valeur nulle. */
for (I=0, J=0 ; I<N ; I++)
{
T[J] = T[I];
if (T[I]!=0) J++;
}
/* Nouvelle dimension du tableau ! */
N = J;
/* Edition des résultats */
printf("Tableau résultat :\n");
for (I=0; I<N; I++)
printf("%d ", T[I]);
printf("\n");
EXERCICE 2
Écrire un programme qui,