/*
  Name: TP9 Exercice 1
  Copyright: Interdiction totale de copier ce programme
  Author: ARCHAMBEAU Tony
  11/11/06 14:28
  Description: Exercice sur les tableau 
*/

#include <stdio.h>
#include <conio.h>
#define TAILLE 20
void afficher(int *t, int n);
void ajouter(int *t, int *pn);
void supprimer(int *t, int *pn);
void inserer(int *t, int *pn);
char menu();

int main (void)

{
    int tab[TAILLE];
    int nb = 6;
    int sd = 0;
    char choix;
    
    tab[0]=28;
    tab[1]=32411; 
    tab[2]=154; 
    tab[3]=1789; 
    tab[4]=2001;
    tab[5]=9999;
   
    do
    {
                system("cls");
                choix = menu();
        switch(choix)
        {
            case'1' : afficher(tab,nb);
                        break;
            case'2' : ajouter(tab,&nb);
                    afficher(tab,nb);
                        break;
            case'3' : supprimer(tab,&nb);
                    afficher(tab,nb);
                        break;
            case'4' : inserer(tab,&nb);
                    afficher(tab,nb);
        }
        system("pause");
    }
    while(choix!='0');        
    
    return 0;
}

/*******************************************************************/

char menu()
{
    char c;
    
    printf("    Veuillez choisir entre : \n\n");
    printf("        1 : Afficher\n");
    printf("        2 : Ajouter\n");
    printf("        3 : Supprimer\n");
    printf("        4 : Inserer\n");
    printf("        0 : Quitter\n\n");
    printf("        Votre choix ??\n\n");

    do
      c = getch();
    while((c<'0')||(c>'4'));
    return (c);
}    

/********************************************************************/

void afficher(int *t, int n)
{
    int i;
    printf("    |  indice  |  valeur  |\n");
    printf("    +----------+----------+\n");
    for(i=0 ; i<n ; i++)
      printf("    |    %2d    |  %6d  |\n",i,t[i]);
}

/*****************************************************************/


void ajouter(int *t, int *pn)
{
    if (*pn < TAILLE)
    {
      printf("Valeur de l entier a ajouter : ");
      scanf("%d", t+(*pn)++);
    }
    else
      printf("\nTableau plein.\n") ;
}

/*************************************************************/

void supprimer(int *t, int *pn)
{
    int indice,
        i;
        
    if (*pn>0)
    {
       do
       {
         printf("Indice de l element a sucrer : ");
         scanf("%d", &indice);
       } while ((indice<0)||(indice>*pn-1));
    
    (*pn)--;
    for(i=indice ; i<(*pn) ; i++)
      t[i] = t[i+1];
    }
    else
      printf("\nTableau vide.\n") ;
}        

/***************************************************************/

void inserer(int *t, int *pn)
{
    int indice,i;
    
    if (*pn < TAILLE)
    {
      do
      {
        printf("Position ou l inserer : ");
        scanf("%d", &indice);
      } while ((indice<0)||(indice>*pn-1));
    
      if((indice>*pn)||(indice<0))
        printf("l emplacement n existe pas !!\n");
      else
      {
        for(i=(*pn) ; i>indice ; i--)
          t[i] = t[i-1];
      printf("Valeur de l entier a inserer : ");
      scanf("%d", &(t[indice]));
      (*pn)++;
      }
    }
    else
      printf("\nTableau plein!\n") ;
}    



