EXERCICE I
Révision
(tableaux, functions)
1.
Ecrire un programme qui remplit le tableau
T du type int
(dimension maximale: 50 composantes), par des valeurs entrées au clavier
et affiche le tableau.
·
Copiez ensuite toutes les composantes
strictement positives dans un deuxième tableau TPOS et toutes les
valeurs strictement négatives dans un troisième tableau TNEG. Afficher les
tableaux TPOS et TNEG.
·
Utiliser trois fonctions différentes :
entrer ; afficher ; traiter.
#include <stdio.h>
#define TAILLE 50
int entrer(int t[]);
void afficher(int t[],int
n);
void traiter(int t[],int n,int
tpos[],int *npos,int tneg[],int *nneg);
main()
{
/* Declarations */
/* Les tableaux et leurs dimensions */
int
t[50], tpos[50], tneg[50];
int
n, npos, nneg;
/* Saisie des donnees */
n=entrer(t);
/* Affichage du tableau */
printf("Tableau donne :\n");
afficher(t,n);
traiter(t,n,tpos,&npos,tneg,&nneg);
/* Edition du resultat */
printf("Tableau TPOS :\n");
afficher(tpos,npos);
printf("Tableau TNEG :\n");
afficher(tneg,nneg);
return 0;
}
int entrer(int t[TAILLE])
{ int n=0;
int temp;
while( 1 )
{printf("Entrer l'element %d:",n+1);
if(scanf("%d",&temp)==1 && n<TAILLE)
{ t[n]=temp;
n++;
}
else
break;
}
return n;
}
void afficher(int t[],int n)
{ int i;
for(i=0;i<n;i++)
printf("%4d",t[i]);
printf("\n");
}
void traiter(int t[],int n,int
tpos[],int *npos,int tneg[],int *nneg)
{ /* Initialisation des dimensions de TPOS et
TNEG */
int i;
*npos=0;
*nneg=0;
/*
Transferer des donnees */
for (i=0; i<n;
i++)
{ if (t[i]>0) {
tpos[*npos]=t[i];
(*npos)++;
}
if (t[i]<0) {
tneg[*nneg]=t[i];
(*nneg)++;
}
}
}
2.
Modifier le programme de p.1 en
utilisant deux fichiers CPP: l’un pour
les fonctions et l’autre pour main.
3.
Modifier le programme de p.1 en
ajoutant
une fonction nouvelle à rechercher l’élément
maximale et sa position dans le tableau t.
4.
Modifier le programme de p.3 en
ajoutant
une fonction nouvelle à rechercher l’élément
maximale et sa position uniquement d’éléments dont l’indice est pair et l’élément
se trouve dans l’intervalle fermé [a – b].