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 :

Moyennes pondérées entre valeurs d'un fichier


Sujet :

Fortran

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2011
    Messages : 31
    Points : 28
    Points
    28
    Par défaut Moyennes pondérées entre valeurs d'un fichier
    Bonjour à tous,

    Je suis face à un problème que j'ai bien des difficultés à résoudre.

    Je vais essayer de vous l'exposer le plus clairement possible.

    Dans un programme fortran90, je dispose d'un tel vecteur de nombre : [113,115]
    puis d'un second, représentant des pourcentages : [40,60].

    Je dispose également dans un dossier d'une série de fichier obtenue en sortie d'un programme nommé du type "fichier_113" et "fichier_115".

    Chacun des deux fichiers contiennent des chroniques de valeurs journalières pour deux paramètres et sont structurés de la façon suivante

    Fichier_113
    annee mois jour1 0.45 0.78
    annee mois jour2 0.74 0.66
    annee mois jour3 0.45 0.11
    ...

    Fichier_115
    annee mois jour1 0.01 0.65
    annee mois jour2 0.55 0.78
    annee mois jour3 0.15 0.03
    ...

    Chacun des deux fichiers comportent le même nombre de lignes.

    Mon objectif est d'obtenir dans un nouveau fichier (structuré de la même façon) les moyennes pondérés de ces deux paramètres.

    Le fichier obtenu serait donc du type

    annee mois jour1 [0.45*40+0.01*60] [0.78*40+0.65*60]
    annee mois jour2 [0.74*40+0.55*60] [0.66*40+0.78*60]
    annee mois jour3 [0.45*40+0.15*60] [0.11*40+0.03*60]

    Je ne parviens pas à gérer de façon automatique les ouvertures de fichiers, problème d'unité logiques, de lecture de fichiers...

    Merci d'avance de votre aide,

    N'hésitez pas à me faire savoir s'il vous faut plus d'informations,

    nicolas823

  2. #2
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2013
    Messages : 35
    Points : 65
    Points
    65
    Par défaut
    Bonsoir,

    peut être que le canevas ci-dessous pourra vous être utile pour résoudre certains de vos problèmes :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    program wmean
     
    implicit none
     
    character(*), parameter :: prefix = "fichier_"
     
    type rec
     integer :: yyyy , &
    			mm	 , &
    			dd
     real :: x, y
    end type rec
     
    integer, dimension(2) :: fnbr = (/113,115/)
    real, dimension(2) :: w = (/0.4,0.6/)
    character(len = 11) :: fname
    type(rec) :: r1, r2, r3
    integer :: err1 = 0, err2 = 0
     
    write(fname,'(a8,i3.3)') prefix,fnbr(1)
    open(unit = 10, file = fname, iostat = err1)
    if (err1 > 0) then
    	print '("Error : ",a11," not found.")', fname
    	stop
    end if
     
    write(fname,'(a8,i3.3)') prefix,fnbr(2)
    open(unit = 11, file = fname, iostat = err2)
    if (err2 > 0) then
    	print '("Error : ",a11," not found.")', fname
    	stop
    end if
     
    read(10,*, iostat = err1) r1
    read(11,*, iostat = err2) r2
     
    do while ((err1 == 0).AND.(err2 == 0))
    	r3 = r1
    	r3%x = w(1)*r1%x + w(2)*r2%x
    	r3%y = w(1)*r1%y + w(2)*r2%y
    	write(*,*) r3
    	read(10,*, iostat = err1) r1
    	read(11,*, iostat = err2) r2
    end do
     
    close(10)
    close(11)
     
    end program wmean

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2011
    Messages : 31
    Points : 28
    Points
    28
    Par défaut
    Merci pour votre réponse !!!

    nicolas823

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/05/2014, 14h05
  2. Réponses: 6
    Dernier message: 27/03/2012, 15h58
  3. Vérifier les valeurs d'un fichier en entrée
    Par delphine_lep dans le forum Oracle
    Réponses: 1
    Dernier message: 15/05/2006, 16h49
  4. [XSL]récupérer une valeur de plusieurs fichiers XML
    Par snoop dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 05/02/2006, 00h32
  5. [D6] Recherche d'une valeur dans un fichier
    Par Lung dans le forum Langage
    Réponses: 2
    Dernier message: 06/09/2005, 08h26

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