Tableau dynamique [Résolu]

Signaler
Messages postés
21
Date d'inscription
mardi 3 août 2004
Statut
Membre
Dernière intervention
9 avril 2008
-
Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
-
Bonjour, j'ai un probleme avec l'utilisation,de tableau dynamiques.
En faite voila ds mon code je rempli un tableau dynamique, que je sauvegarde dans un tablo de type Ttablo = array of array[1..12] of real; mais aprés quand jveu faire une boucle pour parcourir le tablo je suis bloqué car je connais pas la longueur !! Donc c koi le truc??

epita promo 2009®
-- karak --

8 réponses

Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
7
Hello,

Normalement en utilisant High et Low tu devrais t'en sortir je pense.

Tiens nous au courant.

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
Messages postés
47
Date d'inscription
mardi 18 mai 2004
Statut
Membre
Dernière intervention
24 juillet 2006

Bonsoir,

High(MonTableau) donne l'indice du dernier élément d'un tableau. Et Low(MonTableau) donne l'indice du premier élément. La taille d'un tableau dynamique est donc High(MonTableau) - Low(MonTableau) + 1.
Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
7
Hello,

Tu utilises la commande High.

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
Messages postés
1106
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
3 septembre 2006
21
Pour bien placer les choses, je suis sous Delphi 3. C'est important, car cette version m'interdit formellement de déclarer un type tel que celui qui suit. En effet, il faut fixer la taille au début.
type MonType =  array  {il manque un truc ici}  of string;

Donc j'ai tjs prédéfini mon tableau de la façon suivante. Le code ci-après illustre comme lire le tableau:

const TblSize  = 12;
var Tbl : array[0..TblSize] of real;
x : byte; //byte inclu dans 0..12
begin
for x:=0 to TblSize do
Traitement(Tbl[x]);
end;

Attention[b] ce tableau a (12-0)+1 cases !!

Aussi: commence tjs tes tableaux par 0. Sinon après tu t'emmèlera un peu les pinceaux. Cependant, dans le format String qui est une sorte de tableau très dynamique, la première case est 1. Mais comme dans les listes, le premier item est 0, je préfére tjs commencer les tableaux à 0, quitte à mettre des -1 un peu partout... Il faut donc tjs faire très attention !

Sinon, je pense que SizeOf(Tbl) donne sa taille. Mais attention si le tbl commence à 0 et que SizeOf=20, c'est comme si ton tableau était de 0..19 !!

===========
Validez les réponses si ok...

[b]ViewVite : HTML - ZIP
Messages postés
13
Date d'inscription
mercredi 20 octobre 2004
Statut
Membre
Dernière intervention
1 janvier 2005
1
salut!
contrairement aux tableaux statiques, les tableaux dynamiques n'ont pas de longueur prédéfinie. on déclare de tesl tableaux de façon suivante:
var Tablo=array of type_element; // déclare le tableau
setlength(Tablo,2); // définit la taille du tableau
// tout dépends de toi!

j'attends des critiques eventuelles
Messages postés
21
Date d'inscription
mardi 3 août 2004
Statut
Membre
Dernière intervention
9 avril 2008

dc en faite si j'explique tout, pour mon ecole je dois faire un projet en l'occurence un jeu vidéo. Dc le pb venait du loader .Ase que j'avais implémenté. Donc j'ai une fonction loader qui prend en parametre le chemin du fichier a chargé, et retourne un tableau dynamique:
TYPE
Ttablo  = array of array[1..13] of real;;
VAR
tablo : Ttablo;
function loader(chemin:string):Ttablo;

dans la fonction j'utilise bien un setlenght(tablo,nbrface)
mais nbrface est une variable locale et qui varie pour chaque objet a chargé. Pour l'instant j'inscrivai dans la derniere colonne du tableau le nbr de face. Jvai donc essayer avec High et Low pour voir...
Je sais pas si j'ai été trés clair la...

epita promo 2009®
-- karak --
Messages postés
21
Date d'inscription
mardi 3 août 2004
Statut
Membre
Dernière intervention
9 avril 2008

bon bah ca marche bien avec high Merci
epita promo 2009®
-- karak --
Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
7
C'est cool.

Pourrais tu stp cliquer sur réponse acceptée afin que ta demande soit cloturée.

Merci.

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.