Rechercher
Résultats par :
Recherche avancée
Qui est en ligne ?
Il y a en tout 4 utilisateurs en ligne :: 0 Enregistré, 0 Invisible et 4 Invités

Aucun

Voir toute la liste


Partagez
Voir le sujet précédentAller en basVoir le sujet suivant
Junior Member
Messages : 8
Date d'inscription : 2010-04-02
Voir le profil de l'utilisateur

Création dynamique de variables (d'une espèce déterminée)

le Thu 8 Apr - 23:09
Bonjour à tous,

Je me bute depuis environ une semaine à un problème dans un programme que j'écris. J'essaye de prendre exemple sur le tutoriel et les exemples de programmes déjà créés, mais sans résultat :'-(

Peut-être certains d'entre vous auraient une idée sur la solution.

J'ai défini une espèce. Mon programme contient une boucle et à chaque passage, je souhaiterai créer une variable de cette espèce. Pour faire la différence entre chaque variable, je concatène un chiffre au bout de la variable.

J'ai créé un petit exemple simple ci-dessous qui est un peu du genre du programme que j'ai écrit (beaucoup plus gros, car j'ai presque 400 variables à créér), ce qui sera plus parlant pour vous exposer mon problème.

J'ai créé une espèce qui s'appelle "ami", et qui est composée d'un prénom et d'un âge.

Durant une boucle (de 1 à 3) je souhaiterais créer dynamiquement 3 enregistrements qui seraient connus sous le nom de :
- copain1 : Ronan ;
27 ans
- copain2 : Christian ;
83 ans
- copain3 : Lenka ;
28 ans

La syntaxe du code n'est pas bonne, et je souhaiterais savoir s'il existe une solution. J'ai déjà essayé avec des casiers, mais je me bute toujours au même problème lors de la création.

Merci d'avance à tous pour votre temps et votre bonne volonté, je vous souhaite une excellente journée ! :-)

Amicalement,

Pierre-Jérôme

(Ci-dessous, mon programme)




Livre : les amis

Les espèces :

prénom est un texte vide
âge est un nombre
l'espèce ami contient un prénom , un âge

Les grands rôles :

i est un nombre
copain est un texte

Les actions :

Pour i de 1 à 3 , lis

copain vaut "copain"
tu concatènes copain, i dans copain

si i est égal à 1 alors lis ("création de la variable copain1 valant : Ronan ;
27")
tu crées copain un acteur ami valant "Ronan" , "27"
tu affiches copain
ferme
si i est égal à 2 alors lis ("création de la variable copain2 valant : Christian ;
83")
tu crées copain un acteur ami valant "Christian" , "83"
tu affiches copain
ferme
si i est égal à 3 alors lis ("création de la variable copain3 valant : Lenka ;
28")
tu crées copain un acteur ami valant "Lenka" , "28"
tu affiches copain
ferme

ferme

Tu termines
Senior Member
Messages : 497
Date d'inscription : 2008-09-21
Voir le profil de l'utilisateur

Création dynamique de variables (d'une espèce déterminée)

le Fri 9 Apr - 11:17
Il faut séparer la création de l'espèce, de l'affectation de son contenu, soit

tu crées copain un acteur ami

puis faire ensuite l'affectation.... mon aide s'arrete là car je n'ai jamais encore utiliser les éspèces.
Posting Freak
Messages : 1188
Date d'inscription : 2004-12-09
Voir le profil de l'utilisateurhttp://langagelinotte.free.fr/

Création dynamique de variables (d'une espèce déterminée)

le Fri 9 Apr - 12:18
Je regarde ce soir ou ce we mais pas besoin de boucle dans ce cas. tu te compliques la vie.
Je te ferai un exemple avec une boucle et sans boucle.

Ronan
Junior Member
Messages : 8
Date d'inscription : 2010-04-02
Voir le profil de l'utilisateur

Création dynamique de variables (d'une espèce déterminée)

le Fri 9 Apr - 13:06
Bonjour Pat et Ronan,

Merci beaucoup pour vos réponses rapides et vos propositions.

En effet mon programme "les amis" n'est pas du tout optimisé (j'utilise un bazooka pour vouloir tuer une mouche, avec des conditions "Si" à l'intérieur de la boucle).
J'ai juste essayé de retranscrire l'idée de mon programme original (qui n'a pas de "si" à l'intérieur des boucles).

Le programme, sur lequel j'ai un problème, consiste à créer une nouvelle variable (comme copain1, copain2, etc. de l'espèce "ami"), puis affecter des valeurs aux champs (comme prénom et âge), et ceci à chaque itération de boucle.

Vu que j'ai une boucle d'environ 400 itérations, j'aurais environ 400 nouvelles variables à la fin de mon programme.

En ce qui concerne l'affectation de valeurs des champs "prénom" et "âge" après la création de la variable copainX, je me heurte à un problème de syntaxe.
J'essaye d'imiter les exemples du tutoriel, mais je n'arrive pas à trouver comment écrire l'affectation.

Merci encore pour votre bonne volonté, je vous souhaite une bonne journée :;
):


Amicalement,

Pierre-Jérôme



PS : Ci-dessous mon nouveau programme (qui ne fonctionne toujours pas) :


Livre : les amis

Les espèces :

prénom est un texte vide
âge est un nombre
l'espèce ami contient un prénom , un âge

Les grands rôles :

i est un nombre
copain est un texte

Les actions :

Pour i de 1 à 3 , lis

copain vaut "copain"
tu concatènes copain, i dans copain

si i est égal à 1 alors lis ("création de la variable copain1 : Ronan ;
27 ")
tu crées copain un acteur ami
copain est un ami , le nom vaut "Ronan" , l'âge vaut "27"
tu affiches copain
ferme
si i est égal à 2 alors lis ("création de la variable copain2 : Pat ;
20")
tu crées copain un acteur ami
copain est un ami , le nom vaut "Pat" , l'âge vaut "20"
tu affiches copain
ferme
si i est égal à 3 alors lis ("création de la variable copain3 : Christian ;
83")
tu crées copain un acteur ami
copain est un ami , le nom vaut "Christian" , l'âge vaut "83"
tu affiches copain
ferme

ferme

Tu termines
Posting Freak
Messages : 1188
Date d'inscription : 2004-12-09
Voir le profil de l'utilisateurhttp://langagelinotte.free.fr/

Création dynamique de variables (d'une espèce déterminée)

le Fri 9 Apr - 13:55
Voici "une" solution :

Code:
Livre :
les amis
Les espèces :

prénom est un texte vide
âge est un nombre
l'espèce ami contient un prénom , un âge
Les grands rôles :

copains est un casier de ami
prénoms est un casier de textes valant "Ronan", "Pat", "Christian"
âges est un casier de nombres valant 33, 20, 83
copain est un ami
i est un nombre

Les actions :

Pour i de 0 à 2, lis
prénom de copain vaut prénoms{i}
âge de copain vaut âges{i}
ajoute #copain dans copains
ferme
Tu affiches copains
Tu termines
Posting Freak
Messages : 1188
Date d'inscription : 2004-12-09
Voir le profil de l'utilisateurhttp://langagelinotte.free.fr/

Création dynamique de variables (d'une espèce déterminée)

le Fri 9 Apr - 13:59
Et une autre solution qui s'approche peut être plus de ce que tu veux ?

Code:
Livre :
les amis
Les espèces :

prénom est un texte vide
âge est un nombre
l'espèce ami contient un prénom , un âge
Les grands rôles :

prénoms est un casier de textes valant "Ronan", "Pat", "Christian"
âges est un casier de nombres valant 33, 20, 83
i est un nombre
valeur est un texte
Les actions :

Pour i de 0 à 2, lis
valeur vaut "copain" + (i + 1)
Tu crées valeur un acteur ami
prénom de <
valeur>
vaut prénoms{i}
âge de <
valeur>
vaut âges{i}
ferme
Tu affiches copain1
Tu affiches copain2
Tu affiches copain3
Tu termines
Junior Member
Messages : 8
Date d'inscription : 2010-04-02
Voir le profil de l'utilisateur

Création dynamique de variables (d'une espèce déterminée)

le Sat 10 Apr - 18:14
Salut Ronan,

Génial, cette deuxième solution correspond vraiment à ce que j'attendais.

Merci beaucoup, je vais l'appliquer à mon programme !

Bonne journée à tous et merci encore <img src=" title="Smile" />
Contenu sponsorisé

Re: Création dynamique de variables (d'une espèce déterminée)

Voir le sujet précédentRevenir en hautVoir le sujet suivant
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum