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

Pascal Discussion :

Remplir un tableau à partir d'une valeur initiale


Sujet :

Pascal

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Remplir un tableau à partir d'une valeur initiale
    Salut, je me demandais comment pouvoir remplir un tableau automatiquement à partir d'une valeur initiale.

    En temps normal, pour le remplir moi même je ferais quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    var
    tab1:array [1..20] of integer;
     
    begin
          for i:=1 to 20 do
     
           begin
     
            writeln('Entrez une valeur comprise entre 1 et 100:');
             readln(tab1[i]);
           end;
     
    end;
    mais je n'arrive pas à voir comment faire pour qu'il se remplisse lui-même,
    du genre tab1[1] serais égale a la valeur initiale et le reste serait +1.

    Des conseils ?
    Merci et bonne journée

  2. #2
    Membre éclairé
    Avatar de richard
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Avril 2002
    Messages : 474
    Points : 772
    Points
    772
    Par défaut
    Bonjour

    Le message n'est pas très clair. S'il s'agit de remplir un tableau avec des valeurs incrémentées de +1 à partir d'une valeur initiale, voici le code (sinon, préciser la question, merci)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    var
    tab1:array [1..20] of integer;
    Valinit : integer;
     
    begin
    for i:=1 to 20 do
      begin
        Valinit := 1; (* n'importe quelle valeur de départ*)
        tab1[i]:=(valinit - 1) + i; (* si "i" commence à 1 *)
      end;
    end;
    "Software is getting slower more rapidly than hardware becomes faster." Niklaus Wirth
    https://pharo.org/web
    https://faust.grame.fr/

  3. #3
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Boi,
    Citation Envoyé par richard Voir le message
    Bonjour

    Le message n'est pas très clair. S'il s'agit de remplir un tableau avec des valeurs incrémentées de +1 à partir d'une valeur initiale, voici le code (sinon, préciser la question, merci)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    var
    tab1:array [1..20] of integer;
    Valinit : integer;
     
    begin
    for i:=1 to 20 do
      begin
        Valinit := 1; (* n'importe quelle valeur de départ*)
        tab1[i]:=(valinit - 1) + i; (* si "i" commence à 1 *)
      end;
    end;
    Là, tu remplis le tableau avec [I]tab1 = i.
    Si les cons volaient, il ferait nuit à midi.

  4. #4
    Membre éclairé
    Avatar de richard
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Avril 2002
    Messages : 474
    Points : 772
    Points
    772
    Par défaut
    Certes oui, ceci ne m'avait pas échappé :

    Cependant, de ce que j'ai compris de la question, il s'agissait de remplir un tableau à partir d'une valeur initiale (que j'ai arbitrairement fixée à 1) incrémentée de +1 à chaque fois. Comme le pas de la boucle FOR ... TO est de 1, effectivement cela revient à cela dans ce cas précis. Disons que c'est un cas particulier, si la valeur initiale était de 32, cela donnerait d'autres résultats, et si en plus le pas était égal à 2 (avec une boucle "WHILE" ) pour des raisons particulières, ce serait encore différent.

    C'était juste pour montrer la mécanique. Je n'ai pas voulu traiter le cas ci-dessus car je n'était pas sûr d'avoir compris l'énoncé du problème ...
    "Software is getting slower more rapidly than hardware becomes faster." Niklaus Wirth
    https://pharo.org/web
    https://faust.grame.fr/

  5. #5
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Goe,
    Citation Envoyé par richard Voir le message
    Certes oui, ceci ne m'avait pas échappé :

    Cependant, de ce que j'ai compris de la question, il s'agissait de remplir un tableau à partir d'une valeur initiale (que j'ai arbitrairement fixée à 1) incrémentée de +1 à chaque fois. Comme le pas de la boucle FOR ... TO est de 1, effectivement cela revient à cela dans ce cas précis. Disons que c'est un cas particulier, si la valeur initiale était de 32, cela donnerait d'autres résultats, et si en plus le pas était égal à 2 (avec une boucle "WHILE" ) pour des raisons particulières, ce serait encore différent.

    C'était juste pour montrer la mécanique. Je n'ai pas voulu traiter le cas ci-dessus car je n'était pas sûr d'avoir compris l'énoncé du problème ...
    Valinit devrait être initialisée hors de la boucle, ça éviterait la soustraction, et ce serait plus clair.
    Si les cons volaient, il ferait nuit à midi.

  6. #6
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    var
      Tab : array[0..19] of integer;
      V, N : integer;
    begin
      write('Entrez une valeur comprise entre 1 et 100 : ');
      readln(V);
     
      for N := low(Tab) to high(Tab) do
        tab1[n] := v;
    end;
    [ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
    Ma messagerie n'est pas la succursale du forum... merci!

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Merci
    Merci a vous deux.
    je sais que la question etait pas clair mais ça repose sur cela
    de remplir un tableau appartir d'une variable saisie.

    ça m'éclair beaucoup!

  8. #8
    Membre éclairé
    Avatar de richard
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Avril 2002
    Messages : 474
    Points : 772
    Points
    772
    Par défaut
    Citation Envoyé par droggo Voir le message
    Valinit devrait être initialisée hors de la boucle, ça éviterait la soustraction, et ce serait plus clair.
    C'est juste. Erreur vraiment stupide de ma part ...
    "Software is getting slower more rapidly than hardware becomes faster." Niklaus Wirth
    https://pharo.org/web
    https://faust.grame.fr/

  9. #9
    Membre éclairé
    Avatar de richard
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Avril 2002
    Messages : 474
    Points : 772
    Points
    772
    Par défaut
    @ DrWho,

    Je dois être benêt mais je n'ai pas compris où était l'incrément automatique dans ton code, ou alors il en manque un bout ?
    "Software is getting slower more rapidly than hardware becomes faster." Niklaus Wirth
    https://pharo.org/web
    https://faust.grame.fr/

  10. #10
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    on aura corrigé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    var
      Tab : array[0..19] of integer;
      V, N : integer;
    begin
      write('Entrez une valeur comprise entre 1 et 100 : ');
      readln(V);
     
      for N := low(Tab) to high(Tab) do
      begin
        tab1[n] := v;
        inc(v);
      end;
    end;
    [ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
    Ma messagerie n'est pas la succursale du forum... merci!

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/11/2012, 11h25
  2. Remplir un tableau à partir d'une valeur à l'intérieur de celui-ci
    Par Doudoupe dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 14/11/2012, 22h13
  3. [XL-2007] Remplir un tableau à partir d'une liste dans un autre onglet
    Par maymou27 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 20/06/2012, 14h34
  4. Remplir un tableau à partir d'une plage
    Par npopravka dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 10/03/2012, 13h09
  5. Suppression d'une ligne d'un tableau à partir d'une valeur de cellule
    Par jerem1 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/12/2010, 14h15

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