重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

fortran write文について
マチンの公式で円周率を近似するプログラムを作っています。

write(6, '(a, 1pe23.14)') 'pi=', arctan(2d-1,nterms)*16d0-arctan(1/239,nterms)

とうちたいのですが、「syntax error」と出て、wこの部分が間違っているそうです。

写真の画像は、1/239のところを変えて色々実験したものです。このコードだと「mossing exponent〜」と出ます。

arctan(1/239,nterms)のところを1とか2とかにすると正しく実行されます。

助けてください

「fortran write文について マ」の質問画像

質問者からの補足コメント

  • 皆さんありがとうございました解決しました!
    write文が長いので式を分けてみたところうまくいきました。協力していただいた皆様に感謝しますが、一番近かった方をベストアンサーとします。

    「fortran write文について マ」の補足画像1
      補足日時:2024/10/17 18:16

A 回答 (4件)

Fortran77 の言語仕様である、


本文を 7-72 桁目に書く制限に引っかかっている気がします。

そもそも見づらいので、公式の計算を別の行に分けてましょう。
    • good
    • 0

その図で気になるのは


2個の arctan のうち後ろだけ nterms のところの色が違って見える
ところかなぁ.

あとマチンの公式を再確認しておこう.
    • good
    • 0

> 変数に整数型、実数型等の型があることはわかりますが、具体的な数の型というものがわかりません。



1とか239は整数です。整数÷整数は整数除算で結果は整数、値は切り捨てなので、1/239 は 整数の 0 です。1.0/239.0 なら 0.00418・・・ です。

ただ、REAL*8の仮引数に実引数で整数を渡すように書いても、syntax error にはならないはずです。コンパイルした時のエラーじゃなくて、開発ツールの文法チェッカーとかですかね?
型不一致のまま実行しても期待通りの結果にはならないですが。

とりあえず、1.0/239.0 にして実行してみましょう。
    • good
    • 0
この回答へのお礼

ありがとうございました、小数点をつけることを忘れてたようです、参考になりました

お礼日時:2024/10/18 02:32

1/239 の型ってなんだったっけ?

    • good
    • 0
この回答へのお礼

ありがとうございます

変数に整数型、実数型等の型があることはわかりますが、具体的な数の型というものがわかりません。
有効桁数とかの関係でしょうか?
1/239の後にd0とつけて実数型と明示するのでしょうか?(それだとsyntaxerrorと出て、その部分が間違ってると言われました…)

お礼日時:2024/10/16 22:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A