Programmation en fortran d'un tableau

Fermé
tsukuba Messages postés 5 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 5 février 2013 - 1 févr. 2013 à 06:41
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 5 févr. 2013 à 11:37
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


A voir également:

6 réponses

Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
1 févr. 2013 à 08:16
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
tsukuba Messages postés 5 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 5 février 2013
1 févr. 2013 à 14:52
merci pour votre aide.
0
tsukuba Messages postés 5 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 5 février 2013
5 févr. 2013 à 03:54
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
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
5 févr. 2013 à 08:18
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

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

Posez votre question
tsukuba Messages postés 5 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 5 février 2013
5 févr. 2013 à 09:20
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
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
5 févr. 2013 à 11:37
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