1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
Dismiss Notice
Welcome to our Education website, plz like our page facebook to support us. Thank You and wish you good navigation

Cours sur les tableaux en C

abdelouafiDec 22, 2017

    1. abdelouafi

      abdelouafi Administrator Staff Member

      Messages:
      537
      Likes Received:
      10
      Trophy Points:
      18
      Joined
      Sep 13, 2016
      1. Les tableaux à une dimension


      Définitions



      Un tableau (uni-dimensionnel) A est une variable structurée formée d'un nombre entier N de variables simples du même type, qui sont appelées les composantes du tableau. Le nombre de composantes N est alors la dimension du tableau.



      [​IMG]







      En faisant le rapprochement avec les mathématiques, on dit encore que "A est un vecteur de dimension N"


      Exemple

      La déclaration

      int JOURS[12]={31,28,31,30,31,30,31,31,30,31,30,31};
      définit un tableau du type int de dimension 12. Les 12 composantes sont initialisées par les valeurs respectives 31, 28, 31, ... , 31.
      On peut accéder à la première composante du tableau par JOURS[0], à la deuxième composante par JOURS[1], . . . , à la dernière composante par JOURS[11].


      1.1. Déclaration et mémorisation


      Déclaration

      Déclaration de tableaux en langage algorithmique

      <TypeSimple> tableau <NomTableau>[<Dimension>]

      Déclaration de tableaux en C

      <TypeSimple> <NomTableau>[<Dimension>];
      Les noms des tableaux sont des identificateurs qui doivent correspondre aux restrictions définies au chapitre 2.2.4.





      Exemples

      Les déclarations suivantes en langage algorithmique,

      entier tableau A[25]
      réel tableau B[100]
      booléen tableau C[10]
      caractère tableau D[30]

      se laissent traduire en C par:

      int A[25];

      ou bien
      long A[25];
      ou bien
      ...
      float B[100];
      ou bien
      double B[100];
      ou bien
      ...
      int C[10];




      char D[30];






      Mémorisation

      En C, le nom d'un tableau est le représentant de l'adresse du premier élément du tableau. Les adresses des autres composantes sont calculées (automatiquement) relativement à cette adresse.



      Exemple:

      short A[5] = {1200, 2300, 3400, 4500, 5600};
      [​IMG]


      Si un tableau est formé de N composantes et si une composante a besoin de M octets en mémoire, alors le tableau occupera de N*M octets.


      Exemple

      En supposant qu'une variable du type long occupe 4 octets (c.-à-d: sizeof(long)=4), pour le tableau T déclaré par: long T[15];
      C réservera N*M = 15*4 = 60 octets en mémoire.
      1.2. Initialisation et réservation automatique


      Initialisation

      Lors de la déclaration d'un tableau, on peut initialiser les composantes du tableau, en indiquant la liste des valeurs respectives entre accolades.



      Exemples

      int A[5] = {10, 20, 30, 40, 50};
      float B[4] = {-1.05, 3.33, 87e-5, -12.3E4};
      int C[10] = {1, 0, 0, 1, 1, 1, 0, 1, 0, 1};

      Il faut évidemment veiller à ce que le nombre de valeurs dans la liste corresponde à la dimension du tableau. Si la liste ne contient pas assez de valeurs pour toutes les composantes, les composantes restantes sont initialisées par zéro.



      Réservation automatique

      Si la dimension n'est pas indiquée explicitement lors de l'initialisation, alors l'ordinateur réserve automatiquement le nombre d'octets nécessaires.



      Exemples

      int A[] = {10, 20, 30, 40, 50};

      ==> réservation de 5*sizeof(int) octets (dans notre cas: 10 octets)



      float B[] = {-1.05, 3.33, 87e-5, -12.3E4};

      ==> réservation de 4*sizeof(float) octets (dans notre cas: 16 octets)



      int C[] = {1, 0, 0, 1, 1, 1, 0, 1, 0, 1};

      ==> réservation de 10*sizeof(int) octets (dans notre cas: 20 octets)



      Exemples

      [​IMG]



      [​IMG]



      [​IMG]




      1.3. Accès aux composantes


      En déclarant un tableau par:

      int A[5];
      nous avons défini un tableau A avec cinq composantes, auxquelles on peut accéder par:
      A[0], A[1], ... , A[4]
      Exemple

      [​IMG]



      Exemples

      MAX = (A[0]>A[1]) ? A[0] : A[1];
      A[4] *= 2;
      Attention !


      [​IMG]

      Considérons un tableau T de dimension N:


      En C,

      - l'accès au premier élément du tableau se fait par T[0]

      - l'accès au dernier élément du tableau se fait par T[N-1]


      En langage algorithmique,

      - l'accès au premier élément du tableau se fait par T[1]

      - l'accès au dernier élément du tableau se fait par T[N]
       
      Loading...

Share This Page

Share