- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:この場合のフォートランのフォーマットどうすれば?)
フォートランでフォーマット変換する方法とは?
このQ&Aのポイント
- フォートランで既存のデータを変換する方法について説明します。
- 元のデータに定数をかけて引いた値を特定のフォーマットで出力する方法を解説します。
- Microsoft Visual Studio 2008を使用してフォートランでのフォーマット変換を行う手順をご紹介します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Visual StudioのFotranは知りませんが、一般的なFortranの文法では… (符号と空白を含む)全体の桁数が12桁、小数点以下が3桁、指数部が3桁ですので、 「E12.3E3」(←全角で記述してます)で良いと思います。
その他の回答 (1)
- boogeyman
- ベストアンサー率35% (163/462)
回答No.2
>という感じで指数のマイナスが出ないのですがどうしたらいいのでしょう? 問題は、「x(i)=10/i」ですね。 整数の定数(10)を、整数の変数(i)で割っているので、演算が整数(小数以下切り捨て)になります。 その結果、 X(1) = 10 X(2) = 5 X(3) = 3 X(4) = 2 X(5) = 1 X(6) = 1 : X(9) = 1 X(10) = 1 X(11) = 0 X(12) = 0 : (以下、全てゼロ) となります。 「x(i) = 10./i」、「x(i) = 10/FLOAT(i)」、「x(i) = 10./FLOAT(i)」などに書き換え、実数で演算するようにして下さい。 もし、FLOAT()関数が無ければ、 do 100 i=1,10000 a=i ! (←整数iを実数aに変換) x(i)=10./a ! (←実数で演算) 100 continue と書き換えてください.
質問者
お礼
なるほどそうなっているのですね。出来ました。ありがとうございます!!
お礼
character*30 fileout dimension x(10000) write(*,*)'out put file name' read(*,*)fileout do 100 i=1,10000 x(i)=10/i 100 continue open(10,file=fileout,status='new') do 110 i=1,10000 write(10,1000) x(i) 110 continue 1000 format (' ',e12.3e3) close (10) end こう書いたら 0.100E+002 0.500E+001 0.300E+001 0.200E+001 0.200E+001 0.100E+001 0.100E+001 0.100E+001 0.100E+001 0.100E+001 0.000E+000 0.000E+000 0.000E+000 0.000E+000 0.000E+000 0.000E+000 0.000E+000 0.000E+000 0.000E+000 という感じで指数のマイナスが出ないのですがどうしたらいいのでしょう?