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

Langage Perl Discussion :

Mettre les valeurs de deux tableaux en relation deux a deux


Sujet :

Langage Perl

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 23
    Points : 26
    Points
    26
    Par défaut Mettre les valeurs de deux tableaux en relation deux a deux
    Bonjour,

    je dispose de deux tableaux:

    @tab (
    10,
    10,
    7,
    8,
    10,
    8,
    10,
    10,
    8,
    )

    @val(
    1.5000E-22,
    1.5700E-21,
    3.5050E-18,
    2.5005E-14,
    4.5000E-15,
    8.5008E-21,
    1.7009E-22,
    1.4870E-24,
    1.4870E-24,

    )

    Je souhaite mettre les deux tableaux en correlation suivant les valeurs du premier tableau, en respectant l'ordre. En d'autres termes:
    si la valeur du premier element du premier tableau est "10", je souhaiterais que la premiere valeur du second tableau soit mutipliee par 2.
    si la valeur du sixieme element du premier tableau est "10", je souhaiterais que la sixieme valeur du second tableau soit mutipliee par 2.
    si la valeur du septieme element du premier tableau est "7", je souhaiterais que la premiere valeur du second tableau soit mutipliee par 8.
    ...
    Si la valeur du nieme element du premier tableau est "k", je souhaiterais que la nieme valeur du second tableau soit multipliee par "m", m etant une fonction de k.

    #je numerote les lignes du premier tableau @tab
    foreach $x (@tab) {
    if ($x =~ /\d+ /) {
    $a = $a +1 ;
    }

    # j'assigne un compteur pour chaque valeurs de mon premier tableau @tab (ici, seul 10 est mis en exemple)
    if ($x =~ /10/){
    $b = $a;
    }
    else {
    $b =~ //
    }
    }

    Probleme: Seul un certain nombre de mes valeurs $b sont corrects; quand il y a plusieurs "10" de suite dans mon tableau, la valeur $b reste la meme. Typiquement, les valeurs de $b retournee ici sont 2, 5, 8)

    # je numerote les ligne du deuxieme tableau @val et j'associe les valeurs du tableau @val aux valeurs de tableau @tab:
    foreach $y (@val) {
    if ($y =~ /\d+ /) {
    $d = $d +1 ;
    }
    if ($d = $b) {
    $y =2*$y;
    }
    }

    Ma methode est bourrin, mais je pense qu'elle pourrait marcher.

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Parcours simplement les indices de tes tableaux...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach my $i (0..$#tab) {
      $val[$i] = $val[$i] * tabToFactor($tab[$i]);
    }
    De façon plus élégante, il y a pairwise() dans List::MoreUtils :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pairwise { $b = $b * tabToFactor($a) } @tab, @val;
    --
    Jedaï

  3. #3
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 256
    Points
    12 256
    Billets dans le blog
    1
    Par défaut
    Je ne comprends bien ce que tu fais. Les éléments de tes tableaux sont déjà numérotés par leurs indices.

    Pas besoin de faire compliqué: fais varier un compteur de 0 à $max et trouve la valeur des éléments de tes deux tableaux pour faire l'opération souhaitée.

    Edit: grillé par Jedai à cause d'une connexion mobile vraiment trop lente.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 23
    Points : 26
    Points
    26
    Par défaut
    Merci beaucoup, en effet vos solutions sont plus simples

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. mettre les valeurs dans une tableau
    Par monphp dans le forum VB.NET
    Réponses: 1
    Dernier message: 01/06/2007, 16h51
  2. Réponses: 2
    Dernier message: 14/02/2007, 16h22
  3. Réponses: 5
    Dernier message: 12/06/2006, 12h05
  4. Mettre les valeurs d'un tableau dans un fichier
    Par ero-sennin dans le forum C++
    Réponses: 4
    Dernier message: 14/03/2006, 13h47
  5. [XML] mettre les valeurs XML dans un array
    Par yodark dans le forum Bibliothèques et frameworks
    Réponses: 11
    Dernier message: 05/01/2006, 17h35

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