Lycée Léonard de Vinci Section STS IG - AR
Cours/TD 3 26 Septembre
Objectifs
Tableau
Structure de données complexes
Un tableau est une collection de données de type compatibles.
Exemple :
notes : tableau[100] d'entier
// déclaration d'une variable de type collection d'entiers
Vocabulaire : Soit notes un tableau en mémoire.
Variable de type tableau éléments du tableau
notes : [0, 3, 11, 4, 5 , 5, 5, 6, 17, 0, 15]
index: 0 1 2 3 4 5 6 7 8 9 10
indices du tableau (les indices désignent la position des éléments)
ATTENTION : ne pas confondre indice (position) d'un tableau avec un de ses éléments !
Les fonctions courantes sur un tableau sont (CRUD) :
Create : c'est l'instruction de déclaration et/ou d'initialisation
Ex:
(php) : $notes = array() // tableau à zéro éléments
(java) : int[ ] notes; // déclaration d'un tableau d'entier
notes = int[100]; // initialisation (100 éléments, initialisés à 0)
Retrieve : sur une liste non triée, il faut parcourir un à un les éléments. Pour cela il faut
connaître le nombre d'éléments du tableau :
Ex:
(php) count($notes)
1
(java) notes.length
ATTENTION : il faut parfois distinguer la capacité physique du tableau (donnée par les
fonctions count ou length) d'une capacité logique (le nombre d'éléments réellement géré
par l'application à un instant donné)
Update : Une mis à jour d'un élément d'un tableau nécessite 3 opérations
1. obtenir la valeur actuellement par son indice
2. modifier cette valeur
3. affecter la nouvelle valeur dans le tableau à l'indice donné
Ex 1:
(php) $notes[0] = $notes[0] + 1;
(java) notes[0] = notes[0] + 1;
Ex 1bis:
(php) $notes[0] += 1;
(java) notes[0]++;
Delete : Une opération complexe, on distingue souvent deux versions :
1/ suppression logique
on remplace sa valeur par une valeur « nulle » que l'on évitera lors de
recherches.
2/ suppression physique
on tasse d'une position vers la gauche, les éléments à droite de l'élément à
supprimer, ce qui a pour effet d'écraser la valeur à supprimer, et de diminuer
de 1 le nombre d'éléments dans le tableau.
2
EXERCICES
1/ Réservations (algo avec taille physique == taille logique)
On souhaite calculer le nombre de réservés à un séminaire. Pour cela, un sous-programme est
conçu. A partir de son squelette (ci-après), compléter le tableau
Puis, compléter le programme :
Structure de données
tableauPlaceReserve[0..RESERVERMAX-1] : tableau de booléen
// l'indice est le numéro de chaise,
// la valeur à l'indice indique si la place est réservée ou non
Algorithme
Fonction nbRéservés (donnée tabRes [0..TAILMAX-1] : tableau de boolén) : entier
Début
i : entier
x : entier
x 0
Fin
3
2/ Réservations (algo avec taille physique != taille logique)
On souhaite calculer le nombre de réservés à un séminaire. Pour cela, un sous-programme est
conçu. A partir de son squelette (ci-après), compléter le tableau
Puis, compléter le programme :
Structure de données
tableauPlaceReserve[0..TAILMAX-1] : tableau de booléen
// l'indice est le numéro de chaise,
// la valeur à l'indice indique si la place est réservée ou non
Algorithme
Fonction nbRéservés (donnée tabRes [0..TAILMAX-1] : tableau de boolén, nbPlaces : entier) : entier
Début
i : entier
x : entier
x 0
Fin
4
1 / 4 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !