2019年度 機械システム工学科 計算機基礎実習I

目次

  • 0.前回の課題の確認
  • 1.プロシージャ
  • <今回の課題>

0.前回の課題の確認

前回のレポート情報は,こちらです.

1.プロシージャ

ある作業をするプログラムを,別々の場所から呼び出して 使いまわす方法です.

呼び出し元から,引数としてプロシージャへ情報を受け渡します.

呼び出し元へ,結果を返したい場合はFunctionを用います.

※今まで出てきた命令や関数は,SubやFunctionと同等です. 例えば,MsgBox や,InputBox,Rnd 関数など.

つまり,命令(コマンド)が作成できると考えても良いです.

例題9

  • 「例題9a」の入力と実行.
  • 「例題9b」の入力と実行.

ここまでできた

変数などの適用範囲

Dim や Const の宣言は,プログラム全体に対して有効ではありません.

例題を実行して,宣言の範囲を確認しましょう.

例題9

  • 「例題9c」の入力と実行.
  • 「例題9d」の入力と実行.
  • 「例題9e」の入力と実行.

ここまでできた

引数

コマンドを実行する際にも,引数を用いていました.例えば,

MsgBox prompt, buttons, title, helpfile, context
InputBox (prompt, title, default, xpos, ypos, helpfile, context)

省略可能な引数 という設定も可能です.

通常は,プロシージャの中で引数に使われている変数の値を変更すると 元の変数も変更されます. これをうまく利用すれば,複雑な戻り値を返すことが可能です. Function では,一つの値しか返さないが, この方法では,複数の値を返すことができます. ただし使い方を周知させないと,わかりにくいプロシージャとなります (勝手に変数の値を書き換えることに注意).

呼び出し元の変数の値を書き換えたくない場合は,ByVal を指定 します.ただし,ByRef と混同すると紛らわしいので, そういう場合は,プロシージャの始めに,一時的な変数にコピーし, その変数をプロシージャの中で利用するのがよいです.

Sub ScanLine(X as integer, Y as integer)
Dim Tmp_X as integer, Tmp_Y as integer
Tmp_X = X: Tmp_Y = Y
...
作業中に変数の値を変更するときは,
Tmp_X = hogehoge
Tmp_Y = hogehoge
...
End Sub

例題10

  • 「例題10a」の入力と実行.
  • 「例題10b」の入力と実行.
  • 「例題10c」の入力と実行.

ここまでできた

今回の課題

  • p.53-55 のEXERCISE の答えを,メールで提出しなさい.
    • Ex.5.4 は,数字3 を5に変更し,会話を二つ追加しなさい.

    [提出方法]

    • 〆切:6月28日20時まで.
    • 提出アドレス:kikai@elec.ryukoku.ac.jp
    • 件名(Subject):Report9 (半角英字)