UEO11 Cours/TDn°3 – Tableaux - 2007-2008
Table des matières
4- Tableaux...1
4.1 Utilité et utilisation du tableau ...1
4.2 Les tableaux en algorithme...1
Syntaxe à utiliser :...1
Exemples d'utilisation :...1
4.3 Les tableaux en C...1
Syntaxe à utiliser :...2
Exemples d'utilisation :...2
5- Spécialités du C (introduction) <!> ...3
5.1 Les pointeurs <!>...3
5.2 Les fonctions ...3
Passage en mode donnée :...3
Passage en mode résultat :...3
5.3 Les structures <!>...3
Syntaxe à utiliser :...3
Exemples d'utilisation :...3
4- Tableaux
4.1 Utilité et utilisation du tableau
Ce sont des structures de données permettant de rassembler simplement un nombre important de données de même type et de les conserver en mémoire. Elles sont utiles nottament lorsque le problème traité fait appel à un “contexte” mémoriel important.
Exemples :
1) Saisir une suite donnée de nombre puis afficher cette suite après avoir divisé tous les nombres par la valeur maximale de la suite
2) Chaine de caractères
3) Cas d'une matrice de pixels (utilisé fréquemment en traitement d'image, pour des images satellites ou pour des images bitmap).
4.2 Les tableaux en algorithme
Comme toute les structures que nous avons vues, ils font appel à un formalisme particulier pour leur écriture et pour leur parcours :
Syntaxe à utiliser :
La déclaration d'un tableau utilise la syntaxe suivante : id_tabl : tableau[1, 35] de type id_tabl: identifiant du tableau
type : type des données
[indice_depart, indice_arrivée] : les cases du tableau sont numérotées de indice_depart à indice_arrivée.
Exemple :
chaine : tableau[1, 28] de caractères
permet de déclarer un tableau de caractères dont les indices vont de 1 à 28.
Pour accéder à une case donnée d'un tableau, que ce soit en lecture ou en écriture, on utilise la syntaxe suivante :
id_tabl [ indice ]
id_tabl: identifiant du tableau indice: indice de la case concernée Exemple :
chaine[12]
référence la case d'indice 12 du tableau chaine.
matrice : tableau[1,10 ; 1,10] d'entiers ...
matrice[1][12]
référence la case située à la 12ème colonne de la 1ere ligne du tableau matrice.
Les tableaux par l'exemple
Voyons ensemble l'utilisation de tableaux à travers un exemple. Considérons, pour un tableau donné, un algorithme permettant de saisir les cases de ce tableau Algorithme SaisieTableau
Entrées :
valeurs : tableau [1,MAX] d'entiers Sorties :
Constantes:
(MAX:entier) ← 100 Variables
nbVal, ind :entier Début
Ecrire('Combien de valeur fautil saisir ?') Lire(nbVal)
Pour ind allant de 1 à nbVal faire Début
Ecrire('Valeur n°',ind,' ?') Lire(valeurs[ind])
Fin FinPour Fin
Exercice dirigé :
Q: Quel problème peut se poser ici ?
R: Il peut y avoir ici un “dépassement de capacité” si la valeur saisie par l'utilisateur est supérieure au nombre de cases maximal du tableau.
Q: Faites les modifications permettant d'afficher chaque contenu et chaque indice à la fin de la saisie.
R: C'est juste rajouter la boucle Pour suivante après la boucle de saisie.
4.3 Les tableaux en C
Cette partie a pour but de montrer comment l'on met en oeuvre ces structures dans le langage de programmation C
Syntaxe à utiliser :
La déclaration d'un tableau utilise la syntaxe suivante : type id_tabl [ taille ] type : type des données
id_tabl: identifiant du tableau
[taille] : les cases du tableau sont numérotées de 0 à taille-1 Exemple
char chaine[28] ;
permet de déclarer un tableau de caractères dont les indices vont de 0 à 27.
Pour accéder à une case donnée d'un tableau, que ce soit en lecture ou en écriture, on utilise la syntaxe suivante :
id_tabl [ indice ]
id_tabl: identifiant du tableau indice: indice de la case concernée Exemple :
chaine[12]
référence la case d'indice 12 du tableau chaine donc la 13ème.
int matrice[12][12];
...
matrice[0][11]
référence la case située à la 12ème colonne de la 1ere ligne du tableau matrice.
Exemples d'utilisation :
Voyons ensemble l'utilisation de tableaux à travers plusieurs exemples.
On rappelle tout d'abord l'algorithme utilisé pour la saisie des cases d'un tableau d'entiers :
Algorithme SaisieTableau Entrées :
valeurs : tableau [1,MAX] d'entiers Sorties :
Constantes:
(MAX:entier) ← 100 Variables
nbVal, ind :entier Début
Ecrire('Combien de valeur fautil saisir ?') Lire(nbVal)
Pour ind allant de 1 à nbVal faire Début
Ecrire('Valeur n°',ind,' ?') Lire(valeurs[ind])
Fin FinPour Fin
Traduisons cet algorithme en langage C :
#include<stdio.h>
#define MAX 100 //Permet de définir une constante main()
{
int valeurs[MAX], nbVal, ind;
printf(“Combien de valeurs faut-il saisir ?\n”);
scanf(“%d”, &nbVal);
scanf(“%d”,&valeurs[ind]);
} }
5- Spécialités du C (introduction) <!>
<!> Attention, chapître facultatif, à ne faire que s'il reste du temps <!>
5.1 Les pointeurs <!>
5.2 Les fonctions
Passage en mode donnée : Passage en mode résultat :
5.3 Les structures <!>
Syntaxe à utiliser : Exemples d'utilisation :