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

Ruby Discussion :

Conserver un tableau de variable en Rails


Sujet :

Ruby

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Colombie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2015
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Conserver un tableau de variable en Rails
    Bonjour à tous,
    je suis nouveau sur ce forum.

    je crée un tableau de variables aléatoires avec

    def tabAlea
    n = self.nbvar
    $nn = self.nbvar
    @myAlea= Array.new
    for i in (0..self.nbvar-1)
    x=rand(10)-rand(10)
    while x == 0
    x=rand(10)-rand(10)
    end
    myAlea << x
    end
    @myAlea
    end

    Question comment puis je garder mon tableau tabAlea stocké avec les valeurs générées tant que je ne relance pas ma fonction ?

    Merci pour votre aide.

  2. #2
    Membre actif
    Profil pro
    Problem Solver
    Inscrit en
    Juin 2013
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Problem Solver

    Informations forums :
    Inscription : Juin 2013
    Messages : 138
    Points : 231
    Points
    231
    Par défaut
    Dans une classe c'est fait pour ça.
    Je pense que si j'avais tout ton besoin je proposerais une autre archi mais ça ira
    J'ai un peu simplifié avec mes préférences personnelles, libre à toi de reprendre ou non.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    class Alea
      attr_accessor :myAlea, :nbvar
     
      def initialize(n=10)
        @nbvar = n
      end
     
      def tabAlea
         n = @nbvar
         @myAlea = 0.upto(@nbvar - 1).map {
          x = (rand(9) + 1) * (rand(2) == 0 ? -1 : 1)
         }
      end
    end
    Pour l'utilisation tu accèdes autant de fois que tu veux à myAlea qui te garde la dernière valeur calculée.
    Quand tu veux changer, appelle tabAlea et c'est bon.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    alea = Alea.new
     
    alea.myAlea # => nil
    alea.tabAlea # => [-3, -6, -8, 7, -4, 2, 2, -2, 4, 7] 
    # tout le code que tu veux mais sans tabAlea on ne change pas myAlea
    alea.myAlea # => [-3, -6, -8, 7, -4, 2, 2, -2, 4, 7] 
     
    # là on veut changer
    alea.tabAlea # => [7, -9, -4, 9, 7, -9, -5, -8, 1, 9] 
    # on refait ce qu'on veut... la variable ne bouge pas
    alea.myAlea # => [7, -9, -4, 9, 7, -9, -5, -8, 1, 9] 
     
    # etc.

    J'ai retiré la variable globale parce que du coup ça rentre parfaitement dans le cadre du constructeur.
    J'ai mis les 2 valeurs intéressantes en attr_accessor pour que tu puisses y accéder simplement avec .var (getter) et .var = x (setter).

    Je n'utilise pas FOR et surtout pas WHILE qui sont "dangereux" question perf (on sait pas quand ça finit) et code (on peut dépasser les bornes).
    Si j'ai bien compris ton code, il veut un nombre entre 1 et 10 ou -1 et 10, mais pas zéro.

    Du coup j'ai fait un seul appel à rand pour le chiffre, et un autre pour le signe, et je suis certain de ne pas avoir de zéro et de toujours le faire en un coup.
    Ça m'évite le WHILE.

    Et pour le FOR j'utilise souvent MAP (tous les langages avec itérateurs) mais là avec des chiffres c'est direct avec UPTO (une spécificité Ruby).

    Bon courage et amuse-toi bien

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/02/2009, 21h50
  2. [VBA] Mettre un tableau de variable en paramètre
    Par loacast dans le forum Général VBA
    Réponses: 10
    Dernier message: 15/11/2005, 12h28
  3. [VB6] Déclaration d'un tableau avec variable en paramètre.
    Par méphistopheles dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 23/10/2005, 13h21
  4. Comment obtenir un tableau à taille variable ?
    Par marsupilami34 dans le forum Langage
    Réponses: 6
    Dernier message: 27/06/2005, 16h03
  5. Fonction max d'un tableau de variables...
    Par Romalafrite dans le forum ASP
    Réponses: 7
    Dernier message: 20/07/2004, 11h38

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