|
Next: 条件分岐を描く Up: PADELの文法について Previous: ブロック |
反復処理を描く
反復には、先に判定し、真ならば内部を実行するということを繰り返す前判定反
復と、先に内部を実行し、その後で判定して、真ならばまた繰り返すという後判
定反復の2種類がある。
また、前判定の中には、回数を指定し、その回数だけ反復する、というものもあ
る。
PADELでは、前判定反復を表すのに while を、後判定を表
すのに do
少々長くなってしまったが、これはN個のデータをソートして出力するアルゴ リズムである。 まずデータ数Nを入力する。この時、入力した値が1より小さければ不正なの で、再入力を促す。 このように、まず何かを行ってから判定するのが後判定である。 次に、N個のデータを入力する。 このような、回数指定の反復は、for を使って書く。 その後で、ソーティングの際に、1つ前の値と大小を比較し、前の値の方が大き ければ交換して、また繰り返す、という操作をしている。 このような場合は前判定なので、while を使っている。 ところで、for 文と while 文は共に前判定で、出力されるPAD 図の形が同じであるが、一応回数指定の反復が for、その他の前判定反復 が while、というように使い分けておくことを勧める。 さて、最後にいくつか注意すべき点、というか、可能な書式について述べておこう。 まず、反復部が1命令のみの場合、{ } で囲む必要はない。 つまり、
といった書き方が可能である。 もちろん { } で囲んだとしても何も問題はない。 さらに、
のように、反復部がなくても構わない。 但し、その場合は必ず { } で囲まなければいけない。 ところが、C言語の真似をして、 for(i = 1, N) input A[i] と書くとエラーになってしまうので注意してほしい。 これは、for(i = 1, N) という反復命令と、input A[i] という命令と、2命令を1行に書いたことになり、1行1命令の原則に反して いるのである。 もちろん、
と書いても駄目である。
また、{ の前や、do
但し、他の箇所では改行はしてはいけない。 また、空白は適当に入れて構わない。
条件式には、任意の文字列を書くことができる。
|
|
プログラムのPAD図自動描画ソフト pad2ps に戻る。 吉田 誠一のホームページ に戻る。 Copyright(C) Seiichi Yoshida (comet@aerith.net). All rights reserved. Sat Nov 9 21:27:17 JST 1996 |