Générateur de variables existante =x

Signaler
Messages postés
19
Date d'inscription
lundi 18 janvier 2010
Statut
Membre
Dernière intervention
4 avril 2010
-
Messages postés
19
Date d'inscription
lundi 18 janvier 2010
Statut
Membre
Dernière intervention
4 avril 2010
-
Bonjour, je suis entrain de coder une méthode de classe.

la voici

public void intiCarte(int a1,int a2,int a3,int a4,int a5,int a6,int a7,int a8,int a9,int a10,int a11,int a12,int a13,int a14,int a15,int a16,int a17,int a18,int a19,int a20,int a21,int a22,int a23,int a24,int a25,int a26,int a27,int a28,int a29,int a30,int a31,int a32)
            {
                int x;
                for (x = 0; x < 32; x++)
                {
                    carte[x] = a+(x+1); //<= Spotted ! c'est ici
                }

                
            }


alors, voila mon probleme.
si vous analysez le code, j'aimerais que, dans le for, ça insert dans "carte[x]" ce que contient la variable "a+(x+1)".

exemple:

quand x vaut 4:

                for (x = 0; x < 32; x++)
                {
                    carte[4] = a5; //car a+x+1 = a+4+1 = a5; a5 étant la variable d'entrée a5.
                }



donc, c'est pour éviter de taper 32 instructions, celles-ci:

                    carte[0] = a1;
                    carte[1] = a2;
                    carte[2] = a3;
                    carte[3] = a4;
                    carte[4] = a5;
                    carte[5] = a6;
                    carte[6] = a7;
etc...
               


Mais, évidemment, quand je lance le programme, il me met: la variable "a" n'existe pas.
ça sert bien évidemment à rien de la déclarer, puisque qu'il va me faire une concaténation => a + x + 1 // donc si a vaut 10; carte[4] vaudra 15.
ce qui n'est pas du tout le but recherché ^^

si c'est pas tres clair, n'hésitez pas à me poser des questions :s

12 réponses

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
28
Salut,

Il me semble qui faut passer par la reflection de DOTNET

ou les variable dynamique (en c#4)

Mais la méthode que tu utilises doit surement avoir un problème de conception
avant.

Il faut peut etre revoir ton problème
comment son affecter toutes tes variables ???
Messages postés
19
Date d'inscription
lundi 18 janvier 2010
Statut
Membre
Dernière intervention
4 avril 2010

Merci d'avoir répondu ^^

Pour te répondre:

sur le OnLoad:
cartes carte1 = new cartes();
carte1.setcarte(63);
carte1.intiCarte(1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,59,61,63);


voila pour l'affectation ^^
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
28
Voici la solution alors

var carte = new int[32];
 for (x = 0; x < 32; x++)
 {
     carte[x] = 2*x+1;
 }


Bon dev.
Messages postés
19
Date d'inscription
lundi 18 janvier 2010
Statut
Membre
Dernière intervention
4 avril 2010

Bien tenté ^^

mais malheureusement (vu que c'est de l'objet), il y aura un carte2.initCarte ayant des valeurs différentes de la carte1 ^^

je ne cherche pas du "bidouillage", j'aimerais vraiment savoir si c'est possible de générer des "variables existantes" voila =x

merci en tout cas
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
28
Il doit me manquer des elements pour repondre.

Car carte n'existe pas aussi?
Et en plus si tu fais deux appels ca me parait bizarre?
Messages postés
19
Date d'inscription
lundi 18 janvier 2010
Statut
Membre
Dernière intervention
4 avril 2010

C'est de la Programmation Orientée Objet (POO), c'est peut-etre ça qu'il te manque :s

(mais je me suis peut-etre bien planté de mon coté aussi ^^ fort possible ^^)
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
28
C'est surement de ton coté.
En POO, les fonctions avec 32 arguments ca n'existe pas.
C'est une abération car le but de la POO c'est justement d'éviter cela.
Messages postés
19
Date d'inscription
lundi 18 janvier 2010
Statut
Membre
Dernière intervention
4 avril 2010

non, le but de la POO ce serait d'éviter d'écrire 5 fois ma fonction de 32 parametres.

car c'est ce que je vais faire. me faut 5 cartes ^^

je me trompe?
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
28
A la place de tes 32 parametres, il faut passer une classe.
Une collection et donc tu n'a plus les 32 parametres?

Qui te dis que dans un avenir, il faut pas un appel avec 16 parametres ou 64
et la tu es embete car il faut refaire des fonctions

avec une fonction avec une collection en parametres il faut rien faire de plus.

C'est pas compliqué ;-)
Messages postés
19
Date d'inscription
lundi 18 janvier 2010
Statut
Membre
Dernière intervention
4 avril 2010

et ma collection, je fais comment pour la remplir?

ça correspondrait aux 32(x5) instructions pour remplir la collection.

non?

un exemple?
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
28
Tu lis une chaine de caractère

Exemple

chaine = "1;3;5;7;............";

monarray = chaine.Split(';');

Et voila.
Messages postés
19
Date d'inscription
lundi 18 janvier 2010
Statut
Membre
Dernière intervention
4 avril 2010

Ca à l'air pas mal (je vais tester)

Merci ^^

Mais si quelqu'un trouve la réponse à ma question je prends ! ^^