Techniques algorithmiques liées aux tableaux
L'usage de constantes pour coder le nombre de cases maximales du tableau est conseillé.
Considérons le code :
#include <stdio.h>
int main()
{
int machin[10];
for (i=0;i<10;i++)
{
machin[i] = 10-i;
}
}
Si nous souhaitions travailler avec un tableau de taille 50, nous aurions besoin de modifier 3 lignes.
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.
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.
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.