Aller au contenu
M02 · B. Formuler un traitement

Structurer les données : chaînes et tableaux

Manipuler des chaînes de caractères et des tableaux à une ou deux dimensions, les parcourir avec une boucle et y rechercher une valeur.

1Situer

Le formateur d'un groupe de 30 stagiaires veut calculer la moyenne de la classe, trouver la meilleure note et chercher si un stagiaire a obtenu exactement 20. Déclarer 30 variables note1, note2... note30 serait absurde : il faut une seule structure qui range toutes les notes.

2Comprendre

Parcourir un tableau avec une boucle Pour
Pour i ← 1 jusqu'à 6 : S ← S + T[i] 1 1 2 4 3 9 4 16 5 25 6 36 i S = 0 Somme : 91

Le tableau T contient 6 cases, numérotées de 1 à 6. La somme S part de 0.

1 / 8

Un tableau range plusieurs valeurs du même type sous un seul nom. Chaque case est repérée par son indice.

Variables
  Note : tableau[1..30] de réel     // 30 cases, indices 1 à 30
  M    : tableau[1..3, 1..4] de entier   // 3 lignes, 4 colonnes
Début
  Note[1] ← 12.5
  M[2, 3] ← 7

Parcourir un tableau

On parcourt un tableau avec une boucle Pour dont le compteur sert d’indice. C’est la base de presque tous les traitements : somme, moyenne, maximum, comptage.

S ← 0
Pour i ← 1 jusqu'à 30 Faire
  S ← S + Note[i]
FinPour

Rechercher une valeur

Pour chercher une valeur, on parcourt le tableau et on s’arrête dès qu’on l’a trouvée, avec un TantQue qui combine deux conditions : il reste des cases et on n’a pas encore trouvé.

Les chaînes de caractères

Une chaîne est une suite de caractères entre guillemets : "Bienvenue". L’opérateur & les concatène (les met bout à bout) : "Bonjour " & prenom.

Les erreurs fréquentes

  1. Sortir du tableau : Note[31] n’existe pas si le tableau va de 1 à 30.
  2. Oublier d’initialiser la somme ou le compteur avant la boucle.
  3. Confondre l’indice et la valeur : i est la position, Note[i] est la note.
Exemple simple

Un tableau, c'est une boîte à œufs

Une seule boîte, plusieurs cases numérotées. Pour prendre le 3e œuf, on va à la case 3. Dans un tableau, chaque case a un indice et on y accède directement.

Exemple simple

Les notes d'un stagiaire

Au lieu de créer note1, note2, note3, note4, on range les quatre notes dans un tableau et on fait une boucle pour calculer la somme.

notes : tableau[1..4] de réel ← [12, 15, 9, 14]
somme ← 0
Pour i ← 1 jusqu'à 4 Faire
    somme ← somme + notes[i]
FinPour
Ecrire(somme / 4)   // 12.5

3Manipuler

Avancez pas à pas et regardez le tableau T se remplir case par case dans le panneau Variables, puis la somme se construire au second parcours.
Autres exemples :Plein écran

4Pratiquer

Exercice 1 · Moyenne d'une classe

Déclarez un tableau de 5 notes réelles, faites saisir les notes, puis affichez la moyenne de la classe.

Voir le corrigé
Algorithme MoyenneClasse
Variables
  N : tableau[1..5] de réel
  i : entier
  s : réel
Début
  s ← 0
  Pour i ← 1 jusqu'à 5 Faire
    Ecrire("Note ", i, " : ")
    Lire(N[i])
    s ← s + N[i]
  FinPour
  EcrireAvecSaute("Moyenne : ", s / 5)
Fin

Exercice 2 · Compter les admis

À partir du même tableau, comptez combien de stagiaires ont au moins 10.

Voir un indice

Utilisez un compteur initialisé à 0, augmenté de 1 dans un Si à l'intérieur de la boucle.

Voir le corrigé
nb ← 0
Pour i ← 1 jusqu'à 5 Faire
  Si N[i] >= 10 Alors
    nb ← nb + 1
  FinSi
FinPour
EcrireAvecSaute(nb, " stagiaires admis")

Exercice 3 · Message de bienvenue

Lisez le prénom et le nom d'un stagiaire (chaînes) et affichez « Bienvenue Prénom NOM » en utilisant la concaténation &.

Voir le corrigé
Algorithme Bienvenue
Variables
  prenom, nom, message : chaîne
Début
  Lire(prenom)
  Lire(nom)
  message ← "Bienvenue " & prenom & " " & nom
  EcrireAvecSaute(message)
Fin

5Vérifier

1. Dans T : tableau[1..6] de entier, quel est l'indice du dernier élément ?
2. Pour parcourir tout un tableau de taille connue, on utilise de préférence...
3. Dans M : tableau[1..3, 1..4] de entier, combien y a-t-il de cases ?