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.