C_facile : Introduction au langage C
Cours

Techniques algorithmiques liées aux tableaux

Conseil

L'usage de constantes pour coder le nombre de cases maximales du tableau est conseillé.

Exemple

Considérons le code :

#include <stdio.h>

int main()

{

    int machin[10];

   for (i=0;i<10;i++)

     {

            machin[i] = 10-i;

      }

}

Remarque

Si nous souhaitions travailler avec un tableau de taille 50, nous aurions besoin de modifier 3 lignes.

Exemple

Considérons maintenant le code :

include <stdio.h>

#define MAX 10

int main()

{

    int machin[MAX];

    for (i=0;i<MAX;i++)

     {

         machin[i] = MAX-i;

     }

}

Avec ce code, si l'on veut travailler avec un tableau de 50 cases, il suffit de modifier une ligne (le « #define »). Le précompilateur fera le travail de modification à notre place. C'est une technique de programmation qui évite bien des erreurs.

Rappel

Nous rappelons que la taille d'un tableau doit être connue à la compilation et que la taille d'un tableau ne peut être modifiée au cours de l'exécution d'un programme.

Exemple

Soit le problème suivant posé : le nombre d'éléments que l'on veut ranger et utiliser dans un tableau est inconnu, mais on sait qu'il n'y en aura pas plus que 1000.

Dans ce cas, il suffit d'utiliser la technique que nous illustrons dans le code suivant :

include <stdio.h>

#define MAX 1000

int main()

{

     int machin[MAX];

     int nb_machin; // le nombre d'entiers rangés dans le tableau machin

                                    // le reste du code ...

}

Nous déclarons le tableau de taille maximale.

Puis on ajoute la déclaration de la variable « nb_machin » qui indique le nombre d'éléments que l'on a effectivement rangés dans le tableau « machin ».

Vous remarquerez le choix effectué pour construire l'identificateur de la variable qui gère le nombre d'entiers rangés dans le tableau.

Bien évidemment, c'est au programmeur d'incrémenter « nb_machin» quand on ajoute un élément et de le décrémenter quand on en retire un.

Les tableaux à deux dimensions (page suivante)Initialisation par lecture (page Précédente)
AccueilImprimer creativecommons : by-nc-ndRéalisé avec SCENARI