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