Algo CM3

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 15

Les tableaux

Ensemble de données du même type


Exemple de problème :
Saisir une suite de nombres, puis afficher cette suite après avoir divisé
tous les nombres par la valeur maximale de la suite.

Nécessité de conserver les nombres en mémoire

variable contenant une valeur 12

variable contenant une collection de valeurs du même type

tabVal contenant des les valeurs val 12 20 -30 1 2 56 -5


Les tableaux
Structure de données permettant d'effectuer un même
traitement sur des données de même nature.

tableau à une
dimension

tableau à deux
dimensions
Exemples d'applications
• Ensemble de valeurs entières,réelles, booléennes,....

• Ensemble de noms (type chaîne)

• Ensemble de caractères (type caractère)

• Ensemble d'adresses (type Adresse:nom, adresse, num


téléphone)

• Ensemble d'ouvrages
Traitements sur les tableaux
• On veut pouvoir :
– créer des tableaux
– ranger des valeurs dans un tableau
– récupérer, consulter des valeurs rangées dans
un tableau
– rechercher si une valeur est dans un tableau
– mettre à jour des valeurs dans un tableau
– modifier la façon dont les valeurs sont rangées
dans un tableau (par exemple : les trier de
différentes manières)
– effectuer des opérations entre tableaux :
comparaison de tableaux, multiplication,...
– ...
Définition du type
nom du indice
tableau du tableau

1 2 3 4 5 6

T1 23 11 -1 8 -29 15

contenu
du tableau
1 2 3 4 5 6 7

T2 t a b l e a u

Remarques :
1) Indices : en général, démarrage à 1, mais en C, démarrage à 0
2) Nombre d’octets occupés : dépend du type des valeurs enregistrées
Déclaration d'un tableau

Exemple : déclaration d'un tableau pouvant contenir jusqu'à 35 entiers

variable tab : tableau [1, 35] d'entiers

nom du tableau indices min et max


mot clé (taille)

type des éléments


Définition d'un type tableau

Exemple : déclaration d'un tableau type chaine contenant 10 caractères

type chaine = tableau [1,10] de caractères

Exemple : utilisation du type chaine pour déclarer des variables contenant


10 caractères

variables nom, prénom : chaine


Utilisation d'un tableau: les
indices
• Accès en écriture :
– Écrire(tab[2]) {le contenu du tableau à l’indice 2 est affiché à l’ écran}

• Accès en lecture :
– tab[4] ←1 {la valeur 1 est placée dans le tableau à l’indice 4}

– Lire (tab[3]) {la valeur entrée par l’utilisateur est enregistrée dans le
tableau à l’indice 3}

– Attention : tab ← 18 nom[2] ← 3


Tableaux à deux dimensions
1 2 3 4 5 6 7
1
1 3 5 7 9 11 13
2
0 2 4 6 8 10 12
3
11 25 29 36 27 24 20
tableau à 3 lignes et 7 colonnes


Déclaration: matrice: tableau[1,3][1,7] d'entiers

indices min et max


des lignes indices min et max
des colonnes
Tableaux à deux dimensions (suite)
1 2 3 4 5 6 7
1 1 3 5 7 9 11 13
2
0 2 4 6 8 10 12
3
11 25 29 36 27 24 20


Accès en écriture :
– Écrire(matrice[2,4]) {la valeur contenue en ligne 2 colonne 4 est affichée à
l’écran}
• Accès en lecture :
– Lire (matrice[1,7]) {la valeur fournie est enregistrée en ligne 1 colonne 7}
– Matrice[1,1] ← 20
Saisir les valeurs d'un tableau 1D

Algorithme SaisieTableau // {remplit un tableau avec nb valeurs entières}


constantes (TailleMAX : entier) ← 100
variables nb, i : entier
tab1D : tableau [1, TailleMAX] d'entiers
début
Écrire("Combien de valeurs sont à saisir?")
Lire (nb)
si (nb > TailleMAX) alors // {saisie impossible : la capacité du tableau est dépassée}
Écrire ("trop de valeurs à saisir")
sinon
pour i ← 1 à nb faire
Écrire ("Donner une valeur")
// {valeur à ranger dans la i-ème case du tableau}
Lire (tab1D[i])
fpour
fsi
fin
Saisie avec « drapeau »
Algorithme SaisieTableauAvecDrapeau
// {remplit un tableau tant qu'il y a des caractères à ranger, arrêt dès la saisie d'un '.'}
constantes (TailleMAX : entier) ← 100
(Drapeau:caractère) ← '.'
variables i : entier
tab1D : tableau [1, TailleMAX] de caractères
Car : caractère
début
Écrire("Tapez un caractère, ou ", DRAPEAU, "pour arrêter la saisie. ")
Lire (Car )
i←0
tant que (Car <> DRAPEAU et i < TailleMAX) faire
i←i+1
tab1D[i] ← Car
Écrire (" Tapez un autre caractère, ou ", DRAPEAU, "pour arrêter la saisie.")
Lire (Car )
Ftq
si (Car == DRAPEAU)
alors écrire ("Valeurs saisies intégralement.")
sinon écrire ("Trop de caractères à saisir, plus de place ! ")
Fsi
fin
Affichage d'un tableau
Algorithme affichageTableau
constantes (TailleMAX : entier) ← 100
(Drapeau:caractère ← '.'
variables i,j : entier
tab : tableau [1, TailleMAX] de caractères
Car : caractère
début
Écrire("Tapez un caractère, ou ", DRAPEAU, "pour arrêter la saisie. ")
Lire (Car )
i←0
tant que (Car <> DRAPEAU et i < TailleMAX) faire
i←i+1
tab1D[i] ← Car
Écrire (" Tapez un autre caractère, ou ", DRAPEAU, "pour arrêter la saisie.")
Lire (Car )
Ftq
Pour j ← 1 à i faire
Écrire (tab1D[j]) Partie affichage
Fpour
fin
Lecture d'un tableau 2D
Algorithme SaisieTableau2D
constantes (TailleMAX : entier) ← 100
variables nbLignes, nbColonnes, idxL, idxC : entiers
tab2D : tableau [1, TailleMAX ; 1, TailleMAX] d'entiers
Début
Écrire ("saisissez le nombre lignes") ;
Lire (nbLignes)
Écrire ("saisissez le nombre colonnes") ;
Lire (nbColonnes)
si (nbLignes > TailleMAX) ou (nbColonnes > TailleMAX)
alors écrire ("trop de valeurs à saisir")
sinon
pour idxL ← 1 à nbLignes faire
pour idxC ← 1 à nbColonnes faire
Écrire ("Ligne" , idxL, "colonne", idxC, " : ")
Lire (tab2D[idxL,idxC])
fpour
fpour
fsi
fin

Vous aimerez peut-être aussi