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

Fortran Discussion :

F95 - constructeur de tableau :


Sujet :

Fortran

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur généraliste
    Inscrit en
    Juin 2015
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur généraliste
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2015
    Messages : 42
    Points : 38
    Points
    38
    Par défaut F95 - constructeur de tableau :
    Bonjour, je souhaite alléger mon écriture en fortran :

    par exemple, j'ai 10 paramètres à initialiser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    REAL :: X1, X2, X3, X4, Y5, Z6, A7, B8, C9, D10
    Est-il possible de réaliser celà via le constructeur de tableau comme sous l'écriture suivante ? (ou une forme approché ?)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (/ X1, X2, X3, X4, Y5, Z6, A7, B8, C9, D10 /)  = (/ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 /)
    ?

    J'ai l'impression que le contructeur de tableau ne peut pas figurer à gauche de l'initialisation ? me tromperais-je ?

    Merci tout le monde.


    (
    Pour être exacte, mon problème réel est un peu plus complexe, il consiste, j'essais de simplifier l'expression suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (/X1, X2, X3, X4, X5 /) = MERGE( ARRAY_1 , ARRAY_2 , MASK_BOOLEAN_ARRAY)
    plutot que de devoir écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    X1 = MERGE( ARRAY_1(1) , ARRAY_2(1) , MASK_BOOLEAN_ARRAY(1))
    ...
    X1 = MERGE( ARRAY_1(5) , ARRAY_2(5) , MASK_BOOLEAN_ARRAY(5))
    avec MERGE une fonction intrinsèque F95

    )

    Re-MERCI.

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Août 2006
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 974
    Points : 1 346
    Points
    1 346
    Par défaut
    Ce n'est pas possible d'avoir plusieurs variables à gauche du =.

    Et personnellement, je ne vois pas très bien l'intérêt. La minimisation du coût à long terme d'un code s'atteint rarement en minimisant le nombre de ligne. (Le langage APL est le langage le plus compact que je connaisse et l'un des plus couteux d'entretien. Idem pour l'assembleur.)

    Cela dit, tu pourrais utiliser un vecteur temporaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
       <<Type>> VectTemp(size(ARRAY_1))
     
       ...
     
       VectTemp = MERGE( ARRAY_1 , ARRAY_2 , MASK_BOOLEAN_ARRAY)
       X1 = VectTemp(1)
       X2 = VectTemp(2)
       X3 = VectTemp(3)
       X4 = VectTemp(4)

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur généraliste
    Inscrit en
    Juin 2015
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur généraliste
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2015
    Messages : 42
    Points : 38
    Points
    38
    Par défaut
    Merci Sylvain. Oui, en effet ma question n'était pas très intelligente ... Mais l'avantage des forums c'est qu'on parviens souvant à avoir des réponses beaucoup plus intelligente que ses questions !
    :-D
    Donc ...
    j'ai faut à peut près se que tu m'as dit ... je me suis autorisé à remplacer X1, X2, X3, X4, X5 par X( (/1, 2, 3, 4, 5/) )

    Du coup maintenant j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    X = MERGE( ARRAY_1 , ARRAY_2 , MASK_BOOLEAN_ARRAY)
    et j'en suis heureux

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

Discussions similaires

  1. Réflection : Appel constructeur avec tableau de classe
    Par JohnNC dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 30/12/2009, 10h46
  2. [Perl Objet] Constructeur avec tableau en parametre
    Par crochepatte dans le forum Langage
    Réponses: 9
    Dernier message: 16/08/2006, 22h07
  3. Réponses: 35
    Dernier message: 14/02/2006, 18h57
  4. pbl constructeur tableau
    Par cyrilforever dans le forum C++
    Réponses: 5
    Dernier message: 05/02/2006, 10h59
  5. [Conception][constructeur] pour faire un tableau
    Par vasilov dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 20/07/2005, 10h58

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