- ベストアンサー
論理演算子.NOT.の使い方
FORTRANでプログラミング中です。参考ソフトに次のような論理式が出てきますが、どういう風に解釈するのでしょうか。なお計算式は仮の例で、!コメントは当方の解釈ですが自信がありません。 -------------------------------------- IN=.TRUE. !INを真とする (途中省略) IF(IN) A=COS(Y) !INが真ならCOS(Y)を計算 (途中省略) IN=(.NOT.IN) !INを.TRUE.以外にする?? (途中省略) IF ( .NOT. IN ) A=SIN(Y) !意味が分かりません?? (後は省略)
- みんなの回答 (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)になっていると思います。
お礼
返事が遅れてすみません。 ご説明により理解できましたが、今まで.NOT.は使ったことがいので、しっくりきません。後半のご説明にある普通の関係式の方が分かりやすいので、そういう風にプログラミングします。