IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

Générer des variables avec une boucle


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de Anamelech
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    134
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 134
    Par défaut Générer des variables avec une boucle
    Bonjour,

    Je suis débutant en Delphi et je voudrai créer trois variable Z1, Z2 et Z3 à partir de zz1, zz2 et zz3. Plutôt que de faire Z1=qqchose+zz1 et recommencer pour Z2 et Z3 j'aimerai utiliser une boucle et générer comme ça les trois variables d'un coup. J'ai essayé avec ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for i:=1 to 3 do
    begin
        j:=IntToStr(i);
        Z+j:=Zmax-zz+j;
    end;

    mais ça marche pas. Est-ce que quelqu'un sait comment faire ?

    Merci d'avance.

  2. #2
    Membre Expert

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 296
    Par défaut
    Pourquoi ne pas utiliser un tableau?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     Z : array[0..2] of integer;
     zz : array[0..2] of integer;
    Et ensuite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for i:=1 to 3 do
    begin
        Z[i]:=Z[High(Z)]-zz[i];
    end;

  3. #3
    Membre éprouvé Avatar de Anamelech
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    134
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 134
    Par défaut
    Je ne peux pas utiliser de tableau parce que pour en faire un il fait déclarer le dit tableau dans la partie déclaration du programme et je n'y ai pas accès, je peux juste bidouiller le corps du programme...

    Sinon, vu que tu as fait une boucle de 5 lignes, il vaut mieux faire 3 lignes
    A terme je voudrai faire ça avec plus de 3 variables...

  4. #4
    Membre éprouvé
    Inscrit en
    Janvier 2003
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Janvier 2003
    Messages : 110
    Par défaut
    As-tu accès au .pas ? Tes variables sont déclarées où ??? Tu en as combien ???

    Essaye de nous donner le maximum d'information, car je ne comprends pas comment tu peux faire en Delphi pour ne pas avoir accès aux déclarations.

  5. #5
    Membre éprouvé
    Inscrit en
    Janvier 2003
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Janvier 2003
    Messages : 110
    Par défaut
    Oui ça ne peut pas marcher...

    Tu peux utiliser un tableau de 3 valeurs, une liste, un record, bref une structure.

    Sinon, vu que tu as fait une boucle de 5 lignes, il vaut mieux faire 3 lignes :
    z1 := zz1 + qqueschoses;
    z2 := zz2 + qqueschoses;
    z3 := zz3 + qqueschoses;

    Si vraiment tu as un nombre dynamic de variable ou un grand nombre de variables utilise Array of MonType ou si le nombre est fixe array [0..MonNombre] of MonType.

    Je trouve tout de même qu'avec un bon copier coller, cela va vite...

    A toi de voir.

  6. #6
    Membre Expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 568
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 568
    Par défaut
    Citation Envoyé par Anamelech
    Bonjour,

    Je suis débutant en Delphi et je voudrai créer trois variable Z1, Z2 et Z3 à partir de zz1, zz2 et zz3. Plutôt que de faire Z1=qqchose+zz1 et recommencer pour Z2 et Z3 j'aimerai utiliser une boucle et générer comme ça les trois variables d'un coup. J'ai essayé avec ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for i:=1 to 3 do
    begin
        j:=IntToStr(i);
        Z+j:=Zmax-zz+j;
    end;

    mais ça marche pas. Est-ce que quelqu'un sait comment faire ?

    Merci d'avance.
    Appréciation perso : Tu cherches bien des complications pour rien, affectes tes variables l'une après l'autre, c'est bien plus simple.

    e-ric

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

  7. #7
    Membre éprouvé Avatar de Anamelech
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    134
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 134
    Par défaut
    J'ai pas accès à la partie déclaration parce que je travaille avec un logiciel de modélisation qui est apparemment écrit en Delphi (y'a rien d'indiqué) pour ce qui est de l'entrée des différentes données/caractéristiques de ce que l'on veut modéliser. Du coup je ne sais pas comment sont déclarées les variables mais je peux quand même en créer de nouvelles directement dans ce que je pense être le corps du programme !

    Appréciation perso : Tu cherches bien des complications pour rien, affectes tes variables l'une après l'autre, c'est bien plus simple.
    Avec plus d'une dizaine de variables je trouve ça un peu lourd et pas très joli...

  8. #8
    Membre éprouvé
    Inscrit en
    Janvier 2003
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Janvier 2003
    Messages : 110
    Par défaut
    Ok... C'est quoi ton modéliseur, que je ne travaille pas avec (j'aimerais savoir, ce ne serais pas together)

    Bon, sinon, sérieusement, quelle doit être la portée de tes nouvelles variables ? Si ce n'est que dans ta fonction, alors tu peux faire :
    var
    montableau : array of MonType;
    dans ta fonction ou procedure.

    Sinon tu es bloquée. Tes variables Z1, ... sont déclarées où ???

  9. #9
    Membre éprouvé Avatar de Anamelech
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    134
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 134
    Par défaut
    Je les déclare pas ! je mets Z:=un truc et il fait comme si elles étaient déclarées ce qui n'est pas a priori possible si c'est en Delphi mais ça lui pose pas de problème ! Et comme ça ressemble furieusement à du Delphi je sais pas trop comment ça marche...Sinon c'est un programme qui a été développé par un laboratoire et que mon chef a récupéré et m'a refilé, donc je sais pas grand chose dessus (et j'ai l'impression que mon chef non plus...).

  10. #10
    Membre éprouvé
    Inscrit en
    Janvier 2003
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Janvier 2003
    Messages : 110
    Par défaut
    Et bien alors au lieu de faire Z := Montruc, fait un truc comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for i := 0 to Z.Count-1 do
      Z[i] := zz[i] + quelqueschoses;
    Il va te dire que ton z et ton zz sont des array of LeurType.

    Sinon ensuite je ne vois pas d'autres solutions que de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    z1 := zz1 + ...;
    z2 := zz2 + ...;
    .
    .
    .
    Voilà.

  11. #11
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2003
    Messages : 582
    Par défaut
    peut-être tu peux copier coller environs 20 lignes de code...
    peut-être quelqu'un pourra te dire de quel langage il s'agit...

    Il y a toute sorte d'indice dans 20 lignes de codes...
    exemple d'un if en Delphi:
    exemple en C:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     if (a==1) 
     {
          b=1;
     }
    exemple en Python:
    Bref, j'ai pas l'intension de tous les faire...
    Comment dupliquer un disque...ça vous intéresse?
    Tutoriel et code source delphi ici

Discussions similaires

  1. initialisation des variable avec une boucle
    Par grospatapouf dans le forum Langage
    Réponses: 10
    Dernier message: 10/01/2009, 12h17
  2. Afectation des variables dans une boucle
    Par Yoni Lebene dans le forum Delphi
    Réponses: 3
    Dernier message: 05/01/2007, 18h52
  3. Reproduire des controles avec une boucle
    Par paradeofphp dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 19/06/2006, 11h46
  4. [MySQL] Traitement des variables d'une boucle for
    Par liryc78 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 06/03/2006, 20h53
  5. Generer des noms de variables avec une boucle
    Par moutanakid dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 28/07/2004, 17h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo