Tableau dynamique

Résolu
karakvb Messages postés 21 Date d'inscription mardi 3 août 2004 Statut Membre Dernière intervention 9 avril 2008 - 21 déc. 2004 à 17:54
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 - 22 déc. 2004 à 14:42
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

jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
22 déc. 2004 à 09:42
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.
3
sovitec Messages postés 47 Date d'inscription mardi 18 mai 2004 Statut Membre Dernière intervention 24 juillet 2006
21 déc. 2004 à 18:12
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.
0
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
21 déc. 2004 à 18:20
Hello,

Tu utilises la commande High.

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
0
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
21 déc. 2004 à 18:28
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_valval Messages postés 13 Date d'inscription mercredi 20 octobre 2004 Statut Membre Dernière intervention 1 janvier 2005 1
21 déc. 2004 à 19:53
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
0
karakvb Messages postés 21 Date d'inscription mardi 3 août 2004 Statut Membre Dernière intervention 9 avril 2008
21 déc. 2004 à 20:41
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 --
0
karakvb Messages postés 21 Date d'inscription mardi 3 août 2004 Statut Membre Dernière intervention 9 avril 2008
22 déc. 2004 à 14:10
bon bah ca marche bien avec high Merci
epita promo 2009®
-- karak --
0
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
22 déc. 2004 à 14:42
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.
0
Rejoignez-nous