Mon, July 19, 2004
Igor Pro lecture No. 11
フロー制御 (do - while)
一連の作業を繰り返す命令として、do - while 命令、条件分岐を行う命令として、if - endif 命令がある。
■まずはdo - while 命令について解説する。これは、繰り返したい命令を do と while に挟んで使用する。以下のようなプロラムをMacroに書き込んでみよう。
Macro PrintTime()
variable i=0
do
print i, time()
i+=1
while (i < 10 )
end
・はじめの variable i=0 は、ループのカウンタだ。後に述べる while の条件確認のために必要だ。
・次に、doで繰り返し命令を実行し、その後に繰り返したい命令を書く。
・ここでは、何回目のループかと示すために、i を表示し、さらにtime関数を使って現在時刻を表示した。
・i+=1というのは、i に加える量は+1であるという意味だ。i = i + 1 でも同じ意味だ。
・while とその後の条件文で、このループはとじる。ここでは、i が10よりも小さければ繰り返しとした。つまり10回目でi=9となったとき、iに1が加えられて10となったとき、もはやi は10未満ではなくなるため、ループを脱出する。出力結果は、いかのようになるはずだ。
・PrintTime()
0 6:53:29 PM
1 6:53:29 PM
2 6:53:29 PM
3 6:53:29 PM
4 6:53:29 PM
5 6:53:29 PM
6 6:53:29 PM
7 6:53:29 PM
8 6:53:30 PM
9 6:53:30 PM
■続いて if文について説明する。例えば、以下のようなプログラムを実行させてみよう。
Macro PosOrNeg()
variable GNZ=gnoise(1)
variable signOfGNZ=sign(GNZ)
if (signOfGNZ==1)
print "Positive", GNZ
else
print "Negative", GNZ
endif
end
・GNZという乱数を発生させ、signOfGNZに、その符号を返す。sign関数は正なら+1、負なら-1を与える。
・if, else, endif から構成させ、これらの間にそれぞれの場合のプログラムを書く。
・変数に数を代入する場合、「=」であるが、同等である事を示す場合は、「==」のようにイコールを二つ続けて書くことがポイントだ。
・ちなみに、( A <= B ), ( A >= B ), ( A != B ) は、それぞれ(A は B 以下)、(A は B 以上)、(A は B ではない)を表している。
posted at July 19, 2004 05:27 PM
« Igor Pro lecture No. 10 | ホームに戻る | Igor Pro lecture No. 12 »
さんのサイン・インを確認しました。 (サイン・アウト)
(いままで、ここでコメントしたとがないときは、コメントを表示する前にこのウェブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)