dimanche 25 décembre 2022

10. Les tableaux

Les tableaux - SAGProfProg - LANGAGE C - Programmation, Développement web, Développement d'application, Génie Logiciel, Langage de programmation, Application web, Tutos, Informatique, Système d'information, Administration d'application
Les tableaux - SAGProfProg - LANGAGE C - Programmation, Développement web, Développement d'application, Génie Logiciel, Langage de programmation, Application web, Tutos, Informatique, Système d'information, Administration d'application


 

Un tableau est défini comme la collection de types similaires d'éléments de données stockés à des emplacements de mémoire contigus. Les tableaux sont le type de données dérivé dans le langage de programmation C qui peut stocker le type primitif de données telles que int, char, double, float, etc. Il a également la capacité de stocker la collection de types de données dérivés, tels que les pointeurs, la structure, etc. Le tableau est la structure de données la plus simple où chaque élément de données peut être consulté de manière aléatoire en utilisant son numéro d'index.

Le tableau est avantageux si vous devez stocker des éléments similaires. Par exemple, si nous voulons stocker les notes d'un élève dans 6 matières, nous n'avons pas besoin de définir différentes variables pour les notes dans les différentes matières. Au lieu de cela, nous pouvons définir un tableau qui peut stocker les marques de chaque sujet aux emplacements de mémoire contigus.

En utilisant le tableau, nous pouvons facilement accéder aux éléments. Seules quelques lignes de code sont nécessaires pour accéder aux éléments du tableau.

Propriétés du tableau

Le tableau contient les propriétés suivantes.

  • Chaque élément d'un tableau est du même type de données et porte la même taille, c'est-à-dire int = 4 octets.
  • Les éléments du réseau sont stockés à des emplacements de mémoire contigus où le premier élément est stocké à l'emplacement de mémoire le plus petit.
  • Les éléments du tableau peuvent être consultés de manière aléatoire puisque nous pouvons calculer l'adresse de chaque élément du tableau avec l'adresse de base donnée et la taille de l'élément de données.

Avantage du tableau C

1) Optimisation du code : moins de code pour accéder aux données.

2) Facilité de parcours : En utilisant la boucle for, on peut récupérer facilement les éléments d'un tableau.

3) Facilité de tri : Pour trier les éléments du tableau, nous n'avons besoin que de quelques lignes de code.

4) Accès aléatoire : nous pouvons accéder à n'importe quel élément de manière aléatoire en utilisant le tableau.

Inconvénient du tableau C

1) Taille fixe : Quelle que soit la taille que l'on définit au moment de la déclaration du tableau, on ne peut pas dépasser la limite. Ainsi, il n'augmente pas la taille de manière dynamique comme LinkedList, ce que nous apprendrons plus tard.

Déclaration du tableau 

Nous pouvons déclarer un tableau dans le langage c de la manière suivante.

data_type array_name[array_size] ;

Voyons maintenant l'exemple pour déclarer le tableau.

int notes[5] ;

Ici, int est le type du tableau, notes est le nom du tableau et 5 est la taille du tableau.

Initialisation du tableau C

La façon la plus simple d'initialiser un tableau est d'utiliser l'index de chaque élément. Nous pouvons initialiser chaque élément du tableau en utilisant l'index. Prenons l'exemple suivant.

notes[0]=80 ; // initialisation du tableau

notes[1]=60 ;

notes[2]=70 ;

notes[3]=85 ;

notes[4]=75 ;


Exemple de tableau C

#include<stdio.h>

int main(){

int i=0 ;

int notes[5];//déclaration de tableau

notes[0]=80 ; // initialisation du tableau

notes[1]=60 ;

notes[2]=70 ;

notes[3]=85 ;

notes[4]=75 ;

//parcours du tableau

for(i=0;i<5;i++){

printf("%d \n",notes[i]);

}//fin de la boucle for

return 0 ;

}

Production



Tableau C : déclaration avec initialisation

On peut initialiser le tableau c au moment de la déclaration. Voyons le code.

int notes[5]={20,30,40,50,60} ;

Dans ce cas, il n'est pas nécessaire de définir la taille. Donc, il peut également être écrit comme le code suivant.

int notes[]={20,30,40,50,60} ;

Voyons le programme C pour déclarer et initialiser le tableau en C.

#include<stdio.h>

int main(){

int i=0 ;

int notes[5]={20,30,40,50,60};//déclaration et initialisation du tableau

  //parcours du tableau

for(i=0;i<5;i++){

printf("%d \n",notes[i]);

}

return 0 ;

}


Exemple de tableau C : Trier un tableau

Dans le programme suivant, nous utilisons la méthode de tri à bulles pour trier le tableau par ordre croissant.

#include<stdio.h>

void main ()

{

     int i, j,temp;

     int a[10] = { 10, 9, 7, 101, 23, 44, 12, 78, 34, 23} ;

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

     {

         for(j = i+1; j<10; j++)

         {

             if(a[j] > a[i])

             {

                 temp = a[i] ;

                 a[i] = a[j] ;

                 a[j] = temp ;

             }

         }

     }

     printf("Impression de la liste des elements tries ...\n");

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

     {

         printf("%d\n",a[i]);

     }

}

Programme pour imprimer le plus grand et le deuxième plus grand élément du tableau.

#include<stdio.h>

void main ()

{

     int arr[100],i,n,plus_grand,sec_plus_grand ;

     printf("Entrez la taille du tableau ?");

     scanf("%d",&n);

     printf("Entrez les elements du tableau ?");

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

     {

         scanf("%d",&arr[i]);

     }

     plus_grand = arr[0] ;

     sec_plus_grand= arr[1] ;

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

     {

         if(arr[i]>plus_grand)

         {

             sec_plus_grand = plus_grand ;

             plus_grand = arr[i] ;

         }

         else if (arr[i]>sec_plus_grand && arr[i]!=plus_grand)

         {

             sec_plus_grand=arr[i] ;

         }

     }

     printf("plus grand = %d, deuxième plus grand = %d",plus_grand,sec_plus_grand);

}

Tableau à deux dimensions en C

La matrice à deux dimensions peut être définie comme une matrice de matrices. Le tableau 2D est organisé sous forme de matrices qui peuvent être représentées sous la forme d'un ensemble de lignes et de colonnes. Cependant, des tableaux 2D sont créés pour implémenter une structure de données de type base de données relationnelle. Il permet de conserver facilement la majeure partie des données à la fois, qui peuvent être transmises à un nombre illimité de fonctions, le cas échéant.

Déclaration de tableau à deux dimensions en C

La syntaxe pour déclarer le tableau 2D est donnée ci-dessous.

data_type array_name[lignes][colonnes] ;

Prenons l'exemple suivant.

int bidimensionnel[4][3] ;

Ici, 4 est le nombre de lignes et 3 est le nombre de colonnes.

Initialisation d'un tableau 2D en C

Dans le tableau 1D, nous n'avons pas besoin de spécifier la taille du tableau si la déclaration et l'initialisation sont effectuées simultanément. Cependant, cela ne fonctionnera pas avec les tableaux 2D. Nous devrons définir au moins la deuxième dimension du tableau. Le tableau à deux dimensions peut être déclaré et défini comme suit.

int arr[4][3]={{1,2,3},{2,3,4},{3,4,5},{4,5,6}} ;

Exemple de tableau à deux dimensions en C

#include<stdio.h>

int main(){

int i=0,j=0 ;

int arr[4][3]={{1,2,3},{2,3,4},{3,4,5},{4,5,6}} ;

//parcourant un tableau 2D

for(i=0;i<4;i++){

  for(j=0;j<3;j++){

    printf("arr[%d] [%d] = %d \n",i,j,arr[i][j]);

  }//fin de j

}//fin de i

return 0 ;

}

Production



Exemple de tableau 2D : stocker des éléments dans une matrice et l'imprimer.

#include <stdio.h>

void main()

{

     int arr[3][3],i,j ;

     pour (i=0;i<3;i++)

     {

         for (j=0;j<3;j++)

         {

             printf("Entrez a[%d][%d] : ",i,j);

             scanf("%d",&arr[i][j]);

         }

     }

     printf("\n impression des elements ....\n");

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

     {

         printf("\n");

         for (j=0;j<3;j++)

         {

             printf("%d\t",arr[i][j]);

         }

     }

}

Production






Aucun commentaire:

Enregistrer un commentaire