• ベストアンサー

論理演算子.NOT.の使い方

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

質問者が選んだベストアンサー

  • ベストアンサー
  • ultraCS
  • ベストアンサー率44% (3956/8947)
回答No.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)になっていると思います。

pipiruru11
質問者

お礼

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

関連するQ&A