Computing">
Introduction A L'algorithmique
Introduction A L'algorithmique
Introduction A L'algorithmique
Dr. A . SIDIBE
Introduction à L’algorithmique
1. Notion d’Algorithme et de programme
Les programmes ont pour but de traiter différentes données afin de produire des
résultats. Les résultats peuvent eux-mêmes être des données pour d'autres
programmes.
Une variable peut être représentée par une case mémoire, qui contient
la valeur d'une donnée.
Chaque variable possède un nom unique appelé identificateur par lequel
on peut accéder à son contenu.
Par exemple, on peut avoir en mémoire une variable prix et une variables
quantité qui contiennent les valeurs 10.2 et 5
Notez bien que cette instruction n’a en rien modifié la valeur de MyVar1. Une instruction
d’affectation ne modifie que ce qui est situé à gauche de la flèche.
MyVar2 ← MyVar1 + 4
Si MyVar1 contenait 12, MyVar2 vaut maintenant 16. De même que précédemment, MyVar1
vaut toujours 12.
MyVar2 ← MyVar2 + 1
Si MyVar2 valait 6, il vaut maintenant 7. La valeur de MyVar2 est modifiée, puisque
MyVar2 est la variable située à gauche de la flèche.
3.1 Ordre des instructions
Il va de soi que l’ordre dans lequel les instructions sont écrites va
jouer un rôle essentiel dans le résultat final. Considérons les deux
algorithmes suivants :
Exemple 1
Var A : Entier
Début
A ← 34
A ← 12
Fin
Exemple 2
Var A : Entier
Début
A ← 12
A ← 34
Fin
Il est clair que dans le premier cas la valeur finale de A est 12, dans l’autre elle
est 34 .
Il n’y a aucun intérêt à affecter une variable pour l’affecter différemment
juste après. En l’occurrence, on aurait tout aussi bien atteint le même résultat
en écrivant simplement :
Exemple 1
Var A : Entier
Début
A ← 12
Fin
Exemple 2
Var A : Entier
Début
A ← 34
Fin
PARTIE 1
Exercice 1.1
Quelles seront les valeurs des variables A et B après exécution des instructions
suivantes ?
Var A, B : Entier
Début
A ← 1
B ← A + 3
A ← 3
Fin
Corrigé exercice 1.1
+ : addition
- : soustraction
* : multiplication
/ : division
4.2 Opérateur alphanumérique : &
Cet opérateur permet de concaténer, autrement dit de mettre bout à bout,
deux chaînes de caractères. Par exemple :
entière et diffère un peu de la division que l'on trouve sur les calculettes.
Elle ne donne que le chiffre avant la virgule du résultat (elle renvoie un
entier).
2. Les entiers supportent une opération supplémentaire appelée modulo,
notée mod et qui renvoie le reste de la division entière.
Exemple:
7 / 2 donne 3.5
7 Div 2 donne 3
7 Mod 2 donne 1
3. Les caractères sont comparés selon l’ordre du code ASCII (American
Standard Code for Information Interchange – Code standard Américain de
codage d’information). C’est ainsi qu’on peut comparer tous les caractères
entre eux. Par exemple la lettre Z (majuscule), de code ASCII 90 est inférieure
à la lettre a (minuscule) de code ASCII 97. L’ordre ASCII des lettres de la
même casse suit l’ordre alphabétique, de sorte que A<B<C<D<…
4. L’opérateur & sert à concaténer des chaînes de caractère, ce qui signifie
transformer plusieurs chaînes en une seule en les ajoutant les unes à la suite
des autres.
Ex : « Bonjour » & « à tous » donne « Bonjour à tous »
Table ASCII
5. Lecture et Ecriture
Lire (Prix)
Dès lors, aussitôt que la touche Entrée (Enter) a été frappée, l’exécution reprend.
Dans le sens inverse, pour écrire quelque chose à l’écran, c’est aussi simple que :
écrire (Prix )
Avant de Lire une variable, il est très fortement conseillé d’écrire des libellés à
l’écran, afin de prévenir l’utilisateur de ce qu’il doit saisir (sinon, l’ utilisateur
passe son temps à se demander ce que l’ordinateur attend de lui) :
Exercice 5.1
Quel résultat produit le programme suivant ?
Programme Prog1
Var val, double : réel
Début
Val ← 231
Double ← Val * 2
Ecrire (Val)
Ecrire (Double)
Fin
Corrigés de l’exercice 5.1
Exercice 5.2
Ecrire un programme qui demande un nombre à l’utilisateur, puis qui calcule et
affiche le carré de ce nombre.
Correction de l’Exercice 5.2
Programme NombreCarrée
Var nb, carr : Entier
Début
Ecrire ("Entrez un nombre :")
Lire (nb)
carr ← nb * nb
Ecrire "Son carré est : ", carr
Fin
En fait, on pourrait tout aussi bien économiser la variable carr en remplaçant
les deux avant-dernières lignes par :
Ecrire ("Son carré est : ", nb*nb )
C'est une question de style ; dans un cas, on privilégie la lisibilité de
l'algorithme, dans l'autre, on privilégie l'économie d'une variable.
Exercice 5.3
Ecrire un programme qui lit le prix HT d’un article, le nombre d’articles et le
taux de TVA, et qui fournit le prix total TTC correspondant. Faire en sorte que
des libellés apparaissent clairement.
Correction Exercice 5.3
Programme CalculPrixTTC
Var nb, pht, ttva, pttc : Réel
Début
Ecrire ("Entrez le prix hors taxes :" )
Lire (pht)
Ecrire ("Entrez le nombre d’articles :")
Lire (nb)
Ecrire ("Entrez le taux de TVA :")
Lire (ttva)
pttc ← nb * pht * (1 + ttva)
Ecrire ("Le prix toutes taxes est : ", pttc)
Fin
Exercice 5.4
Ecrire un algorithme utilisant des variables de type chaîne de caractères, et
affichant quatre variantes possibles de la célèbre « belle marquise, vos beaux
yeux me font mourir d’amour ». On ne se soucie pas de la ponctuation, ni des
majuscules.
CorrectionExercice 5.4
Programme ExempleChaine
Var Mot1, Mot2, Mot3, Mot4 : Chaine
Début
Mot1 ← "belle Marquise"
Mot2 ← "vos beaux yeux"
Mot3 ← "me font mourir"
Mot4 ← "d’amour"
Ecrire (Mot1 & " " & Mot2 & " " & Mot3 & " " & Mot4 )
Ecrire (Mot3 & " " & Mot2 & " " & Mot4 & " " & Mot1)
Ecrire (Mot2 & " " & Mot3 & " " & Mot1 & " " & Mot4)
Ecrire (Mot4 & " " & Mot1 & " " & Mot2 & " " & Mot3)
Fin
6. Les instructions de branchement conditionnel SI - SINON
6.1 Structure d’un Branchement conditionnel
Il n’y a que deux formes possibles pour un Branchement conditionnel ; la
première est la plus simple, la seconde la forme complete.
Ou condition est une expression dont la valeur est VRAI ou FAUX. Cela peut
donc être (il n’y a que deux possibilités) :
• une variable (ou une expression) de type booléen
• une condition
Dans la forme la plus simple, arrivé à la première ligne (Si… Alors) la
machine examine la valeur de la condition. Si cette condition a pour valeur
VRAI, elle exécute la série d’instructions. Cette série d’instructions peut être
très brève comme très longue, cela n’a aucune importance. En revanche, dans
le cas où la condition est fausse, l'ordinateur saute directement aux instructions
situées après le FinSi.
Dans le cas de l’instruction de branchement conditionnel complète, c'est à
peine plus compliqué. Dans le cas où la condition est VRAI, et après avoir
exécuté la série d'instructions 1, au moment où elle arrive au mot « Sinon », la
machine saute directement à la première instruction située après le « Finsi ».
De même, au cas où la condition a comme valeur « Faux », la machine saute
directement à la première ligne située après le « Sinon » et exécute
l’ensemble des « instructions 2 ». Dans tous les cas, les instructions situées
juste après le FinSi seront exécutées normalement.
6.2 Qu’est ce qu’une condition ?
opérateurs Symbole
Égal à =
Différent de <>
Strictement inférieur à <
Strictement supérieur à >
Inférieur ou égal à <=
Supérieur ou égal à >=
Énoncé des Exercices
Exercice 6.1
Ecrire un algorithme qui demande un nombre à l’utilisateur, et l’informe
ensuite si ce nombre est positif ou négatif (on laisse de côté le cas où le nombre
vaut zéro).
Programme test1
Var n : Entier
Début
Afficher( "Entrez un nombre : " )
Saisir( n )
Si n > 0 Alors
Afficher( "Ce nombre est positif " )
Sinon
Afficher ("Ce nombre est négatif" )
Finsi
Fin
6.3 Conditions composées
Certains problèmes exigent parfois de formuler des conditions qui ne peuvent pas
être exprimées sous la forme simple exposée ci-dessus. Par exemple dire que la
variable « Toto est inclus entre 5 et 8 ». revient à dire que « Toto est supérieur
à 5 et Toto est inférieur à 8 ». Il y a donc bien là deux conditions, reliées par ce
qu’on appelle un opérateur logique, le mot ET.
Comme nous l’avons vu plus haut, l’informatique met à notre disposition quatre
opérateurs logiques : ET, OU, NON, et XOR (OU Exclusif).
❑ Pour que "Condition1 ET Condition2" soit VRAI, il faut impérativement
que Condition1 soit VRAI et que Condition2 soit VRAI. Dans tous les autres cas,
"Condition 1 et Condition2" sera faux.
❑ Pour que "Condition1 OU Condition2" soit VRAI, il suffit que Condition1
soit VRAIE ou que Condition2 soit VRAIE. Le point important est que si
Condition1 est VRAIE et que Condition2 est VRAIE aussi, Condition1 OU
Condition2 reste VRAIE. Le OU informatique ne veut donc pas dire « ou bien »
❑ Le XOR (ou OU exclusif) fonctionne de la manière suivante. Pour que
"Condition1 XOR Condition2" soit VRAI, il faut que soit Condition1 soit
VRAI, soit que Condition2 soit VRAI. Si toutes les deux sont fausses, ou que
toutes les deux sont VRAI, alors le résultat global est considéré comme FAUX.
Le XOR est donc l'équivalent du "ou bien" du langage courant.
❑ le NON inverse une condition : NON(Condition1) est VRAI si Condition1
est FAUX, et il sera FAUX si Condition1 est VRAI.
Exercice 6.2
Ecrire un algorithme qui demande deux nombres à l’utilisateur et l’informe
ensuite si leur produit est négatif ou positif (on laisse de côté le cas où le
produit est nul). Attention toutefois : on ne doit pas calculer le produit des
deux nombres.
Programme test2
Var m, n : Entier
Début
Afficher ("Entrez deux nombres : " )
Saisir (m, n )
Si (m > 0 ET n > 0) OU (m < 0 ET n < 0) Alors
Afficher ("Leur produit est positif" )
Sinon
Afficher ( "Leur produit est négatif " )
Finsi
Fin
Exercice 6.3
Ecrire un algorithme qui demande trois lettres à l’utilisateur et l’informe
ensuite s’ils sont rangés ou non dans l’ordre alphabétique.
Programme test3
Var a, b, c : Caractère
Début
Afficher( "Entrez successivement trois lettres : " )
Saisir(a, b, c )
Si a < b ET b < c Alors
Afficher( "Ces lettres sont classés alphabétiquement " )
Sinon
Finsi
Fin
6.4 Branchement conditionnel imbriqués
Programme TemperatureEau_2
Var Temp : Entier
Début
Afficher ("Entrez la température de l’eau :")
Saisir( Temp)
Si Temp < =0 Alors
Afficher ("C’est de la glace")
Sinon
Si Temp < 100 Alors
Afficher ("C’est du liquide")
Sinon
Afficher ("C’est de la vapeur" )
Finsi
Finsi
Fin
Nous avons fait des économies : au lieu de devoir taper trois conditions,
dont une composée, nous n’avons plus que deux conditions simples. Mais
aussi, et surtout, nous avons fait des économies sur le temps d’exécution de
l’ordinateur. Si la température est inférieure à zéro, celui-ci écrit dorénavant «
C’est de la glace » et passe directement à la fin, sans être ralenti par l’examen
d’autres possibilités (qui sont forcément fausses).
Cette deuxième version n’est donc pas seulement plus simple à écrire et
plus lisible, elle est également plus performante à l’exécution.
Les structures de tests imbriqués sont donc un outil indispensable à la
simplification et à l’optimisation des algorithmes.
Exercice 6.4
Ecrire un algorithme qui demande un nombre à l’utilisateur, et l’informe ensuite
si ce nombre est positif ou négatif (on inclut cette fois le traitement du cas où
le nombre vaut zéro).
Programme statuNombre_2
Var n : Entier
Début
Afficher("Entrez un nombre : ")
Saisir(n)
Si n < 0 Alors
Afficher("Ce nombre est négatif")
Sinon
Si n = 0 Alors
Afficher("Ce nombre est nul")
Sinon
Afficher("Ce nombre est positif")
Finsi
Finsi
Fin
Exercice 6.5
Ecrire un algorithme qui demande deux nombres à l’utilisateur et l’informe
ensuite si le produit est négatif ou positif (on inclut cette fois le traitement du
cas où le produit peut être nul). Attention toutefois, on ne doit pas calculer le
produit !
Programme test2v2
Var m, n : Entier
Début
Afficher("Entrez deux nombres : " )
Saisir(m, n)
Si m = 0 OU n = 0 Alors
Afficher("Le produit est nul")
Sinon
Si (m < 0 ET n < 0) OU (m > 0 ET n > 0) Alors
Afficher ("Le produit est positif")
Sinon
Afficher("Le produit est négatif")
Finsi
Finsi
Fin
Exercice 6.6
Ecrire un algorithme qui demande l’âge d’un enfant à l’utilisateur.
Ensuite, il l’informe de sa catégorie :
❖ "Poussin" de 6 à 7 ans
❖ "Pupille" de 8 à 9 ans
❖ "Minime" de 10 à 11 ans
❖ "Cadet" après 12 ans
Programme CategoriEnfant
Var age : Entier
Début
Afficher("Entrez l’âge de l’enfant : ")
Saisir(age)
Si age >= 12 Alors
Afficher("Catégorie Cadet")
Sinon
Si age >= 10 Alors
Afficher("Catégorie Minime")
Sinon
Si age >= 8 Alors
Afficher( "Catégorie Pupille")
Sinon
Si age >= 6 Alors
Afficher("Catégorie Poussin ")
Finsi
Finsi
Finsi
Finsi
Fin
Programme EquationSecondDegré
Var a, b , c : Entier
d, x1, x2 :Réel
Début
Afficher( "Entrez le coefficient a : " )
Saisir( a)
Afficher( "Entrez le coefficient b : " )
Saisir( b)
Afficher("Entrez le coefficient c : " )
Saisir( c)
d b^2 - 4*a*c
Si d < 0 Alors
Afficher( "Pas de solution« )
Sinon
Si d = 0 Alors
x1 -b/2*a
x2 -b/2*a
Afficher(" x1= ",x1 )
Afficher( " x2= ",x2)
Sinon
x1 (-b - racine(d))/2*a
x2 (-b + racine(d))/2*a
Afficher(" x1= ",x1 )
Afficher(" x2= ",x2)
Finsi
Finsi
Fin
7. Structure Selon
La structure Selon permet de choisir l’instruction (ou ensemble
d’instructions) à exécuter en fonction de la valeur ou de l'intervalle de valeur
d'une variable ou d'une expression. Cette structure permet de remplacer
avantageusement une succession de structures Si…Alors. La syntaxe de cette
structure est :
Programme Robot
Var couleur : chaine
Début
Ecrire "Entrez la couleur "
Lire couleur
Selon couleur Faire
Vert : Ecrire "Passer"
Répéter
Action 1
Action 2
etc.
Jusqu’à Condition
Action 1, Action 2, … peut être :
- - une instruction
-- un ensemble d’instructions
-- un algorithme
La condition est testée après l’exécution des l’actions définies (action 1, action 2,etc.).
Cette boucle est utilisée lorsque le corps de la boucle doit être exécuter au moins une fois.
Exemple : Ecrire un programme qui permet d’afficher la table des carrées de 1 à 5
1^2=1, 2^2= 4, 3^2 = 9, 4^2 = 16, 5^2 = 25
Programme carré
Var
nb : entier
Début
nb 1
Répéter
Ecrire nb, « ^2= » nb*nb
nb nb +1
Jusqu’à nb = 6
Fin
10. La Boucle ou structure répétitive Pour
Algorithmes et Structures de
Données 2
Dr. A . SIDIBE
Structure de données
Une structure de données est un moyen particulier de stocker et d'organiser des données dans un ordinateur
afin qu'elles puissent être utilisées efficacement.
Différents types de structures de données sont adaptés à différents types d'applications, et certains sont
hautement spécialisés pour des tâches spécifiques.
Les structures de données fournissent un moyen de gérer efficacement d'énormes quantités de données,
telles que de grandes bases de données et des services d'indexation Internet. En général, des structures de
données efficaces sont essentielles pour concevoir des algorithmes efficaces.
Aperçue des structures de données
❑ Une structure de données de tableau stocke un certain nombre d'éléments du même type dans un ordre
spécifique. Ils sont accessibles en utilisant un entier pour spécifier quel élément est requis (bien que les
éléments puissent être de presque n'importe quel type). Les tableaux peuvent être de longueur fixe ou
extensibles.
❑ Enregistrement (également appelé tuple ou struct) Les enregistrements font partie des structures de
données les plus simples. Un enregistrement est une valeur qui contient d'autres valeurs, généralement
sous forme de nombre et de séquence fixes et généralement indexées par noms. Les éléments des
enregistrements sont généralement appelés champs ou membres.
❑ Un hachage, un dictionnaire ou une carte est une variante plus flexible d'un enregistrement, dans
laquelle des paires nom-valeur peuvent être ajoutées et supprimées librement.
❑ Union. Une définition de type d'union spécifiera lequel parmi un certain nombre de types primitifs
autorisés peut être stocké dans ses instances, par ex. "float ou long integer". Contraste avec un
enregistrement, qui pourrait être défini pour contenir un flottant et un entier; alors que, dans une union,
il n'y a qu'une seule valeur à la fois.
❑ Un ensemble est une structure de données abstraite qui peut stocker des valeurs spécifiques, sans ordre
particulier et sans valeurs répétées. Les valeurs elles-mêmes ne sont pas extraites des ensembles, on teste
plutôt une valeur d'appartenance pour obtenir un booléen "in" ou "not in".
❑ Un objet contient un certain nombre de champs de données, comme un enregistrement, ainsi qu'un certain
nombre de fragments de code de programme pour y accéder ou les modifier. Les structures de données ne
contenant pas de code, comme celles ci-dessus, sont appelées structures de données anciennes.
Beaucoup d'autres sont possibles, mais ils ont tendance à être d'autres variations et composés de ce qui
précède.
Principes de base
Les structures de données sont généralement basées sur la capacité d'un ordinateur à récupérer et à stocker des
données à n'importe quel endroit de sa mémoire, spécifié par une adresse - une chaîne de bits qui peut être elle-
même stockée en mémoire et manipulée par le programme. Ainsi, les structures de données d'enregistrement et
de tableau sont basées sur le calcul des adresses d'éléments de données avec des opérations arithmétiques;
tandis que les structures de données liées sont basées sur le stockage des adresses d'éléments de données dans la
structure elle-même. De nombreuses structures de données utilisent les deux principes, parfois combinés de
manière non triviale (comme dans la liaison XOR).
L'implémentation d'une structure de données nécessite généralement l'écriture d'un ensemble de procédures qui créent et
manipulent des instances de cette structure. L'efficacité d'une structure de données ne peut être analysée séparément de ces
opérations.
Cette observation motive le concept théorique d'un type de données abstrait, une structure de données qui est définie
indirectement par les opérations qui peuvent être effectuées sur elle, et les propriétés mathématiques de ces opérations (y
compris leur coût en espace et en temps).
Les Tableaux
Type de données de tableau
Un type de tableau est un type de données destiné à décrire une collection d'éléments (valeurs ou variables),
chacun sélectionné par un ou plusieurs indices (clés d'identification) qui peuvent être calculés au moment de
l'exécution par le programme. Une telle collection est généralement appelée une variable de tableau, une
valeur de tableau ou simplement un tableau. Par analogie avec les concepts mathématiques de vecteur et de
matrice, les types de tableaux avec un et deux indices sont souvent appelés respectivement type de vecteur et
type de matrice.
Une structure de données de tableau ou simplement un tableau est un ensemble d'éléments de même type
désignés par un identificateur unique ; chaque élément est repéré par un indice précisant sa position au sein
de l'ensemble. Au lieu de déclarer des variables individuelles, telles que nombre0, nombre1, ... et nombre99,
vous déclarez une variable de tableau telle que des nombres et utilisez les nombres [0], les nombres [1] et ...,
les nombres [99] pour représenter variables individuelles. Un élément spécifique d'un tableau est accessible
par un indice.
Tous les tableaux sont constitués d'emplacements mémoire contigus. L'adresse la plus basse correspond au
premier élément et l'adresse la plus élevée au dernier élément.
Les tableaux sont analogues aux concepts mathématiques de vecteurs et matrices. En effet, les tableaux
avec un ou deux indices sont souvent appelés respectivement vecteurs ou matrices. Les tableaux sont
souvent utilisés pour implémenter des tables, en particulier des tables de recherche; le mot table est parfois
utilisé comme synonyme de tableau.
Les tableaux sont parmi les structures de données les plus anciennes et les plus importantes, et sont utilisés
par presque tous les programmes. Ils sont également utilisés pour implémenter de nombreuses autres
structures de données, telles que des listes et des chaînes.
Applications des Tableaux
Les tableaux sont utilisés pour implémenter des vecteurs et des matrices mathématiques, ainsi que d'autres
types de tableaux rectangulaires. De nombreuses bases de données, petites et grandes, se composent (ou
incluent) des tableaux unidimensionnels dont les éléments sont des enregistrements.
Les tableaux sont utilisés pour implémenter d'autres structures de données, telles que des tas, des tables de
hachage, des deques, des files d'attente, des piles, des chaînes et des listes virtuelles.
Déclaration de tableaux
Pour déclarer un tableau en C, on spécifie le type des éléments et le nombre d'éléments requis par
un tableau comme suit:
C'est ce qu'on appelle un tableau a une dimension. Le arraySize doit être une constante entière supérieure à
zéro et le type peut être n'importe quel type de données C valide.
Par exemple, pour déclarer un tableau de 10 éléments appelé TableauA de type double, on utilise
instruction suivante:
double TableauA[10];
Ici, TableauA est un tableau de variables qui est suffisant pour contenir jusqu'à 10 nombres de type double.
Initialisation des tableaux
On peut initialiser un tableau en C un par un ou en utilisant une seule instruction comme suit:
Le nombre de valeurs entre accolades {} ne peut pas être supérieur au nombre d'éléments que nous déclarons
pour le tableau entre crochets []. Si vous omettez la taille du tableau, un tableau juste assez grand pour contenir
l'initialisation est créé. Par conséquent, si vous écrivez
double TableauA[] = {1000.0, 2.0, 3.4, 7.0, 50.0};
Vous allez créer exactement le même tableau que vous l'avez fait dans l'exemple précédent. Voici un exemple
pour affecter un seul élément du tableau.
TableauA[4] = 50.0;
L'instruction ci-dessus attribue au 5e élément du tableau une valeur de 50,0. Tous les tableaux ont 0 comme
index de leur premier élément qui est également appelé l'index de base et le dernier index d'un tableau sera la
taille totale du tableau moins 1. Ci-dessous est la représentation picturale du tableau dont nous avons discuté
ci-dessus. TableauA
Accès aux éléments du tableau
Un élément est accessible en indexant le nom du tableau. Cela se fait en plaçant l'index de l'élément entre
crochets après le nom du tableau. Par exemple
L'instruction ci-dessus prendra le 10e élément du tableau et attribuera la valeur à la variable de salary. L'exemple
suivant montre comment utiliser les trois concepts mentionnés ci-dessus, à savoir. déclaration, affectation et accès
aux tableaux.
#include <stdio.h> Lorsque le code ci-contre est compilé et
exécuté, il produit le résultat suivant
int main () {
return 0;
}
Tableaux a multiple dimensions
Le langage de programmation C autorise les tableaux multidimensionnels. Voici la forme générale d'une
déclaration de tableau multidimensionnel
type name[size1][size2]...[sizeN];
Où type peut être n'importe quel type de données C valide et arrayName sera un identificateur C valide.
Un tableau à deux dimensions peut être considéré comme un tableau qui aura x nombre de lignes et y
nombre de colonnes.
Un tableau à deux dimensions a, qui contient trois lignes et quatre colonnes peut être affiché comme suit:
Ainsi, chaque élément du tableau a est identifié par un nom d'élément de la forme a [i] [j], où 'a' est le nom du tableau,
et 'i' et 'j' sont les indices qui identifient de manière unique chaque élément dans ‘a’.
Les tableaux multidimensionnels peuvent être initialisés en spécifiant des valeurs entre crochets pour chaque ligne. Voici
un tableau avec 3 lignes et chaque ligne a 4 colonnes.
int a[3][4] = {
{0, 1, 2, 3} , /* initialiseurs pour la ligne indexée par 0*/
{4, 5, 6, 7} , /* initialiseurs pour la ligne indexée par 1*/
{8, 9, 10, 11} /* initialiseurs pour la ligne indexée par 2*/
};
Les accolades imbriquées, qui indiquent la ligne voulue, sont facultatives. L'initialisation suivante est
équivalente à l'exemple précédent:
int a[3][4] = {0,1,2,3,4,5,6,7,8,9,10,11};
for ( j = 0; j < 2; j++ ) { Comme expliqué ci-dessus, vous pouvez avoir des
printf("a[%d][%d] = %d\n", i,j, a[i][j] ); tableaux avec n'importe quel nombre de
} dimensions, bien qu'il soit probable que la plupart
} des tableaux que vous créez soient d'une ou deux
dimensions.
return 0;
}