Programmer avec le langage Linotte
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

Programmer avec le langage LinotteConnexion

Besoin d'un conseil sur la programmation en Linotte ?

-28%
Le deal à ne pas rater :
-28% Machine à café avec broyeur à grain MELITTA Purista
229.99 € 318.99 €
Voir le deal

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

more_horiz
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

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

more_horiz
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.

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

more_horiz
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

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

more_horiz
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

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

more_horiz
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

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

more_horiz
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

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

more_horiz
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" />

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

more_horiz
privacy_tip Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
power_settings_newSe connecter pour répondre