Comment fait on pour parcourir un tableau a 2 dimensions en diagonal? - Ada - Programmation
Marsh Posté le 31-03-2004 à 12:50:54
fépéter ton code pour le parcourir à l'horizontale et à la verticale STP.
Marsh Posté le 31-03-2004 à 13:07:37
Si tu y arrives à l'horizontale et à la verticale, je ne vois où est le problème pour la diagonale.
C'est en quel langage ton tableau ?
Marsh Posté le 31-03-2004 à 13:17:14
a mon avis, tu devrais eviter de declarer les colonnes de ton echiquier par leurs noms ('A'..'H') et utiliser un entier.
ca facilite les traitements :
tu peux essayer un truc comme ca :
with Ada.text_io;
procedure Test is
ECHIQUIER : array( 1..8, 1..8 ) of INTEGER;
begin
for i in 1..8 loop
for j in 1..8 loop
ECHIQUIER(I,J) := I+J;
end loop;
end loop;
for i in 1..8 loop
ada.text_io.put_line(Integer'image(ECHIQUIER(I,I)));
end loop ;
end;
Marsh Posté le 31-03-2004 à 13:23:13
Vinx a écrit : C'est en quel langage ton tableau ? |
t'en veeeeeeeeux ?
Marsh Posté le 31-03-2004 à 13:25:34
sinon, ce code devrait (peut-etre) fonctionner, mais je trouve ca tres (trop ?) tordu.
il existe sans doute plus simple.
essaie le :
with Ada.text_io;
procedure Test is
type Column is (A, B, C, D, E, F, G, H);
type Echiquier is array (1..8, Column) of Integer;
board: Echiquier;
begin
for i in 1..8 loop
for j in A..H loop
Board(I,J) := I;
end loop;
end loop;
for i in 1..8 loop
ada.text_io.put_line(Integer'image(Board(I,Column'Val(I))));
end loop ;
end;
Marsh Posté le 31-03-2004 à 13:46:36
vonm a écrit : sinon, ce code devrait (peut-etre) fonctionner, mais je trouve ca tres (trop ?) tordu. |
j'allais faire cet exemple, mais je me suis dit que séparer les type de lignes et colones n'est pas très important, ils sont séparés par la dimension dans le tableau.
par contre, attention à utiliser des 'Range(N) dans les boucles et des 'Pos(val) pour convertir les énumérations en int.
Marsh Posté le 31-03-2004 à 13:49:10
heuuu... je ne saisis pas l'exemple des range, tu peux montrer stp ?
v.
Marsh Posté le 31-03-2004 à 13:53:41
nraynaud a écrit : t'en veeeeeeeeux ? |
Ouais, j'veux bien. Fais tourner.
Autant pour moi. j'avais pas vu que nous étions dans la sous rubrique Ada
Marsh Posté le 31-03-2004 à 14:01:28
vonm a écrit : heuuu... je ne saisis pas l'exemple des range, tu peux montrer stp ? |
http://www.iuma.ulpgc.es/users/jmi [...] A-5-5.html
Code :
|
Marsh Posté le 31-03-2004 à 15:22:26
Merci a tous pour vos reponses !
Les characters ca complique le tout mais j y suis malheureusement
obligé
Des que tout fonctionne, je vous tiendrai au courant.
Encore une fois, merci a tous !
Marsh Posté le 31-03-2004 à 15:48:19
Je me suis remis au boulot et j ai pas mal de probleme...
C'est de ma faute, je n'ai pas precisé que ce n'est pas un tableau d'integer mais un tableau de type pion(rouge,vert,jaune,bleu).
type pion is (rouge,vert,jaune,bleu);
type echequier is array(1..8, character range 'A'..'H') of pion;
board:echequier;
Je n'arrive pas a transformer l'essai...
ada.text_io.put_line(Integer'image(Board(I,Column'Val(I))));
Marsh Posté le 31-03-2004 à 17:47:24
igi a écrit : Je me suis remis au boulot et j ai pas mal de probleme... |
ada.text_io.put_line(Pion'Image(Board(I,Column'Val(I)));
Marsh Posté le 31-03-2004 à 11:52:53
Bonjour a tous et a toutes ! Voilà, je n'arrive pas a parcourir mon tableau a 2 dimensions en diagonale.
Pour le parcourir en verticale et en horizontale, il n y a aucun probleme mais alors, pour la diagonale...
Les lignes de mon tableau vont de 1 a 8.
Les colonnes vont de 'A' a 'H'.
Je suis vraiment déséspérée et je remercie d'avance la personne qui pourra m'aider a resoudre ce probleme.