Tableau 3 dimensions
GW-BASIC
(PC-BASIC)
Initiation au langage Basic
Vous pouvez continuer avec autant de dimensions que vous le souhaitez dans une variable tableau. Vous n'êtes limité que par la quantité d'informations que vous pouvez stocker dans la mémoire de l'ordinateur.
Ajoutez une troisième dimension au tableau: les groupes d'intérêt. Voir Enregistrement
Voici les informations :
VOTES DU GROUPE D'INTÉRÊT 1
Candidat 1 | Candidat 2 | |
District 1 District 2 District 3 |
143 215 125 |
678 514 430 |
VOTES DU GROUPE D'INTÉRÊT 2
Candidat 1 | Candidat 2 | |
District 1 District 2 District 3 |
525 318 254 |
54 157 200 |
VOTES DU GROUPE D'INTÉRÊT 3
Candidat 1 | Candidat 2 | |
District 1 District 2 District 3 |
400 124 75 |
119 300 419 |
Pour mettre tout cela dans la mémoire de votre ordinateur, tapez:
5 DIM V(3,3,2)
10 DATA 143, 678, 215, 514,
125, 430
20 DATA 525, 54, 318, 157,
254, 200
30 DATA
400,118,124,300,75,418
40 FOR G = 1 TO 3
50 FOR D = 1 TO 3
60 FOR C = 1 TO 2
70 READ V(G,D,C)
80 NEXT C
90 NEXT D
100 NEXT G
105 CLS
110 INPUT "Groupe d'intérêt
No. (1-3)"; G
120 IF G < 1 OR G > 3 THEN
110
130 INPUT "DISTRICT NO.
(1-3)"; D
140 IF D < 1 OR D > 3 THEN
130
150 INPUT "CANDIDAT NO.
(1-2)"; C
160 IF C < 1 OR C > 2 THEN
150
170 PRINT V(G,D,C)
180 GOTO 110
Exécutez le programme et testez les indices. Les lignes 40 à 100 lisent tous les votes dans le tableau V, en leur donnant chacun trois indices :
Le premier indice est le
groupe d'intérêt (Groupes d'intérêt 1-3),
Le deuxième indice est le
district (Districts 1-3).
Le troisième indice est le
candidat (candidats 1-2).
Voici la mémoire de l'ordinateur:
Par exemple, 678 est maintenant étiqueté V(1, 1,2). Cela signifie que 678 est du groupe d'intérêt 1, du district 1 et du candidat 2.
Pour profiter des trois dimensions, supprimez les lignes 110-180 et tapez :
110 R=0
120 IF R = 0 THEN 140
130 A$=INKEY$:IF A$="" THEN
130
140 CLS:PRINT: PRINT "TAPEZ
<1> POUR GROUPE"
150 PRINT "<2> POUR DISTRICT
OU <3> POUR CANDIDAT"
160 P = 0 : INPUT R
170 ON R GOSUB
1000,2000,3000
180 GOTO 120
1000 INPUT "GROUPE (1-3)"; G
1010 IF G<1 OR G>3 THEN 1000
1020 CLS
1030 PRINT "VOTES POUR LE
GROUPE" G
1040 PRINT "CAND. 1 "
1050 FOR D = 1 TO 3
1060 PRINT TAB(P) "DIST. "
D;
1065 P = P + 15
1070 NEXT D
1080 P=0:C=1
1090 FOR D = 1 TO 3
1100 PRINT TAB(P) V(G,D,C);
1105 P = P + 15
1110 NEXT D
1120 PRINT:PRINT:PRINT "CAND.
2 "
1125 P=0
1130 FOR D = 1 TO 3
1140 PRINT TAB(P) "DIST. "
D;
1150 P = P + 15
1160 NEXT D
1170 P=0:C=1
1180 FOR D = 1 TO 3
1190 PRINT TAB(P) V(G,D,C);
1200 P = P + 15
1210 NEXT D
1220 RETURN
2000 INPUT ·"DISTRICT(1-3)";
D
2010 IF D<1 OR D>3 THEN 2000
2020 CLS
2030 PRINT "VOTES POUR DIST.
" D
2040 FOR G = 1 TO 3
2050 PRINT "GROUP" G
2060 FOR C = 1 TO 2
2070
PRINT "CAND. ";C;" ";V(G,D,C)
2080NEXT C
2090 NEXT G
2100 RETURN
3000 INPUT "CANDIDAT (1-2)";
C
3010 IF C<1 OR C>2 THEN 3000
3020 CLS
3030 PRINT "VOTES POUR CAND.
" C
3040 PRINT "DIST. 1 ";
3050 PRINT "DIST. 2 ";
3060 PRINT "DIST. 3"
3070 FOR G = 1 TO 3
3080 PRINT "GROUPE" G;
3090 FOR D = 1 TO 3
3100 PRINT V(G,D,C);
3110 NEXT D
3120 NEXT G
3130 RETURN
Programme faites-le vous même
Écrivez un programme pour distribuer les cartes en utilisant un tableau à deux dimensions.
Faites de la première dimension la couleur de la carte {1-4) et de la deuxième dimension la valeur de la carte (1-13).