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].