Programmation en fortran d'un tableau

tsukuba Messages postés 6 Statut Membre -  
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
je voulais avoir votre aide dans la rédaction d'un programme en fortran permettant de transformer un tableau (n,m) en un tableau (p,3) càd:
input : un tableau de la forme suivante :

wl1 wl2 wl3 ................................ wl m
t1 x11 x12 x13................................ x1m
t2 x21 x22 x23 ................................ x2m
t3 x31 x32 x33 ................................ x3m
.
.
.
tn xn1 xn2 ................................ xnm

output tableau de la forme suivante :
t1 wl1 x11
t1 wl2 x12
t1 wl3 x13
.
.
.
t2 wlm x1m

t2 wl1 x21
t2 wl2 x22
t2 wl3 x23
.
.
.
t2 wlm x2m
.
.
.
tn wl1 xn1
tn wl2 xn2
tn wl3 xn3
.
.
.
tn wlm xnm

je voue remercie d'avance pour votre aide

6 réponses

  1. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    Salut.Il suffit de faire deux boucle for imbriqués et de dimensionner correctement ton tableau. Soit plus précis dans l'étape ou tu bloques.
    0
  2. tsukuba Messages postés 6 Statut Membre
     
    merci pour votre aide.
    0
  3. tsukuba Messages postés 6 Statut Membre
     
    Bonjour ,
    j'ai écrit ce programme, mais il y des erreurs, est ce que vous pouvez m'aider à corriger ce programme .

    program Temp
    implicit none
    real::table(i,j)
    integer::i,j
    real::time
    integer::wl
    integer::alt
    for i=1,23250 do
    read(*,*) time(i),wl(i),(table(i,j),j=1,27)
    for j=1,27 do
    alt(j)=j*1.0
    write(*,*) time(i),alt(j),table(i,j)
    continue
    continue
    enddo
    enddo
    endprogram Temp

    merci pour votre aide
    0
  4. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    program Temp
    implicit none
    real::table(i,j) i et j ne sont pas défini, il faut dimensionner correctement ton tableau
    integer::i,j
    real::time
    integer::wl
    integer::alt
    for i=1,23250 do
    read(*,*) time(i),wl(i),(table(i,j),j=1,27) time et wl ne sont pas des tableaux, je ne connais pas cette notation pour table.
    for j=1,27 do
    alt(j)=j*1.0 alt n'est pas un tableau. pourquoi multiplier par 1.0 alors que tu n'as que des entiers.
    write(*,*) time(i),alt(j),table(i,j)
    continue je crois que le continue est inutile, voire néfaste si tu as des enddo
    continue
    enddo
    enddo
    endprogram Temp
    

    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. tsukuba Messages postés 6 Statut Membre
     
    bonjour,

    merci pour les remarques précieuses. c'est ma première fois en programmation. je trouve un peu de difficultés .

    j'ai corrigé le programme comme suit:

    program test
    implicit none
    real,dimension (23250,31)::table
    real::time
    integer::i
    integer::j
    integer::wl
    i=1 , 23250
    read(*,*)(table(i,j),j=1,31)
    write(*,*)time(i+1),wl(j),table(i,j)
    endprogram test

    le message d'erreur qui s'affiche est " Error: Syntax error, found ',' when expecting one of: <END-OF-STATEMENT> ;
    i=1 , 23250
    ---------^
    Error executing df.exe.

    c'est quoi ce message.
    je vous remercie infiniment pour votre aide
    0
  7. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    il manque un mot clef comme "for" ou "do" pour la boucle.
    Je ne connais pas trop fortran90, donc, pour le reste, je ne sais pas trop.
    En particulier, tu es sur de read(*,*)(table(i,j),j=1,31) ?
    0