• 締切済み

FORTRAN77

助けてください~ --------------------------------------- 華氏゜Fが与えられた時、摂氏℃と絶対温度Zを求めよ C=(5/9)(F-32),Z=C+273.16 ここで華氏゜Fは書式カードF1.5でカードに用意されていて、数値999.9のデータを読み込んだら終わりとする。 ただし、華氏゜Fの値は、-50.0゜Fから200.0゜Fまで10.0゜Fごとに変化させる。 --------------------------------------- で、私が頑張って(っていっても教科書を見ながら)書いたのが以下です。 --------------------------------------- * write(6,200) 200 format(1h ,8x,1hf,10x,1hc, 9x,1hz) 10 read(5,100)f 100 format(f5.1) if(f.eq.999.9)stop c=(f-32.0)*5.0/9.0 z=c+273.16 write(6,201)f,c,z 201 format(1h ,3(5x,f5.1)) go to 10 end ------------------------------------- 100 formatの下からdo文を使うのが狙いかと思いますがよくわかりません。 ちなみに参考教科書は入力データが ------------------------------------- 32.5 135.5 68.3 999.9 ------------------------------------- となっていました。多分これは使わないです。 よろしくお願いします(><)

みんなの回答

  • notnot
  • ベストアンサー率47% (4900/10359)
回答No.2

DO 文は普通は回数の決まっているループを回る時に使います。途中で別の条件でループを終了することはありますが、それでも今何回目かを意識する処理で使うのが普通だと思います。 ただ、多くのコンパイラではDO WHILE が使えるので、もしそういうコンパイラを使っているなら READ(5,100) F 100 FORMAT(...) DO WHILE(F.NE.999.9) C=... Z=... WRITE(6,200) F,C,Z 200 FORMAT(...) READ(5,100) F END DO END WHILEがないコンパイラなら今のでいいと思います。

  • edomin
  • ベストアンサー率32% (327/1003)
回答No.1

上記のプログラムから、「100 FORMAT」以降を「DO」文にすると、データが1件読み込まれた後は永久ループに入ります。 どこからどこまでを繰り返したいのかをよく考えて、「GO TO」文を使わないでプログラムを作成してみたら判ると思います。

関連するQ&A

専門家に質問してみよう