Programmation en fortran d'un tableau

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. Contributeur
    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.
    1. 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
      1. Contributeur
        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
        

        1. 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
          1. Contributeur
            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) ?