John Dogget
Messages postés384Date d'inscriptionvendredi 18 juin 2004StatutMembreDernière intervention 7 mai 2009
-
11 nov. 2007 à 15:01
cedricbi
Messages postés185Date d'inscriptionmercredi 18 décembre 2002StatutMembreDernière intervention21 mars 2011
-
12 nov. 2007 à 19:13
Bonjour.
J'ai un tableau à une dimension déclaré comme ça :
Coordonnees:array[1..2] of byte;
Je voudrais savoir comment écrire une fonction qui initialise les deux élements du tableau en même temps, sans passer par
Coordonnees[1]:= ...
Coordonnees[2]:= ...
J'ai essayé Coordonnees:=(1,1) et Coordonnees:=((1),(1)), la syntaxe ne va pas
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 11 nov. 2007 à 20:01
Alors c'est pas vraiment une initialisation par défaut.
Tu veux pouvoir maîtriser les deux premières valeurs de ton tableau.
Mais tu parles de fonction..
Une fonction ça renvoie une valeur et donc c'est pas ce que tu veux faire..
Il vaudrait mieux dire procédure..
A moins que tu souhaites que ta fonction initialise ton tableau
avec deux valeurs en paramètres ?
Mais je n'ai peut-être pas tout compris..
?
cantador
Vous n’avez pas trouvé la réponse que vous recherchez ?
cedricbi
Messages postés185Date d'inscriptionmercredi 18 décembre 2002StatutMembreDernière intervention21 mars 2011 11 nov. 2007 à 21:24
Si tu veux initialiser tout ton tableau avec la même valeur, que se tableau n'a qu'une dimension et ce soit un tableau de Byte ou Char (ça fait beaucoup de conditions...)
Tu peux utiliser :
FillMemory(@MonTableau[Low(MonTableau)], SizeOf(MonTableau), ValeurARemplir);
<hr />Le plus dur dans un programme c'est de savoir pourquoi il marche !
John Dogget
Messages postés384Date d'inscriptionvendredi 18 juin 2004StatutMembreDernière intervention 7 mai 2009 11 nov. 2007 à 21:53
Re
@ cantador
C'est vrai que j'ai fait une confusion sur les mots ...
Pour reprendre ton exemple "Coordonnees: array[1..2] of byte = (4, 7);"
J'initialise à 4 et 7 les éléments du tableaux au moment de la déclaration du tableau.
Maintenant si je veux remplir mon tableau après sa déclaration dans une fonction ou une procedure, est'il possible de faire la même chose ?
Par exemple mettre les valeur 5 et 8 dans mon tableau, sans passer par Coordonnees[1] et Coordonnees[2].
@ cedricbi
Ca correspond pas à ce que je voudrais faire, mais merci quand même
Attention aux notations trompeuses de certains langages : Ce genre de chose
Coordonnees:=(1,1) n'indique pas que les deux éléments de ton tableau sont affectés en meme temps mais demande à attriber la valeur 1 au premier puis 1 au second. Autrement dit c'est parfaitement équivalent à
Coordonnees[1] := 1;
Coordonnees[2] := 1;
Je te rappelle que le multi tache de windows est plus une illusion John.
Je sais que Coordonnees : = (5,6) Delphi en veut pas; je parlais des autres langages.
Candator : je retourne bosser un ptit peu . Je suis entrain de faire une ptite surprise à Cari avec des Kinders Suicides (Son groupe de Punk je parle )
Alors là je te renvois au magnifique tuto de Cari (que j'ai découvert hier) ou il montre clairement qu'il n'y a aucun lien entre la longueur d'un code et son efficacité
cedricbi
Messages postés185Date d'inscriptionmercredi 18 décembre 2002StatutMembreDernière intervention21 mars 2011 12 nov. 2007 à 19:13
Peut-être qu'une autre solution est de faire une constante par exemple InitTableau : array[1..5] of Byte = (1, 2, 5, 7, 9); puis de mettre au début de ta procédure : MonTableau := InitTableau... Et de cette manière, on a pas un code trop lourd.
<hr />Le plus dur dans un programme c'est de savoir pourquoi il marche !