Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1200 connectés 

  FORUM HardWare.fr
  Programmation
  Ada

  Comment fait on pour parcourir un tableau a 2 dimensions en diagonal?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comment fait on pour parcourir un tableau a 2 dimensions en diagonal?

n°688237
igi
Posté le 31-03-2004 à 11:52:53  profilanswer
 

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.

mood
Publicité
Posté le 31-03-2004 à 11:52:53  profilanswer
 

n°688316
nraynaud
lol
Posté le 31-03-2004 à 12:50:54  profilanswer
 

fépéter ton code pour le parcourir à l'horizontale et à la verticale STP.


---------------
trainoo.com, c'est fini
n°688333
Vinx
Posté le 31-03-2004 à 13:07:37  profilanswer
 

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 ?

n°688343
vonm
Posté le 31-03-2004 à 13:17:14  profilanswer
 

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;

n°688348
nraynaud
lol
Posté le 31-03-2004 à 13:23:13  profilanswer
 

Vinx a écrit :

C'est en quel langage ton tableau ?

t'en veeeeeeeeux ?


---------------
trainoo.com, c'est fini
n°688349
vonm
Posté le 31-03-2004 à 13:25:34  profilanswer
 

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;

n°688372
nraynaud
lol
Posté le 31-03-2004 à 13:46:36  profilanswer
 

vonm a écrit :

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;
 

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.


---------------
trainoo.com, c'est fini
n°688377
vonm
Posté le 31-03-2004 à 13:49:10  profilanswer
 

heuuu... je ne saisis pas l'exemple des range, tu peux montrer stp ?
 
v.

n°688385
Vinx
Posté le 31-03-2004 à 13:53:41  profilanswer
 

nraynaud a écrit :

t'en veeeeeeeeux ?


 
Ouais, j'veux bien. Fais tourner.  :D  
 
Autant pour moi. j'avais pas vu que nous étions dans la sous rubrique Ada  ;)

n°688410
nraynaud
lol
Posté le 31-03-2004 à 14:01:28  profilanswer
 

vonm a écrit :

heuuu... je ne saisis pas l'exemple des range, tu peux montrer stp ?
 
v.

http://www.iuma.ulpgc.es/users/jmi [...] A-5-5.html
 

Code :
  1. with Ada.text_io;
  2. procedure Test is
  3.   type Column is (A, B, C, D, E, F, G, H);
  4.   type Echiquier is array (1..8, Column) of Integer;
  5.   board: Echiquier;
  6. begin
  7.   for i in Board'Range(0) loop
  8.     for j in Board'Range(1) loop
  9.       Board(I,J) := I;
  10.     end loop;
  11.   end loop;
  12.   for i in Board'Range(0) loop
  13.     ada.text_io.put_line(Integer'image(Board(I,Column'Val(I))));
  14.   end loop ;
  15. end;


---------------
trainoo.com, c'est fini
mood
Publicité
Posté le 31-03-2004 à 14:01:28  profilanswer
 

n°688524
vonm
Posté le 31-03-2004 à 14:52:42  profilanswer
 

ok merci, je connaissais pas.
 
v.

n°688562
igi
Posté le 31-03-2004 à 15:22:26  profilanswer
 

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 !

n°688584
igi
Posté le 31-03-2004 à 15:48:19  profilanswer
 

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))));


Message édité par igi le 31-03-2004 à 15:49:40
n°688744
nraynaud
lol
Posté le 31-03-2004 à 17:47:24  profilanswer
 

igi a écrit :

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(Pion'Image(Board(I,Column'Val(I)));


Message édité par nraynaud le 31-03-2004 à 17:48:02

---------------
trainoo.com, c'est fini

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Ada

  Comment fait on pour parcourir un tableau a 2 dimensions en diagonal?

 

Sujets relatifs
imprimer tableau avec couleur de fondpassage d'un tableau php parametre à une fonction javascript
Comment faire un tableau avec Tkinter ?probleme de tableau et de font
Supression dans un tableau de tableau...faire un tableau scrollable c'est possible ?
Tableau en pdf a partir de phpProbleme de new, tableau, * , ou & ?
[C] tableau de tructure globalune tableau qui s'actualise tout seul en fonction de choix,
Plus de sujets relatifs à : Comment fait on pour parcourir un tableau a 2 dimensions en diagonal?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR