• Aucun résultat trouvé

Chapitre 3: les tableaux en langage C

N/A
N/A
Protected

Academic year: 2022

Partager "Chapitre 3: les tableaux en langage C"

Copied!
62
0
0

Texte intégral

(1)

SMIA-S2

Chapitre 3: les tableaux en langage C

Cours donné par:

Pr. Nawal Alioua Année universitaire:

2018-2019

(2)

Plan

1 Introduction

2 Les tableaux à une dimension en C

3 Les tableaux à deux dimensions en C

(3)

Plan

1 Introduction

2 Les tableaux à une dimension en C

3 Les tableaux à deux dimensions en C

(4)

Introduction

Supposons qu'on a besoin de 25 valeurs (ex: des notes pour calculer une moyenne).

Une solution consiste à déclarer 25 variables réelles, appelées par exemple n1,n2,n3,. . . ,n25 et la variable moyenne réelle:

moyenne = (n1+n2+n3+. . . +n25) / 25

En programmation (exemple langage C): la machine va réserver 25*8=200 octetspour stocker les valeurs des 25 variables et 25*4=100 octetspour leurs adresses.

La programmation nous permet de rassembler toutes ces variablesen une seule et de les manipuler comme étant: "la note numéro 1 ", " la note numéro 2 ",. . ., " la note numéro 25 ".

Un ensemble de valeurs portant ainsi le même nom de variable et repérées par un nombre, s'appelle un tableau, et le nombre qui sert à repérer chaque valeur s'appelleun indice.

(5)

Introduction

Supposons qu'on a besoin de 25 valeurs (ex: des notes pour calculer une moyenne).

Une solution consiste à déclarer 25 variables réelles, appelées par exemple n1,n2,n3,. . . ,n25 et la variable moyenne réelle:

moyenne = (n1+n2+n3+. . . +n25) / 25

En programmation (exemple langage C): la machine va réserver 25*8=200 octetspour stocker les valeurs des 25 variables et 25*4=100 octetspour leurs adresses.

La programmation nous permet de rassembler toutes ces variablesen une seule et de les manipuler comme étant: "la note numéro 1 ", " la note numéro 2 ",. . ., " la note numéro 25 ".

Un ensemble de valeurs portant ainsi le même nom de variable et repérées par un nombre, s'appelle un tableau, et le nombre qui sert à repérer chaque valeur s'appelleun indice.

(6)

Introduction

Supposons qu'on a besoin de 25 valeurs (ex: des notes pour calculer une moyenne).

Une solution consiste à déclarer 25 variables réelles, appelées par exemple n1,n2,n3,. . . ,n25 et la variable moyenne réelle:

moyenne = (n1+n2+n3+. . . +n25) / 25

En programmation (exemple langage C): la machine va réserver 25*8=200 octetspour stocker les valeurs des 25 variables et 25*4=100 octetspour leurs adresses.

La programmation nous permet de rassembler toutes ces variablesen une seule et de les manipuler comme étant: "la note numéro 1 ", " la note numéro 2 ",. . ., " la note numéro 25 ".

Un ensemble de valeurs portant ainsi le même nom de variable et repérées par un nombre, s'appelle un tableau, et le nombre qui sert à repérer chaque valeur s'appelleun indice.

(7)

Introduction

Supposons qu'on a besoin de 25 valeurs (ex: des notes pour calculer une moyenne).

Une solution consiste à déclarer 25 variables réelles, appelées par exemple n1,n2,n3,. . . ,n25 et la variable moyenne réelle:

moyenne = (n1+n2+n3+. . . +n25) / 25

En programmation (exemple langage C): la machine va réserver 25*8=200 octetspour stocker les valeurs des 25 variables et 25*4=100 octetspour leurs adresses.

La programmation nous permet de rassembler toutes ces variablesen une seule et de les manipuler comme étant: "la note numéro 1 ", " la note numéro 2 ",. . ., " la note numéro 25 ".

Un ensemble de valeurs portant ainsi le même nom de variable et repérées par un nombre, s'appelle un tableau, et le nombre qui sert à repérer chaque valeur s'appelleun indice.

(8)

Introduction

Supposons qu'on a besoin de 25 valeurs (ex: des notes pour calculer une moyenne).

Une solution consiste à déclarer 25 variables réelles, appelées par exemple n1,n2,n3,. . . ,n25 et la variable moyenne réelle:

moyenne = (n1+n2+n3+. . . +n25) / 25

En programmation (exemple langage C): la machine va réserver 25*8=200 octetspour stocker les valeurs des 25 variables et 25*4=100 octetspour leurs adresses.

La programmation nous permet de rassembler toutes ces variablesen une seule et de les manipuler comme étant: "la note numéro 1 ", " la note numéro 2 ",. . ., " la note numéro 25 ".

Un ensemble de valeurs portant ainsi le même nom de variable et repérées par un nombre, s'appelle un tableau, et le nombre qui sert à repérer chaque valeur s'appelleun indice.

(9)

C'est quoi un tableau?

Les tableaux entrent dans la catégorie destypes structurés, à l'inverse des types déjà vus (entiers, ottants,...) qui appartiennent la catégorie destypes élémentaires (ou simple).

Type structuré = se compose de plusieurs composants de types élémentaires ou structurés.

Tableau:

- Ensemble d'éléments demême typedésignés par un identicateur unique - Chaque élément estlocalisé par un indice, précisant sa position au sein de

l'ensemble.

- Occupe unespace contigu en mémoire: les éléments d'un tableau se suivent dans la mémoire.

Un tableau de taille n est une structure simple constituée de n emplacements consécutifs en mémoire.

Il est donc possible d'accéder à un élément d'un tableau en temps constant si on connait sa position (ouindice).

(10)

C'est quoi un tableau?

Les tableaux entrent dans la catégorie destypes structurés, à l'inverse des types déjà vus (entiers, ottants,...) qui appartiennent la catégorie destypes élémentaires (ou simple).

Type structuré = se compose de plusieurs composants de types élémentaires ou structurés.

Tableau:

- Ensemble d'éléments demême typedésignés par un identicateur unique - Chaque élément estlocalisé par un indice, précisant sa position au sein de

l'ensemble.

- Occupe unespace contigu en mémoire: les éléments d'un tableau se suivent dans la mémoire.

Un tableau de taille n est une structure simple constituée de n emplacements consécutifs en mémoire.

Il est donc possible d'accéder à un élément d'un tableau en temps constant si on connait sa position (ouindice).

(11)

C'est quoi un tableau?

Les tableaux entrent dans la catégorie destypes structurés, à l'inverse des types déjà vus (entiers, ottants,...) qui appartiennent la catégorie destypes élémentaires (ou simple).

Type structuré = se compose de plusieurs composants de types élémentaires ou structurés.

Tableau:

- Ensemble d'éléments demême typedésignés par un identicateur unique - Chaque élément estlocalisé par un indice, précisant sa position au sein de

l'ensemble.

- Occupe unespace contigu en mémoire: les éléments d'un tableau se suivent dans la mémoire.

Un tableau de taille n est une structure simple constituée de n emplacements consécutifs en mémoire.

Il est donc possible d'accéder à un élément d'un tableau en temps constant si on connait sa position (ouindice).

(12)

C'est quoi un tableau?

Les tableaux entrent dans la catégorie destypes structurés, à l'inverse des types déjà vus (entiers, ottants,...) qui appartiennent la catégorie destypes élémentaires (ou simple).

Type structuré = se compose de plusieurs composants de types élémentaires ou structurés.

Tableau:

- Ensemble d'éléments demême typedésignés par un identicateur unique - Chaque élément estlocalisé par un indice, précisant sa position au sein de

l'ensemble.

- Occupe unespace contigu en mémoire: les éléments d'un tableau se suivent dans la mémoire.

Un tableau de taille n est une structure simple constituée de n emplacements consécutifs en mémoire.

Il est donc possible d'accéder à un élément d'un tableau en temps constant si on connait sa position (ouindice).

(13)

C'est quoi un tableau?

Les tableaux entrent dans la catégorie destypes structurés, à l'inverse des types déjà vus (entiers, ottants,...) qui appartiennent la catégorie destypes élémentaires (ou simple).

Type structuré = se compose de plusieurs composants de types élémentaires ou structurés.

Tableau:

- Ensemble d'éléments demême typedésignés par un identicateur unique - Chaque élément estlocalisé par un indice, précisant sa position au sein de

l'ensemble.

- Occupe unespace contigu en mémoire: les éléments d'un tableau se suivent dans la mémoire.

Un tableau de taille n est une structure simple constituée de n emplacements consécutifs en mémoire.

Il est donc possible d'accéder à un élément d'un tableau en temps constant si on connait sa position (ouindice).

(14)

C'est quoi un tableau?

Les tableaux entrent dans la catégorie destypes structurés, à l'inverse des types déjà vus (entiers, ottants,...) qui appartiennent la catégorie destypes élémentaires (ou simple).

Type structuré = se compose de plusieurs composants de types élémentaires ou structurés.

Tableau:

- Ensemble d'éléments demême typedésignés par un identicateur unique - Chaque élément estlocalisé par un indice, précisant sa position au sein de

l'ensemble.

- Occupe unespace contigu en mémoire: les éléments d'un tableau se suivent dans la mémoire.

Un tableau de taille n est une structure simple constituée de n emplacements consécutifs en mémoire.

Il est donc possible d'accéder à un élément d'un tableau en temps constant si on connait sa position (ouindice).

(15)

C'est quoi un tableau?

Les tableaux entrent dans la catégorie destypes structurés, à l'inverse des types déjà vus (entiers, ottants,...) qui appartiennent la catégorie destypes élémentaires (ou simple).

Type structuré = se compose de plusieurs composants de types élémentaires ou structurés.

Tableau:

- Ensemble d'éléments demême typedésignés par un identicateur unique - Chaque élément estlocalisé par un indice, précisant sa position au sein de

l'ensemble.

- Occupe unespace contigu en mémoire: les éléments d'un tableau se suivent dans la mémoire.

Un tableau de taille n est une structure simple constituée de n emplacements consécutifs en mémoire.

Il est donc possible d'accéder à un élément d'un tableau en temps constant si on connait sa position (ouindice).

(16)

C'est quoi un tableau?

Les tableaux entrent dans la catégorie destypes structurés, à l'inverse des types déjà vus (entiers, ottants,...) qui appartiennent la catégorie destypes élémentaires (ou simple).

Type structuré = se compose de plusieurs composants de types élémentaires ou structurés.

Tableau:

- Ensemble d'éléments demême typedésignés par un identicateur unique - Chaque élément estlocalisé par un indice, précisant sa position au sein de

l'ensemble.

- Occupe unespace contigu en mémoire: les éléments d'un tableau se suivent dans la mémoire.

Un tableau de taille n est une structure simple constituée de n emplacements consécutifs en mémoire.

Il est donc possible d'accéder à un élément d'un tableau en temps constant si on connait sa position (ouindice).

(17)

Remarques

Il n'est pas possible de modierla taille d'un tableau, ce qui est gênant pour un certain nombre d'algorithmes.

On dit que cette structure est statique. Le nombre d'éléments qu'elle contient ne peut pas varier.

Caractéristiques de l'indice: sert à parcourir les éléments d'un tableau et peut être exprimé comme un nombre ou une variable. La valeur d'un indice doit toujours:

être égale au moins à 0 . Tab[2] est le troisième élément du tableau Tab ! être un nombre entier. L'élément Tab[3.14] n'existe jamais.

être inférieure ou égale au nombre d'éléments du tableau moins 1. Si le tableau Tab a été déclaré comme ayant 10 éléments, Tab[10] déclenchera automatiquement une erreur.

Ne pas confondre l'indice i d'un élément d'un tableau avec le contenu de cet élément Tab[i].

(18)

Remarques

Il n'est pas possible de modierla taille d'un tableau, ce qui est gênant pour un certain nombre d'algorithmes.

On dit que cette structure est statique. Le nombre d'éléments qu'elle contient ne peut pas varier.

Caractéristiques de l'indice: sert à parcourir les éléments d'un tableau et peut être exprimé comme un nombre ou une variable. La valeur d'un indice doit toujours:

être égale au moins à 0 . Tab[2] est le troisième élément du tableau Tab ! être un nombre entier. L'élément Tab[3.14] n'existe jamais.

être inférieure ou égale au nombre d'éléments du tableau moins 1. Si le tableau Tab a été déclaré comme ayant 10 éléments, Tab[10] déclenchera automatiquement une erreur.

Ne pas confondre l'indice i d'un élément d'un tableau avec le contenu de cet élément Tab[i].

(19)

Remarques

Il n'est pas possible de modierla taille d'un tableau, ce qui est gênant pour un certain nombre d'algorithmes.

On dit que cette structure est statique. Le nombre d'éléments qu'elle contient ne peut pas varier.

Caractéristiques de l'indice: sert à parcourir les éléments d'un tableau et peut être exprimé comme un nombre ou une variable. La valeur d'un indice doit toujours:

être égale au moins à 0 . Tab[2] est le troisième élément du tableau Tab ! être un nombre entier. L'élément Tab[3.14] n'existe jamais.

être inférieure ou égale au nombre d'éléments du tableau moins 1. Si le tableau Tab a été déclaré comme ayant 10 éléments, Tab[10] déclenchera automatiquement une erreur.

Ne pas confondre l'indice i d'un élément d'un tableau avec le contenu de cet élément Tab[i].

(20)

Remarques

Il n'est pas possible de modierla taille d'un tableau, ce qui est gênant pour un certain nombre d'algorithmes.

On dit que cette structure est statique. Le nombre d'éléments qu'elle contient ne peut pas varier.

Caractéristiques de l'indice: sert à parcourir les éléments d'un tableau et peut être exprimé comme un nombre ou une variable. La valeur d'un indice doit toujours:

être égale au moins à 0 . Tab[2] est le troisième élément du tableau Tab ! être un nombre entier. L'élément Tab[3.14] n'existe jamais.

être inférieure ou égale au nombre d'éléments du tableau moins 1. Si le tableau Tab a été déclaré comme ayant 10 éléments, Tab[10] déclenchera automatiquement une erreur.

Ne pas confondre l'indice i d'un élément d'un tableau avec le contenu de cet élément Tab[i].

(21)

Remarques

Il n'est pas possible de modierla taille d'un tableau, ce qui est gênant pour un certain nombre d'algorithmes.

On dit que cette structure est statique. Le nombre d'éléments qu'elle contient ne peut pas varier.

Caractéristiques de l'indice: sert à parcourir les éléments d'un tableau et peut être exprimé comme un nombre ou une variable. La valeur d'un indice doit toujours:

être égale au moins à 0 . Tab[2] est le troisième élément du tableau Tab ! être un nombre entier. L'élément Tab[3.14] n'existe jamais.

être inférieure ou égale au nombre d'éléments du tableau moins 1. Si le tableau Tab a été déclaré comme ayant 10 éléments, Tab[10] déclenchera automatiquement une erreur.

Ne pas confondre l'indice i d'un élément d'un tableau avec le contenu de cet élément Tab[i].

(22)

Remarques

Il n'est pas possible de modierla taille d'un tableau, ce qui est gênant pour un certain nombre d'algorithmes.

On dit que cette structure est statique. Le nombre d'éléments qu'elle contient ne peut pas varier.

Caractéristiques de l'indice: sert à parcourir les éléments d'un tableau et peut être exprimé comme un nombre ou une variable. La valeur d'un indice doit toujours:

être égale au moins à 0 . Tab[2] est le troisième élément du tableau Tab ! être un nombre entier. L'élément Tab[3.14] n'existe jamais.

être inférieure ou égale au nombre d'éléments du tableau moins 1. Si le tableau Tab a été déclaré comme ayant 10 éléments, Tab[10] déclenchera automatiquement une erreur.

Ne pas confondre l'indice i d'un élément d'un tableau avec le contenu de cet élément Tab[i].

(23)

Remarques

Il n'est pas possible de modierla taille d'un tableau, ce qui est gênant pour un certain nombre d'algorithmes.

On dit que cette structure est statique. Le nombre d'éléments qu'elle contient ne peut pas varier.

Caractéristiques de l'indice: sert à parcourir les éléments d'un tableau et peut être exprimé comme un nombre ou une variable. La valeur d'un indice doit toujours:

être égale au moins à 0 . Tab[2] est le troisième élément du tableau Tab ! être un nombre entier. L'élément Tab[3.14] n'existe jamais.

être inférieure ou égale au nombre d'éléments du tableau moins 1. Si le tableau Tab a été déclaré comme ayant 10 éléments, Tab[10] déclenchera automatiquement une erreur.

Ne pas confondre l'indice i d'un élément d'un tableau avec le contenu de cet élément Tab[i].

(24)

Plan

1 Introduction

2 Les tableaux à une dimension en C

3 Les tableaux à deux dimensions en C

(25)

Déclaration d'un tableau 1-D

Déclaration d'un tableau: type nomTableau[taille];

En langage C, la première positiond'un tableau porte l'indice 0.

t[i] joue le même rôle qu'une variable scalaire du type du tableau.

La notation &t[i] désigne l'adresse de l'élément t[i] de même que &x désignait l'adresse de la variable x.

Exemple : - oat t[5];

- Réserve l'emplacement pour 5 éléments de type oat.

- t[3] désigne le quatrième élément du tableau - Les indices valides pour ce tableau sont de 0 à 4 - On peut écrire: t[4] = 15.3f;out[4]++;ou- -t[i];

(26)

Déclaration d'un tableau 1-D

Déclaration d'un tableau: type nomTableau[taille];

En langage C, la première positiond'un tableau porte l'indice 0.

t[i] joue le même rôle qu'une variable scalaire du type du tableau.

La notation &t[i] désigne l'adresse de l'élément t[i] de même que &x désignait l'adresse de la variable x.

Exemple : - oat t[5];

- Réserve l'emplacement pour 5 éléments de type oat.

- t[3] désigne le quatrième élément du tableau - Les indices valides pour ce tableau sont de 0 à 4 - On peut écrire: t[4] = 15.3f;out[4]++;ou- -t[i];

(27)

Déclaration d'un tableau 1-D

Déclaration d'un tableau: type nomTableau[taille];

En langage C, la première positiond'un tableau porte l'indice 0.

t[i] joue le même rôle qu'une variable scalaire du type du tableau.

La notation &t[i] désigne l'adresse de l'élément t[i] de même que &x désignait l'adresse de la variable x.

Exemple : - oat t[5];

- Réserve l'emplacement pour 5 éléments de type oat.

- t[3] désigne le quatrième élément du tableau - Les indices valides pour ce tableau sont de 0 à 4 - On peut écrire: t[4] = 15.3f;out[4]++;ou- -t[i];

(28)

Déclaration d'un tableau 1-D

Déclaration d'un tableau: type nomTableau[taille];

En langage C, la première positiond'un tableau porte l'indice 0.

t[i] joue le même rôle qu'une variable scalaire du type du tableau.

La notation &t[i] désigne l'adresse de l'élément t[i] de même que &x désignait l'adresse de la variable x.

Exemple : - oat t[5];

- Réserve l'emplacement pour 5 éléments de type oat.

- t[3] désigne le quatrième élément du tableau - Les indices valides pour ce tableau sont de 0 à 4 - On peut écrire: t[4] = 15.3f;out[4]++;ou- -t[i];

(29)

Déclaration d'un tableau 1-D

Déclaration d'un tableau: type nomTableau[taille];

En langage C, la première positiond'un tableau porte l'indice 0.

t[i] joue le même rôle qu'une variable scalaire du type du tableau.

La notation &t[i] désigne l'adresse de l'élément t[i] de même que &x désignait l'adresse de la variable x.

Exemple : - oat t[5];

- Réserve l'emplacement pour 5 éléments de type oat.

- t[3] désigne le quatrième élément du tableau - Les indices valides pour ce tableau sont de 0 à 4 - On peut écrire: t[4] = 15.3f;out[4]++;ou- -t[i];

(30)

Règles pour la déclaration d'un tableau 1-D

Un indice peut prendre la forme d'une expression arithmétiquede type entier ou caractère, en tenant compte des règles de conversion systématique des caractères.

Exemple: (Avec n, p, ketj sont de typeint,c1et c2 de typechar.) - t[n+6]

- t[3*p-7*j+n%k]

- t[c1-2]

- t[c2+c1]

(31)

Règles pour la déclaration d'un tableau 1-D

Dans les anciennes versions du langage C, la dimension (taille) d'un tableau ne pouvait pas être une variable.

On ne pouvait utiliser qu'une constante symbolique dénie par la directive#dene, une expression avec cette constante, ou un nombre.

Dans les versions plus récentes, le compilateur accepte l'utilisation d'une variable comme taille du tableau. Il faut être attentif à ce type d'erreur dépendant de la version utilisée

(32)

Initialisation d'un tableau 1-D

La déclaration combinée à l'initialisation int tab[5] = { 10, 20, 5, 0, 3 } ;

place les valeurs indiquées dans chacun des cinq éléments du tableau, dans cet ordre.

Il est possible de ne pas mentionner la dimensiondu tableau, elle sera déterminée par le compilateur par le nombre de valeurs énumérées dans l'initialisation.

La déclaration précédente est équivalente à : int tab[] = { 10, 20, 5, 0, 3 } ;

(33)

Initialisation d'un tableau 1-D

La déclaration combinée à l'initialisation int tab[5] = { 10, 20, 5, 0, 3 } ;

place les valeurs indiquées dans chacun des cinq éléments du tableau, dans cet ordre.

Il est possible de ne pas mentionner la dimensiondu tableau, elle sera déterminée par le compilateur par le nombre de valeurs énumérées dans l'initialisation.

La déclaration précédente est équivalente à : int tab[] = { 10, 20, 5, 0, 3 } ;

(34)

Initialisation d'un tableau 1-D

La déclaration combinée à l'initialisation int tab[5] = { 10, 20, 5, 0, 3 } ;

place les valeurs indiquées dans chacun des cinq éléments du tableau, dans cet ordre.

Il est possible de ne pas mentionner la dimensiondu tableau, elle sera déterminée par le compilateur par le nombre de valeurs énumérées dans l'initialisation.

La déclaration précédente est équivalente à : int tab[] = { 10, 20, 5, 0, 3 } ;

(35)

Exemple: nombre d'étudiants ayant dépassé la moyenne de la classe

Ecrire un programme C qui saisit les notes des étudiants de la classe (de 20 étudiants) et qui calcule le nombre d'étudiants ayant dépassé la moyenne de la classe.

(36)

Exemple: nombre d'étudiants ayant dépassé la moyenne de la classe Ecrire un programme C qui saisit les notes des étudiants de la classe (de 20 étudiants) et qui calcule le nombre d'étudiants ayant dépassé la moyenne de la classe.

(37)

Plan

1 Introduction

2 Les tableaux à une dimension en C

3 Les tableaux à deux dimensions en C

(38)

Tableau à deux dimensions

Pour représenter les matrices dans un ordinateur, un tableau ne sut pas:

En eet,chaque ligne de la matrice est un tableau,

une matrice n*k peut par exemple être représentée par n tableaux de k éléments chacun.

Mais cette représentation sera dicile à gérer,

En programmation, on a la possibilité de déclarer des tableaux dans lesquels les valeurs sont repérées par deux indices, appeléstableaux à deux dimensions

C'est la solution adoptée pour la représentation des matrices

(39)

Tableau à deux dimensions

Pour représenter les matrices dans un ordinateur, un tableau ne sut pas:

En eet,chaque ligne de la matrice est un tableau,

une matrice n*k peut par exemple être représentée par n tableaux de k éléments chacun.

Mais cette représentation sera dicile à gérer,

En programmation, on a la possibilité de déclarer des tableaux dans lesquels les valeurs sont repérées par deux indices, appeléstableaux à deux dimensions

C'est la solution adoptée pour la représentation des matrices

(40)

Tableau à deux dimensions

Pour représenter les matrices dans un ordinateur, un tableau ne sut pas:

En eet,chaque ligne de la matrice est un tableau,

une matrice n*k peut par exemple être représentée par n tableaux de k éléments chacun.

Mais cette représentation sera dicile à gérer,

En programmation, on a la possibilité de déclarer des tableaux dans lesquels les valeurs sont repérées par deux indices, appeléstableaux à deux dimensions

C'est la solution adoptée pour la représentation des matrices

(41)

Tableau à deux dimensions

Pour représenter les matrices dans un ordinateur, un tableau ne sut pas:

En eet,chaque ligne de la matrice est un tableau,

une matrice n*k peut par exemple être représentée par n tableaux de k éléments chacun.

Mais cette représentation sera dicile à gérer,

En programmation, on a la possibilité de déclarer des tableaux dans lesquels les valeurs sont repérées par deux indices, appeléstableaux à deux dimensions

C'est la solution adoptée pour la représentation des matrices

(42)

Tableau à deux dimensions

Pour représenter les matrices dans un ordinateur, un tableau ne sut pas:

En eet,chaque ligne de la matrice est un tableau,

une matrice n*k peut par exemple être représentée par n tableaux de k éléments chacun.

Mais cette représentation sera dicile à gérer,

En programmation, on a la possibilité de déclarer des tableaux dans lesquels les valeurs sont repérées par deux indices, appeléstableaux à deux dimensions

C'est la solution adoptée pour la représentation des matrices

(43)

Tableau à deux dimensions

Pour représenter les matrices dans un ordinateur, un tableau ne sut pas:

En eet,chaque ligne de la matrice est un tableau,

une matrice n*k peut par exemple être représentée par n tableaux de k éléments chacun.

Mais cette représentation sera dicile à gérer,

En programmation, on a la possibilité de déclarer des tableaux dans lesquels les valeurs sont repérées par deux indices, appeléstableaux à deux dimensions

C'est la solution adoptée pour la représentation des matrices

(44)

Déclaration d'un tableau 2-D

Déclaration d'un tableau 2-D:type nomTab[nbLig][nbCol];

Exemple: double t[4][2];déclare un tableau de 4 lignes et 2 colonnes.

Un élément quelconque d'un tableau 2-D est repéré par deux indices On rappelle que les indices des tableaux en langage C commence par 0

t[3][1] désigne l'élément de la quatrième ligne et deuxième colonne Les écritures suivantessont valides: t[i][j]ou t[i-3][i+j]

Les écriturest[3] ou t[j] présentent destableaux 1-D

(45)

Déclaration d'un tableau 2-D

Déclaration d'un tableau 2-D:type nomTab[nbLig][nbCol];

Exemple: double t[4][2];déclare un tableau de 4 lignes et 2 colonnes.

Un élément quelconque d'un tableau 2-D est repéré par deux indices On rappelle que les indices des tableaux en langage C commence par 0

t[3][1] désigne l'élément de la quatrième ligne et deuxième colonne Les écritures suivantessont valides: t[i][j]ou t[i-3][i+j]

Les écriturest[3] ou t[j] présentent destableaux 1-D

(46)

Déclaration d'un tableau 2-D

Déclaration d'un tableau 2-D:type nomTab[nbLig][nbCol];

Exemple: double t[4][2];déclare un tableau de 4 lignes et 2 colonnes.

Un élément quelconque d'un tableau 2-D est repéré par deux indices On rappelle que les indices des tableaux en langage C commence par 0

t[3][1] désigne l'élément de la quatrième ligne et deuxième colonne Les écritures suivantessont valides: t[i][j]ou t[i-3][i+j]

Les écriturest[3] ou t[j] présentent destableaux 1-D

(47)

Déclaration d'un tableau 2-D

Déclaration d'un tableau 2-D:type nomTab[nbLig][nbCol];

Exemple: double t[4][2];déclare un tableau de 4 lignes et 2 colonnes.

Un élément quelconque d'un tableau 2-D est repéré par deux indices On rappelle que les indices des tableaux en langage C commence par 0

t[3][1] désigne l'élément de la quatrième ligne et deuxième colonne Les écritures suivantessont valides: t[i][j]ou t[i-3][i+j]

Les écriturest[3] ou t[j] présentent destableaux 1-D

(48)

Déclaration d'un tableau 2-D

Déclaration d'un tableau 2-D:type nomTab[nbLig][nbCol];

Exemple: double t[4][2];déclare un tableau de 4 lignes et 2 colonnes.

Un élément quelconque d'un tableau 2-D est repéré par deux indices On rappelle que les indices des tableaux en langage C commence par 0

t[3][1] désigne l'élément de la quatrième ligne et deuxième colonne Les écritures suivantessont valides: t[i][j]ou t[i-3][i+j]

Les écriturest[3] ou t[j] présentent destableaux 1-D

(49)

Déclaration d'un tableau 2-D

Déclaration d'un tableau 2-D:type nomTab[nbLig][nbCol];

Exemple: double t[4][2];déclare un tableau de 4 lignes et 2 colonnes.

Un élément quelconque d'un tableau 2-D est repéré par deux indices On rappelle que les indices des tableaux en langage C commence par 0

t[3][1] désigne l'élément de la quatrième ligne et deuxième colonne Les écritures suivantessont valides: t[i][j]ou t[i-3][i+j]

Les écriturest[3] ou t[j] présentent destableaux 1-D

(50)

Déclaration d'un tableau 2-D

Déclaration d'un tableau 2-D:type nomTab[nbLig][nbCol];

Exemple: double t[4][2];déclare un tableau de 4 lignes et 2 colonnes.

Un élément quelconque d'un tableau 2-D est repéré par deux indices On rappelle que les indices des tableaux en langage C commence par 0

t[3][1] désigne l'élément de la quatrième ligne et deuxième colonne Les écritures suivantessont valides: t[i][j]ou t[i-3][i+j]

Les écriturest[3] ou t[j] présentent destableaux 1-D

(51)

Déclaration d'un tableau 2-D

Les éléments d'un tableau 2-D sont rangés suivant l'ordre obtenu en faisantvarier le dernier indice en premier.

Si on considère le tableau int tab[3][2];

ses éléments sont ordonnés comme suit:

tab[0][0]suivi detab[0][1] puistab[1][0]puistab[1][1]puis tab[2][0]et enn

tab[2][1]

(52)

Déclaration d'un tableau 2-D

Les éléments d'un tableau 2-D sont rangés suivant l'ordre obtenu en faisantvarier le dernier indice en premier.

Si on considère le tableau int tab[3][2];

ses éléments sont ordonnés comme suit:

tab[0][0]suivi detab[0][1] puistab[1][0]puistab[1][1]puis tab[2][0]et enn

tab[2][1]

(53)

Initialisation d'un tableau 2-D

Les deux initialisation suivantes sont équivalentes:

- int tab [3] [4] = { { 1, 2, 3, 4 } , { 5, 6, 7, 8 },{ 9,10,11,12 }; }

- int tab [3] [4] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 } ;

Explication:

- Dans la première forme, on considère que le tableau est formé de3 tableaux de 4 éléments chacun.

- Dans la seconde, on utilise la manière dont les éléments sonteectivement rangés en mémoireet on énumère les valeurs du tableau suivant cet ordre.

(54)

Initialisation d'un tableau 2-D

Les deux initialisation suivantes sont équivalentes:

- int tab [3] [4] = { { 1, 2, 3, 4 } , { 5, 6, 7, 8 },{ 9,10,11,12 }; }

- int tab [3] [4] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 } ;

Explication:

- Dans la première forme, on considère que le tableau est formé de3 tableaux de 4 éléments chacun.

- Dans la seconde, on utilise la manière dont les éléments sonteectivement rangés en mémoireet on énumère les valeurs du tableau suivant cet ordre.

(55)

Exercice

Écrire un programme qui saisit et ache les éléments d'une matrice n*m

(56)

Exercice

Écrire un programme qui saisit et ache les éléments d'une matrice n*m

(57)

Exercice

Ecrire un programme qui calcule la somme de deux matrices carrées de taille n composées d'entiers et place le résultat dans une troisième matrice

(58)
(59)

Conclusion

Dans ce chapitre nous avons vu:

Les tableaux à une dimension Les tableaux à deux dimensions

Dans le chapitre suivant nous allons voir la notion de fonction en langage C

(60)

Conclusion

Dans ce chapitre nous avons vu:

Les tableaux à une dimension Les tableaux à deux dimensions

Dans le chapitre suivant nous allons voir la notion de fonction en langage C

(61)

Conclusion

Dans ce chapitre nous avons vu:

Les tableaux à une dimension Les tableaux à deux dimensions

Dans le chapitre suivant nous allons voir la notion de fonction en langage C

(62)

Conclusion

Dans ce chapitre nous avons vu:

Les tableaux à une dimension Les tableaux à deux dimensions

Dans le chapitre suivant nous allons voir la notion de fonction en langage C

Références

Documents relatifs

Pour conserver les modifications du contenu de ces tableaux (après les avoir triées ou, après des ajouts, etc.), on recopie ces tableaux dans le fichier original ou

Aucune des parties MSCI n'emet quelconque affirmation ou garantie, explicite ou implicite, à l'émetteur ou aux propriétaires de ce fonds ou à toute autre personne ou

L’événement « manger une salade verte et une pizza aux quatre fromages » a une probabilité de 1/6. L’événement «manger une salade verte, une pizza végétarienne et une

Dans ce problème, on considère deux récipients : l'un de forme conique, de rayon de base 8 cm et de hauteur 24 cm, l'autre de forme cylindrique, de rayon 8 cm également.. Le but

SMnV (monétaire: semiliquidités) dont la croissance sur toute la période considérée est très régulière (cf. courbe); et SCnv, déjà signalée au §2.2 pour sa spécialisation

´ elev´ es, leur ajoutent des am´ eliorations, et l’introduction d’un « effet qualit´ e » abaissant leurs prix ` a l’ann´ ee cible accroˆıt la diminution de prix,

dio): un estudio cuantitativo/descriptivo desde el punto de vista de su potencial heunstico.. 168

INVESTIGACION Y EXPERIENCIAS DIDACTICAS Evolución y nuevas tendencias en los trabajos sobre didáctica de las ciencias