Tableaux : exercices

Sommaire

Index

Série d’exercices sur les tableaux

Dans cette série, pour chaque exercice, il est demandé de:

Reprendre la dernière version du modèle (modele.html) pour réaliser ces exercices.

Pour récupérer le fichier modele.html cliquer bouton-droit sur le lien et faire Enregistrer la cible du lien...

Enregistrer modele.html

Les exemples permettant d’utiliser le pseudo-JS sont donnés sur cette page de référence

Tableau 1: entiers

Écrire un algorithme qui déclare et initialise un tableau de 20 entiers en positionnant toutes les valeurs à -1

Tableau 2: notes de musique

Écrire un algorithme qui déclare et initialise un tableau représentant toutes les valeurs des notes de musiques (de Do à Si)

Tableau 3

Écrire un algorithme qui déclare et initialise un tableau de caractères contenant toutes les voyelles de l’alphabet.

Tableau 4: saisir des notes

Écrire un algorithme qui déclare et initialise un tableau de 9 notes et qui demande à l’utilisateur de saisir chacune d’elles.

Afficher ensuite ce tableau sous la forme:

Note 1: 12
...

Interprétation d’algorithme 1

Que fait l’algorithme suivant ?

VARIABLES
TABLEAU D'ENTIERS nombres[4]
ENTIER i
DEBUT
  POUR i allant de 0 à 4
    nombres[i] <-- i * i
  FIN POUR: i <-- i + 1
  POUR i allant de 0 à 4
    ECRIRE nombres[i]
  FIN POUR: i <-- i + 1
FIN

Peut-il être simplifié en obtenant le même résultat ?

Interprétation d’algorithme 2

Que fait l’algorithme suivant ?

VARIABLES
TABLEAU D'ENTIERS VAL[7]
ENTIER i
DEBUT
  VAL[0] <-- 0
  POUR i allant de 1 à 7
    VAL[i] <-- VAL[i - 1] + 2
  FIN POUR: i <-- i + 1
  POUR i allant de 1 à 7
    ECRIRE VAL[i]
  FIN POUR: i <-- i + 1
FIN

Peut-il être simplifié en obtenant le même résultat ?

Interprétation d’algorithme 3

Que fait l’algorithme suivant ?

VARIABLES
TABLEAU D'ENTIERS fifi[8]
ENTIER i
DEBUT
  fifi[0] <-- 0
  fifi[1] <-- 1
  POUR i allant de 2 à 8
    fifi[i] <-- fifi[i - 1] + fifi[i - 2]
  FIN POUR: i <-- i + 1
  POUR i allant de 2 à 8
    ECRIRE fifi[i]
  FIN POUR: i <-- i + 1
FIN

Peut-il être simplifié en obtenant le même résultat ?

Moyenne

Reprendre l’exercice tableau 4

Dimensionner un tableau

Ecrire un algorithme qui permet de saisir un nombre de valeurs non déterminé.

L’utilisateur doit d’abord saisir le nombre de valeurs à saisir.

Ensuite, l’utilisateur saisit ces valeurs qui sont stockées dans un tableau.

Enfin, l’algorithme affiche le nombre de valeurs négatives et le nombre de valeurs positives stockées dans ce tableau.

Recopier un tableau

Ecrire un algorithme permettant de saisir un tableau contenant 7 valeurs numériques puis de copier ces valeurs dans un second tableau

Redimensionner un tableau

Ecrire un algorithme permettant de:

Les deux phases principales sont à réaliser dans deux boucles différentes.

L’algorithme va ensuite afficher ce nouveau tableau

Exemple de tableau initial:

index 0 1 2 3
valeur 2 3 10 -16

Exemple de résultat:

index 0 1 2 3 4 5 6 7
valeur 2 4 3 9 10 100 -16 256
VARIABLE
ENTIER i , j, n
TABLEAU D'ENTIER tabInit, tabFinal

tabInit <-- ENTIER[n]
...

tabFinal <-- ENTIER[ 2 * n]

j <-- 0

POUR i allant de 0 à n
    tabFinal[j] <-- tabInit[i]
    j <-- j + 1

    tabFinal[j] <-- tabInit[i] * tabInit[i]
    j <-- j + 1
FIN POUR: i <-- i + 1

Variante 1:

POUR i allant de 0 à n
    j <-- i * 2
    tabFinal[j] <-- tabInit[i]
    j <-- j + 1
    tabFinal[j] <-- tabInit[i] * tabInit[i]
FIN POUR: i <-- i + 1

Variante 2:

POUR i allant de 0 à n
    j <-- i * 2
    tabFinal[j] <-- tabInit[i]
    j <-- 2 * i + 1
    tabFinal[j] <-- tabInit[i] * tabInit[i]
FIN POUR: i <-- i + 1

Variante 3:

POUR j allant de 0 à n
    tabFinal[j] <-- tabInit[ j / 2]
    tabFinal[j + 1] <-- tabFinal[j] * tabFinal[j]
FIN POUR: j <-- j + 2

Rechercher la plus grande valeur

Reprendre l’algorithme précédent et effectuer la recherche de la plus grande valeur dans le tableau résultat. Afficher cette valeur ainsi que son indice dans le tableau.

Tableaux multi-dimensionnels

Multi 1

Écrivez un algorithme remplissant un tableau de 6 sur 13, avec des zéros.

Pseudo-code

VARIABLES
TABLEAU D'ENTIERS VAL[6, 13]
ENTIER i, j
DEBUT
  POUR i allant de 0 à 6
    POUR j allant de 0 à 13
      VAL[i, j] <-- 0
    FIN POUR: j <-- j + 1
  FIN POUR: i <-- i + 1
FIN

Pseudo - JS

let val = new Array(6)
for(i = 0 ; i < LONGUEUR(val) ; i ++) {
  val[i] =  new Array(13)
  for(j = 0 ; j < LONGUEUR(val[0]) ; j ++) {
    val[i][j] = 0;
  }
}

for(i = 0 ; i < LONGUEUR(val) ; i ++) {
  for(j = 0 ; j < LONGUEUR(val[0]) ; j ++) {
    document.write(val[i][j]);
    document.write(" ");
  }
  document.write("<br>");
}

Javascript

let multi1 = []
for(i = 0 ; i < 6 ; i ++) {
  multi1[i] =  []
  for(j = 0 ; j < 13 ; j ++) {
    multi1[i][j] = 1;
  }
}
for(i = 0 ; i < multi1.length ; i ++) {
  for(j = 0 ; j < multi1[0].length ; j ++) {
    document.write(multi1[i][j]);
    document.write(" ");
  }
  document.write("<br>");
}

Multi 2

Quel résultat produira cet algorithme ?

Variables
Tableau d'Entier X[1, 2]
ENTIER i, j, val
DEBUT
  Val <-- 1
  Pour i <-- 0 à 1
   Pour j <-- 0 à 2
     X[i, j] <-- Val
     Val <-- Val + 1
   FIN POUR : j <-- j+1
  FIN POUR : i <-- i+1
  Pour i <-- 0 à 1
   Pour j <-- 0 à 2
     Ecrire X[i, j]
   FIN POUR : j <-- j+1
  FIN POUR : i <-- i+1
Fin

Multi 3

Quel résultat produira cet algorithme ?

Variables
Tableau d'entier  T[3, 1]
ENTIER x, y
Début
  Pour x <-- 0 à 3
   Pour y <-- 0 à 1
     T[x, y] <-- x + y
   FIN POUR : y <-- y+1
  FIN POUR : x <-- x+1
  Pour x <-- 0 à 3
   Pour y <-- 0 à 1
     Ecrire T[x, y]
   FIN POUR : y <-- y+1
  FIN POUR : x <-- x+1
Fin

Multi 4

Soit un tableau T à deux dimensions [12, 8] préalablement rempli de valeurs entières.

Écrire un algorithme qui recherche la plus grande valeur dans ce tableau.