Les tableaux à une dimensions
Les tableaux
Un tableau est une structure de données statiques contenant un nombre de valeurs déterminées à l'avance. Il s'agit d'une séquence finie d'éléments auxquels on peut accéder directement sur base de leurs positions. Dans un tableau, tous les éléments doivent être du même type.
Un tableau est représenté en mémoire sous la forme de cellules contiguës. Il n'est pas possible de créer une case ou d'en supprimer une. On dit qu'ils sont statiques. En raison de ces limitations, tous les langages de programmation ne permettent pas d'utiliser des variables pour concevoir des tableaux.
Les tableaux à une seule dimension sont aussi appelés des vecteurs. On peut accéder à une case d'un vecteur en donnant le numéro d'indice. Il est important de savoir que la numérotation de l'index commence à 0. Ainsi, dans le TABLEAU t: 10 ENTIER ci-dessous, pour accéder à la valeur 23 positionné dans la case en indice 3, il faut utiliser la notation t[3].
Indices | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
---|---|---|---|---|---|---|---|---|---|---|
Valeurs | 49 | 13 | 94 | 23 | 60 | 90 | 23 | -9 | 94 | 4321 |
DÉBUT CONSTANTE N <- 10 TABLEAU t: N ENTIER VARIABLE i: ENTIER POUR i DE 0 À N-1: t[i] <- i FIN POUR FIN
Il faut savoir que les tableaux sont considérés comme des types complexes. Ils doivent toujours être passés par références lorsque vous utilisez des fonctions. Tous les langages de programmations ne permettent pas de renvoyer un type complexe comme valeur de retour de fonction.
PROCEDURE FILL(↕t: TABLEAU ENTIER, N: ENTIER) VARIABLE i: ENTIER POUR i DE 0 À N-1: t[i] <- i FIN POUR FIN PROCEDURE
Exercices
- Écrivez une procédure qui initialise un tableau de N cases selon les valeurs données par l'utilisateur.
PROCEDURE FILL(↕t: TABLEAU ENTIER, N: ENTIER) VARIABLE i: ENTIER POUR i DE 0 À N-1: LIRE t[i] FIN POUR FIN PROCEDURE
- Écrivez une procédure qui affiche un tableau de N cases
PROCEDURE PRINT(↕t: TABLEAU ENTIER, N: ENTIER) VARIABLE i: ENTIER POUR i DE 0 À N-1: ÉCRIRE t[i] FIN POUR FIN PROCEDURE
- Écrivez une fonction qui calcule la moyenne d'un tableau de N cases.
FONCTION AVG(↕t: TABLEAU ENTIER, N: ENTIER) VARIABLE i, sum: ENTIER VARIABLE sum: RÉEL sum <- 0.0 POUR i DE 0 À N-1: sum <- sum + t[i] FIN POUR RETOURNER sum / N FIN FONCTION
- Écrivez une fonction qui déplace toutes les valeurs d'un tableau pour obtenir sa symétrie. Exemple :
PROCÉDURE SYM(↕t: TABLEAU ENTIER, N: ENTIER) VARIABLE i, tmp: ENTIER POUR i DE 0 À N/2: tmp <- t[i] t[i] <- t[N-i-1] t[N-i-1] <- tmp FIN POUR FIN PROCÉDURE
- Écrivez une procédure qui décale toutes les valeurs d'un tableau d'une case vers la droite. La première case du tableau est remplie par la dernière case du tableau. Exemple:
PROCÉDURE RSHIFT(↕t: TABLEAU ENTIER, N: ENTIER) VARIABLE i, a, b: ENTIER a <- t[0] POUR i DE 0 À N-1: b <- t[i+1 % N] t[i+1 % N] <- a a <- b FIN POUR FIN PROCÉDURE
PROCÉDURE RSHIFT(↕t: TABLEAU ENTIER, N: ENTIER) VARIABLE i, tmp: ENTIER tmp <- t[N-1] POUR i DE N-1 À 1: t[i] <- t[i-1] FIN POUR t[0] <- tmp FIN PROCÉDURE
- Écrivez une procédure qui décale toutes les valeurs d'un tableau du nombre de cases souhaitées. Pour cet exercice, essayez de décaler le tableau directement du bon nombre de cases.
PROCEDURE ROT_X(↕t: TABLEAU ENTIER, N: ENTIER, K: ENTIER) VARIABLES i, j, x, y, r: ENTIER r <- PGCD(n, k) POUR i DE 0 À r: x <- t[i] REPETER j <- (j+k) % n y <- t[j] t[j] <- x x <- y TANT QUE j != i FIN POUR FIN PROCEDURE
- Écrivez une fonction qui dédouble le nombre de cases disponible d'un tableau.
Cet exercice n'est pas possible, puisqu'on ne peut utiliser que des constantes pour concevoir un tableau statique.
- Last Author
- kossolax
- Last Edited
- Nov 30 2020, 6:30 PM