Un logiciel polyvalent d'apprentissage de la programmation
Chapitre 1. Introduction
Chapitre 2. Le logiciel en bref
Chapitre 3. Premiers pas en algorithmique
Chapitre 4. Instructions conditionnelles
Chapitre 5. Boucles
Chapitre 6. Sous-programmes
Chapitre 7. Tableaux à une dimension
Chapitre 8. Tableaux à deux dimensions
8.1. Présentation
8.2. Travaux dirigés
8.3. Travaux pratiques
Chapitre 9. Enregistrements
Annexe : comment tester vos programmes ?
Page d'accueil Table des matières Niveau supérieur Page précédente Bas de la page Page suivante Démarrage du logiciel Webographie du module Glossaire du module

8.1. Présentation

Les tableaux à deux dimensions permettent de regrouper des informations de même nature et d'y accéder par deux indices entiers (un numéro de ligne et un numéro de colonne). On peut par exemple convenir de stocker les prix unitaires en colonne 1 et les quantités en colonne 2 si on souhaite modéliser un bon de commande (voir illustration en javascript) :

  1
(prixUnitaire)
2
(quantite)
1 0.8 2
2 0.95 1
3 2.5 1
... ... ...
n mat[n][1] mat[n][2]

Peut-on stocker le nom des articles dans une 3ième colonne ? La réponse est négative pour de nombreux langages de programmation, puisqu'on ne peut pas y mêler nombres et textes.

En occultant ce problème (qui n'en serait pas un en Larp), voici comment calculer le montant final de la commande à partir de ce tableau à 2 dimensions :

Programme Larp Programme Javascool
ÉCRIRE "nombre d'articles : "
LIRE n
\\ saisie du tableau
POUR i=1 JUSQU'À n FAIRE
  ÉCRIRE "prix unitaire : "
  LIRE mat[i][1]
  ÉCRIRE "quantite : "
  LIRE mat[i][2]
FINPOUR
\\ total de la commande
som = 0
POUR i=1 JUSQU'À n FAIRE 
  som=som+mat[i][1]*mat[i][2]
FINPOUR
ÉCRIRE "total de la commande : ", som
void main() {
  int n;
  n = readInt("nombre d'articles : ");
  // déclaration du tableau
  double[][] mat;
  mat = new double[n][2];
  // saisie du tableau
  int i;
  for(i=1; i<=n; i=i+1) { 
    mat[i-1][0]=readDouble("prix :");
    mat[i-1][1]=readInt("quantite :");
  }
  // total de la commande
  double som;
  som=0;
  for(i=1; i<=n; i=i+1) { 
    som=som+mat[i-1][0]*mat[i-1][1];
  }
  print("total : "); println(som);
}

L'utilisation des tableaux à deux dimensions est bien plus simple en Larp qu'en Javascool où il faut gérer leur taille. Une autre différence à prendre en compte est la numérotation des cases qui débute à 1 en Larp et à 0 en Javascool.

Page d'accueil Table des matières Niveau supérieur Page précédente Haut de la page Page suivante Démarrage du logiciel Webographie du module Glossaire du module