[Unity] Tableaux a deux dimensions

Forum traitant des automates industriels de marque Schneider - Telemecanique
Répondre
MiGaNuTs
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1580
Enregistré le : 12 nov. 2015, 21:02
Localisation : 45 - Loiret
Contact :

[Unity] Tableaux a deux dimensions

Message par MiGaNuTs »

Bonjour,

J'aimerai pouvoir utiliser des tableaux a 2 dimensions sous Unity.
J'ai essayé de déclarer des trucs du genre array[0..10] of (Array [0..10] of int) mais ca ne veux pas.
Est ce parce que je l'ecrit mal, ou parce que ce n'est pas possible ?
Modifié en dernier par MiGaNuTs le 20 avr. 2022, 11:09, modifié 1 fois.
AC23
Forcené des structures
Forcené des structures
Messages : 174
Enregistré le : 29 mars 2021, 10:59

Re: Unity : Tableaux a deux dimensions

Message par AC23 »

Bonjour,

Pour des tableaux multi dimensions la syntaxe est : <variable name> : ARRAY[ <1st dimension> ( , <next dimension> )+ ] OF <data type> ( := <initialization> )? ;

Exemple : monTableau : ARRAY[1..2, 1..2] OF INT;

Bien cordialement;

Edit: Rien à voir, mais quand j'utilise un tableau pour stocker plusieurs informations. Par exemple : Date, Heure, mesure1 , mesure2... Donc avec différents types de variable. Je déclare un Struct, ensuite un je fais un array de ce struct (donc un array à une dimension). Cela permet d'éviter de stocker la mauvaise valeur dans le mauvais endroit.

Exemple :
Mon struct:
TYPE structHistorique :
STRUCT
H_Date: DT;
H_Pres: REAL;
H_Mesure1: REAL;
H_Mesure2: INT;
END_STRUCT
END_TYPE

Mon array:
Historique : ARRAY [1..10] OF structHistorique;

L'utilisation:
Historique[index].H_Date := LaDateEtHaure;
Historique[index].H_Pres := LaPres;
...

Voilà, j'espère t'avoir aidé
<< La vie d'un homme passe par trois phases : apprentissage, apprentissage et apprentissage. >>
Et j'ai même pas fini la première phase
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7807
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Unity : Tableaux a deux dimensions

Message par itasoft »

slts,
A ce propos, on ne peut pas faire de tri sur tableau à deux dimension, je m'étais paluché un DFB , voir mon post si besoin

viewtopic.php?f=15&t=5475&p=38092&hilit ... 151#p38092
Automaticien privé (de tout)
itasoft@free.fr
Avatar du membre
Béryl
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1960
Enregistré le : 20 oct. 2015, 12:00
Localisation : localhost

Re: Unity : Tableaux a deux dimensions

Message par Béryl »

J'emploie aussi les structures même avec un seul type de variable, car les noms de variables sont plus parlants qu'avec des tableaux.
Ex : toto.titi:=True est plus lisible que toto[0]=True.
Et ça évite de passer par des alias, que je préfère éviter.
L'inconvénient (minime) étant que pour initialiser des tableaux de structure, il faut passer par une boucle, le MOVE n'étant pas possible, même s'il n'y a qu'un seul type de variable.
AC23
Forcené des structures
Forcené des structures
Messages : 174
Enregistré le : 29 mars 2021, 10:59

Re: Unity : Tableaux a deux dimensions

Message par AC23 »

Béryl a écrit : 10 mars 2022, 07:28 J'emploie aussi les structures même avec un seul type de variable, car les noms de variables sont plus parlants qu'avec des tableaux.
Ex : toto.titi:=True est plus lisible que toto[0]=True.
Et ça évite de passer par des alias, que je préfère éviter.
L'inconvénient (minime) étant que pour initialiser des tableaux de structure, il faut passer par une boucle, le MOVE n'étant pas possible, même s'il n'y a qu'un seul type de variable.
Très bonne remarque, c'est vrai que dans les rares cas où j'ai utilisé cette méthode. Je n'avais pas besoin de faire une initialisation ( :oops: ).
itasoft a écrit : 09 mars 2022, 22:26 slts,
A ce propos, on ne peut pas faire de tri sur tableau à deux dimension, je m'étais paluché un DFB , voir mon post si besoin

viewtopic.php?f=15&t=5475&p=38092&hilit ... 151#p38092
Moi monsieur :lol: , S'il est en ST c'est encore mieux :D
<< La vie d'un homme passe par trois phases : apprentissage, apprentissage et apprentissage. >>
Et j'ai même pas fini la première phase
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7807
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Unity : Tableaux a deux dimensions

Message par itasoft »

@AC23
la ligne d'appel
TRI_TABLES_AB_INT_0(true,TABLE_A_source,TABLE_B_source,TABLE_A_result,TABLE_B_result);

pour le fdb donner @mail en MP
Automaticien privé (de tout)
itasoft@free.fr
MiGaNuTs
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1580
Enregistré le : 12 nov. 2015, 21:02
Localisation : 45 - Loiret
Contact :

Re: Unity : Tableaux a deux dimensions

Message par MiGaNuTs »

Merci pour ces precisions :)
Pour me decoincer j'était parti sur un tableau de structures. A voir si je repasse sur un tableau 2d ou pas.
Pour le moment je vais continuer a profiter de mes vacances.
steph68
Codeur fou
Codeur fou
Messages : 275
Enregistré le : 21 oct. 2015, 08:23

Re: Unity : Tableaux a deux dimensions

Message par steph68 »

Salut,

Autre alternative, tu peux simuler un tableau à 2 dimensions en utilisant un tableau à 1 dimension.

Exemple avec un tableau 2d:

déclaration:

Code : Tout sélectionner

tableau: ARRAY[0..9, 0..9] OF INT
utilisation:

Code : Tout sélectionner

tableau[ligne][colonne]
Exemple avec un tableau 1d:

déclaration:

Code : Tout sélectionner

tableau: ARRAY[0..99] OF INT
utilisation:

Code : Tout sélectionner

tableau[ligne * 10 + colonne]
C'est utile si tu as des IHM qui ne savent adresser que du tableau 1d par exemple (cas des IHM Siemens).

@+
Répondre