D05 繰り返し処理

Sequenceコマンド

GeoGebraの限られたプログラミング環境では、Sequenceコマンドが最後の砦です。

Sequence[式, 変数 i, 数値 a, 数値 b]

Sequence[式, 変数 i, 数値 a, 数値 b, 増分]:

数値 a から数値 b までを動くインデックス i と与えられた式を用いて作成されたオブジェクトのリストを作成します。増分があれば、i はその増分ずつ増加します。

繰り返し回数が事前に決まっている繰り返し処理

例として、曲線y=x2上の、x座標が a から b までの整数値である点をプロットするツールを作成してみます。

a = -1

b = 3

L = Sequence[(i,i^2), i, a, b]

Sequenceコマンドはリストを作成するコマンドですが、プロットしたい点のリストを作成させることで、グラフィックスビューに点がプロットされます。出力オブジェクト L、入力オブジェクト a と b としてツールを作成し、コマンド名 plot とすると、入力バーでは、

plot[-2, 6]

などとして利用できます。返り値はあくまでも点のリストであることには注意が必要です。

条件を満たすとループを終了する繰り返し処理

数値のリスト L の要素を先頭から順に見ていき、その値 a が3以下であるときは、点 (a,a2) をプロットし、3を超えたら処理を終了するというコマンドを考えます。

L = {0, 1, 2.5, 3, 4, 2, 5}

L2 = Sequence[If[Element[L,i]>3, i, 1/0], i, 1, Length[L]]

e = Min[L2] - 1

M = Sequence[(Element[L,i],Element[L,i]^2), i, 1, e]

入力オブジェクト L、出力オブジェクト M でツールが作成できます。3以下のものすべてに対してプロットするなら、KeepIf コマンドで解決できますが、途中で中断するならばやや複雑です。もっとよい解もありそうですが。