begin process at 2008 08 20 15:00:56
1 228 895 membres
260 nouveaux aujourd'hui
14 259 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Initialiser tous les éléments d'un tableau en même temps ? [ Divers / Débutant(e) ] (John Dogget)

Initialiser tous les éléments d'un tableau en même temps ? le 11/11/2007 15:01:02

John Dogget
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

Est ce possible ?
So oui, comment faire ?

Re : Initialiser tous les éléments d'un tableau en même temps ? le 11/11/2007 19:04:06

cantador
Membre Club
 comme ceci :

Coordonnees: array[1..2] of byte = (4, 7);

cantador

Re : Initialiser tous les éléments d'un tableau en même temps ? le 11/11/2007 19:10:38

John Dogget
Ca ressemble beaucoup à une déclaration d'un tableau constant, or c'est pas ce que je veux faire

Re : Initialiser tous les éléments d'un tableau en même temps ? le 11/11/2007 20:01:35

cantador
Membre Club

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


Re : Initialiser tous les éléments d'un tableau en même temps ? le 11/11/2007 21:24:47

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


Le plus dur dans un programme c'est de savoir pourquoi il marche !


Re : Initialiser tous les éléments d'un tableau en même temps ? le 11/11/2007 21:53:58

John Dogget
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

Re : Initialiser tous les éléments d'un tableau en même temps ? le 11/11/2007 22:33:33

cantador
Membre Club
Réponse acceptée !

En admettant que les valeurs x et y (5 et 8)sont lues quelque part..

procedure InitTableau(var x, y : integer);
begin
Coordonnees[1] := 5;
Coordonnees[2] := 8;
end;

ou encore

for i:= low(Coordonnees) to high(Coordonnees) do
Coordonnees[i] :=  tu peux écrire ici une formule qui calcule les deux valeurs en fonction de i.

Je ne sais si on va arriver à te vendre quelque chose ce soir !

cantador


Re : Initialiser tous les éléments d'un tableau en même temps ? le 11/11/2007 22:40:47

John Dogget
Si c'est bon
Mais tu confirmes ce que je pensais, ce que je veux n'est pas possible avec Delphi ...

@ +

Re : Initialiser tous les éléments d'un tableau en même temps ? le 11/11/2007 22:53:10

Francky23012301
Membre Club
Salut,

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.

@++

Re : Initialiser tous les éléments d'un tableau en même temps ? le 11/11/2007 23:04:13

John Dogget
Oui mais ça marche pas dans mon code, autrement dit dans mon code ...

Coordonnees : = (5,6) n'equivaut pas à

Coordonnees[1] : = 5 et
Coordonnees[2] : = 6

Le compilo n'en veut pas

Ou alors j'ai (encore) pas tout pigé ...
Delphi en auto-didacte, c'est pas tous les jours evidents


[Page 1 Page 2]
Classé sous : tableau, temps, initialiser, éléments, coordonnees

Participer à cet échange

Pub



Appels d'offres

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

Téléchargements

Boutique

Boutique de goodies CodeS-SourceS