Mapleトップページ
サポート・マニュアル

条件分岐

与えられた引数や値の条件に応じた計算処理を実行する場合は、if-then-else 文を用います。

> num1 := 1024:
num2 := 533:

> if num1 > num2 then num1 else num2 end if;

1024

if 文は関数やプロシージャの中で使えます。次は、if 文を用いて階乗を計算するプロシージャを定義しています。

> fact := proc(n)
if n=0 then
return(1);
else
return(n*fact(n-1));
end if;
end proc:

> fact(10);

3628800 = 3628800

if 文では、真偽(true または false)または FAIL を判定するステートメントを指定することができます。
例えば、引数の型を判定する type 関数を使って if 文を利用することもできます。次の例は、偶数なら2で割り、奇数なら3倍して1を加えるという操作を繰り返すと、4→2→1という列に収束するというコラッツの命題をシミュレーションするための関数を定義しています。

> collatz := proc(n)
if n=1 then
print(1);
else
if type(n, even) then
print(n/2);
collatz(n/2);
elif type(n, odd) then
print(3*n + 1);
collatz(3*n + 1);
end if;
end if;
end proc:

24という整数に対して、関数 collatz を適用してみます。

> collatz(24);

12
6
3
10
5
16
8
4
2
1
1



お問い合わせ サイバネットシステム株式会社 システムCAE事業部
TEL: 03-5297-3299 (受付時間 9:00〜12:00 / 13:00〜17:30 ※土日祝及び弊社休業日を除く)
メールでのお問い合わせ  お問い合わせフォーム  お問い合わせ一覧

モデルベース開発