Gosub - コマンドリファレンス

Casio Basicプログラミング - コマンドリファレンス
<コマンドリファレンス・トップ>

誤字脱字・記載ミスや分かりにくい表現は随時追記・修正します

2018/01/21

[C.Basic] [FX / CG]


Gosub




プログラムファイル内のサブルーチンへジャンプする。ジャンプの際に引数と戻り値を指定することが可能。純正Casio Basicにはない C.Baisc 独自コマンドで、Goto コマンドを拡張したもの。

Prog コマンドで別のプログラムファイルを呼び出す代わりに、Gosub / Lbl / Return で同じファイル内に記述したルーチンを実行することが可能になる。


(書式) Gosub <ジャンプ先ラベル>[,<引数1>[,<引数2>]...]

ジャンプ先ラベルは、プログラムファイル内に記述した Lbl ラベル。例えば Gosub E に対して Lbl E で受ける。ここで使えるラベルは Goto / Lbl で使えるラベルと同じで、09AZ、さらに azr ([ALPHA][x^2]のr)θ ([ALPHA][∧]のθ) が使える。或いは、Alias コマンドで指定した別名ラベルも使える。

指定ラベルへジャンプした後、Gosub実行位置へ戻るには、必ず Return コマンドを用いる。制御コマンドが無い場合は、処理がそのまま下へ続く。Return コマンドを用いる際、C.Basic で拡張された機能として、戻り値を指定できる。例えば Return X とすると 変数 Ans に 変数Xの内容が格納され、Gosub コマンド位置に制御が戻る。Gosub の直後で 変数 Ans を参照すると 変数 X の値が得られる。

(例)
 10->X
 Gobus A
 Disp Ans
 Stop

 Lbl A
 Return 2X


Gosub 以外に Lbl A に到達しないように Stopコマンドを用いている。Lbl A にジャンプ後 2Xを変数 Ansで返す。Disp Ans2X の結果 (=20) を表示する。


<引数n> はジャンプ先へ渡す変数を指定する。
ジャンプ先に渡す変数はジャンプ先で別名変数にできる。その場合は Local コマンドを利用する。別名変数は全ての変数が使えるが、プログラムの可動性を得るために小文字使用を推奨する。

例えば、Gosub で変数XYを渡し、ジャンプ先で渡された変数を a, z として利用するときは、

Gosub A,X,Y
・・・
Lbl A
Local a,z


と記述する。なお 変数 X, Y, a, z はプログラム内で共通して使える大域変数のままである点に注意。但しジャンプ先ラベル以下で別名変数として擬似的なローカル変数として使えるので、コマンド名が Local になっている。

(例)
  10→X
  20→Y
  X+1→a
  Y×2→b
  Gosub A,X,Y
  Disp Ans
  Disp a
  Disp b
  Stop

  Lbl A
  Local a,b
  Dips a
  Disp b
  Return a+b


-------------実行結果
  10
  20
  30
  10
  20
-------------

Gosub 実行前は、X=10Y=10a=11b=20 となっている。
Gosub 実行により Lbl A へジャンプし、ジャンプ後 Local コマンドで、変数 X の値は 変数 a に格納、変数 Y の値は 変数 b に格納される。この時点で、a=10b=20 となる。これによりジャンプ前の変数 ab の値は変更されている。
Return a+b により a+b の値は変数 Ans に格納され、Gosub の位置へ戻る。
従って、Disp Ans30 と表示され、Disp a10と、Disp b20 と表示される。




応援クリックをお願いします。励みになるので...
にほんブログ村 IT技術ブログ 開発言語へ






keywords: プログラム関数電卓、Casio Basic、C.Basic、プログラミング

リンク集 | ブログ内マップ





関連記事

テーマ : プログラム関数電卓
ジャンル : コンピュータ

トラックバック


この記事にトラックバックする(FC2ブログユーザー)

コメントの投稿

非公開コメント

最新記事
検索フォーム
最新コメント
カテゴリ
プログラム電卓全般 (21)
Casio Basic全般 (170)
プログラムライブラリ (18)
Casio Basic入門 (74)
コマンドリファレンス (27)
Casio Basicプログラミング (31)
アドイン版 Caso Basic (37)
C.Basic (22)
C:Basic (2)
機種別トピックス (61)
スタンダード関数電卓 (12)
fx-5800P (8)
fx-5800P プログラム (20)
fx-9860GII (7)
fx-9860GII への移植 (4)
fx-CG20 (2)
fx-CG50 (6)
fx-CG50 への移植 (2)
インサイドCasio Basic (23)
Inside Casio Basic (11)
e-Gadget (90)
楽屋裏 (33)
番外編 - パソコンなど (25)
Windowsプログラミング (6)
C# (3)
VC++ (0)
No music No life (1)
仮置き(未分類) (0)
Visitors
Online Counter
現在の閲覧者数:
プロフィール

やす (Krtyski)

Author:やす (Krtyski)
since Oct 30, 2013


プログラム電卓は、プログラムを作って、使ってナンボ!

実際に触って気づいたこと、自作プログラム、電卓プログラミングについて書いています。

なお管理人はカシオ計算機の関係者ではなく、Casio Basicが面白いと感じる1ユーザーです。


写真: 「4駆で泥んこ遊び@オックスフォード郊外」

リンク
月別アーカイブ
Sitemap

全ての記事を表示する

ブロとも申請フォーム

この人とブロともになる

QRコード
QR