プロが教えるわが家の防犯対策術!

FORTRANでプログラミング中です。参考ソフトに次のような論理式が出てきますが、どういう風に解釈するのでしょうか。なお計算式は仮の例で、!コメントは当方の解釈ですが自信がありません。
--------------------------------------
IN=.TRUE. !INを真とする
(途中省略)
IF(IN) A=COS(Y) !INが真ならCOS(Y)を計算
(途中省略)
IN=(.NOT.IN)  !INを.TRUE.以外にする??
(途中省略)
IF ( .NOT. IN ) A=SIN(Y)  !意味が分かりません??
(後は省略)

A 回答 (1件)

>IN=(.NOT.IN)  !INを.TRUE.以外にする??



INの論理値を反転しています(TRUE→FALSE、FALSE→TRUE)

>IF ( .NOT. IN ) A=SIN(Y)  !意味が分かりません??

INがFALSEなら(.NOT.IN)がTRUEとなるので、A=SIN(Y)を実行

別に論理式にしないで、INをINTEGERとして
IN=1
IF(IN .EQ. 1) A=SIN(Y)
IN=MOD(IN+1,2)
IF(IN .EQ. 0) A=SIN(Y)

でも結果は同じです。論理値を用いた方がスマートで可読性が高いと言うことでしょう。
直、多くの処理系では、FALSEは0(NULL)、TRUEはそれ以外(大概は1)になっていると思います。
    • good
    • 0
この回答へのお礼

返事が遅れてすみません。
ご説明により理解できましたが、今まで.NOT.は使ったことがいので、しっくりきません。後半のご説明にある普通の関係式の方が分かりやすいので、そういう風にプログラミングします。

お礼日時:2008/01/18 11:16

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