• 検索結果がありません。

回文作成支援プログラム

N/A
N/A
Protected

Academic year: 2021

シェア "回文作成支援プログラム"

Copied!
8
0
0

読み込み中.... (全文を見る)

全文

(1)

プログラムの概要

スタートボタンをクリックすると3個のピクチャーボックスの 絵がランダムに変化する。 次にストップボタンをクリックすると3個のピクチャーボック スの絵が止まり、3個の絵柄が総て揃えば『あたり』、2個の絵 柄が揃えば『おしい』、総ての絵柄が異なれば『はずれ』と表示 される。 終了ボタンをクリックすると、プログラムをメモリから消去して 終了する。

スロットプログラム

VB⑥ □ 定数の宣言(Const) □ 単純変数の宣言(Dim) □ 配列変数の宣言(Private) □ 標準コントロールの利用(Label、Picture、Command、Timer) □ プロパティの値の取得と設定(Caption、BackColor、Enabled、Image) □ イベントの利用(Click、Load、Timer) □ メソッドの利用(PaintPicture) □ ステートメントの利用(Unload、End、Randomize) □ 組込関数の利用(RGB、Rnd) □ 演算子(代入演算子、論理演算子、算術演算子) □ 制御構造構文(条件分岐、ループ処理) 今回の課題項目 □ タイマーの利用(一定時間間隔でのイベントの発生)

□ If文に依る条件分岐(If ~ Then … ElseIf … Else … End If)

□ For文に依るループ処理(For counter=start To end: … :Next counter) □ 乱数系列の初期化と乱数の発生(Randomize、Rnd)

今回の重点項目

□ 各絵柄を個別に停止する事が出来る様にする。 □ 各絵柄を一定の順番で回転させる様にする。

(2)

■ オブジェクト・プロパティ一覧 ■ コントロールの種類 プロパティ プロパティの設定値 フォーム オブジェクト名 Form1 Caption ルパンⅢ世のスロット BorderStyle 1-固定(実線) BackColor &H00FFFFC0&(薄い水色) Icon Lupin_1.ico(アイコンファイル) StartUpPosition 2-画面の中央 ラベル1 オブジェクト名 lblTitle Caption ルパンⅢ世のスロット Font HG 創英角ポップ体、ヘビー、20 ラベル2 オブジェクト名 lblMes BorderStyle 1-実線 BackColor &H00FFFFFF&(白) Caption 空白 Font HG 創英角ポップ体、ヘビー、20 ピクチャー1 オブジェクト名 picBoard AutoRedraw True AutoSize True Picture Lupin_1.ico(アイコンファイル) Index 0~2(コントロール配列) コマンドボタン1 ピクチャー1 コントロール配列 (0~2) ラベル1 ラベル2 ピクチャー2 コントロール配列 (0~4) コマンドボタン2 コマンドボタン3 タイマー

(3)

コントロールの種類 プロパティ プロパティの設定値 コマンドボタン1 オブジェクト名 cmdStart Caption スタート Font HG 創英角ポップ体、ヘビー、16 BackColor &H00FFFF80&(薄い水色) Picture Lupin_1.ico(アイコンファイル) Style 1-グラフィックス コマンドボタン2 オブジェクト名 cmdStop Caption ストップ Font HG 創英角ポップ体、ヘビー、16 BackColor &H00FFFF80&(薄い水色) Picture Lupin_1.ico(アイコンファイル) Style 1-グラフィックス コマンドボタン3 オブジェクト名 cmdFinish Caption 終了 Font HG 創英角ポップ体、ヘビー、20 BackColor &H00FFFF80&(薄い水色) Style 1-グラフィックス タイマー オブジェクト名 tmrGame Enabled False Interval 100 ラベル テキストを表示するコントロール。此のテキストは、ユーザーが直接入力したり変更したりす る事は出来ない。 ピクチャーボックス ビットマップ、アイコン、メタファイル、JPEGファイル、GIFフィル等の画像を表示す るコントロール。描画メソッドを用いて、円や直線等のグラフィックを描画する事も出来る。 亦、他のコントロールを内包するコンテナに成る事も出来る。 コマンドボタン ユーザーが選択したコマンド(命令)や操作を実行するコントロール。OKボタンや実行ボタ ン等、処理の開始や中断・終了の合図に用いられ、最も良く利用されるコントロールです。 タイマー 一定の時間間隔でイベントが発生する様にするコントロール。一定時間毎にプログラムを実行 したい時に使用する。此のコントロールは、実行時には表示されない。

(4)

■ プログラムリスト ■

Option Explicit

' フォームレベルでグローバルな定数の宣言 Private Const NP As Integer = 5

' フォームレベルでグローバルな変数の宣言 Private BD(2) As Integer

' コマンドボタン(終了)がクリックされた時の処理 Private Sub cmdFinish_Click()

' プログラムをメモリから消去し終了する Unload Me

End End Sub

' コマンドボタン(スタート)がクリックされた時の処理 Private Sub cmdStart_Click()

' メッセージ欄を初期化する lblMes.Caption = "" lblMes.BackColor = RGB(255, 255, 255) ' タイマーを有効化する tmrGame.Enabled = True End Sub ' コマンドボタン(ストップ)がクリックされた時の処理 Private Sub cmdStop_Click()

' タイマーを無効化する tmrGame.Enabled = False ' 当り判定を行う If BD(0) = BD(1) And BD(1) = BD(2) Then lblMes.Caption = "あたり" lblMes.BackColor = RGB(0, 0, 255) ElseIf BD(0) = BD(1) Or BD(1) = BD(2) Or BD(0) = BD(2) Then lblMes.Caption = "おしい" lblMes.BackColor = RGB(0, 255, 0) Else lblMes.Caption = "はずれ" lblMes.BackColor = RGB(255, 0, 0) アプリケーションを終了す る場合、正しくプログラムを メモリから消去して終了す る事が望ましい。 此の場合のイコール(=)記 号は、代入演算子で有り、右 辺の値を左辺に代入する働 きをする。 ダブルコーテーションの間 に何も記述せず2個連続し て記述すると、長さ0の文字 列(ヌルストリング)を意味 し、文字列の消去等に利用す る。 此処で宣言した変数は同じ フォーム内の総てのサブプ ロシージャで値の参照と設 定を行う事が出来る。 条件判定に、比較演算子を使 用して居る。 A = B : AとBは等しい

(5)

' フォームが読み込まれた時の処理 Private Sub Form_Load()

' サブプロシージャレベルでローカルな変数を宣言する Dim I As Integer ' 仮想画面(スロットの目)を初期化する For I = 0 To UBound(BD) BD(I) = 0 Next I ' タイマーを無効化する tmrGame.Enabled = False ' 乱数系列を初期化する Randomize End Sub ' タイマーが一定間隔で行う処理 Private Sub tmrGame_Timer()

' サブプロシージャレベルでローカルな変数を宣言する Dim I As Integer ' スロットの各目を設定する For I = 0 To UBound(BD) ' 乱数で目を決定する BD(I) = Int(Rnd * NP) ' 画像を貼り付ける picBoard(I).PaintPicture picSlot(BD(I)).Image, 0, 0 Next I End Sub 此処で宣言した変数は宣言 したサブプロシージャ内で しか値の参照と設定を行う 事が出来ない。 ループ処理ではカウンター Iの値を0から配列BDの 添字の最大値迄、順次1ずつ 変化(デクリメント)させて、 Next迄の処理を繰り返 し行う。 乱数系列を初期化する場合 に乱数の種(シード)を引数 として与える事も出来るが、 引数を省略した時は、システ ム タイマーから取得した値 が新しいシード値として使 用される。 Int関数は、引数を超えな い最大の整数を返す関数で 有るが、正の値を指定する時 には、単に整数部分を返す関 数と考えて差し支え無い。 複数の条件に依る条件分岐 ① If 条件式1 And 条件式2 Then ② If 条件式1 Or 条件式2 Then 上記①では、条件式1と条件式2が、共に真(True)で有る場合に、真と成る。And 演算子 は、論理積と呼ばれる論理演算子で、『且つ』を意味する。 上記②では、条件式1か条件式の孰れかが、真(True)で有る場合に、真と成る。Or 演算子 は、論理和と呼ばれる論理演算子で、『又は』を意味する。

(6)

If文に依る条件分岐 論理式の条件判断を行うステートメント 単一行形式① If 論理式 Then 論理式が真の場合の処理 単一行形式② If 論理式 Then 論理式が真の場合の処理 Else 論理式が偽の場合の処理 ブロック形式① If 論理式 Then 論理式が真の場合の処理 End If ブロック形式② If 論理式 Then 論理式が真の場合の処理 Else 論理式が偽の場合の処理 End If ブロック形式③ If 論理式1 Then 論理式1が真の場合の処理 ElseIf 論理式2 Then 論理式2が真の場合の処理 Else 論理式1と論理式2が偽の場合の処理 End If 論理式の条件に依りプログラムの実行を制御する。即ち、論理式が真(0以外)ならば Then 以下の処理が実行され、偽(0)ならばElse 以下の処理が実行される。但し、Else 節が無 い場合には、End If の次のコードが実行される。 通常、論理式(条件式)には比較式を指定するが、数値として評価出来る式で有ればどんな式でも指定 する事が出来る。論理式の値は、真(True)と偽(False)の孰れかとして評価され、数値の0は偽に 0以外の数値は真に評価される。 単一行形式は、短く簡単な条件判断を行う時に使用する。亦、ブロック形式は、単一行形式の構文に比 べ、より構造化された柔軟な記述が出来、コードの読み易さや保守性が向上し、デバッグも行い易く成 る。 ブロック形式かどうかを判断する場合、Then の後に何が続くかが調べらる。Then と同じ行の後ろの部 分にコメント以外の記述が有ると、単一行形式として扱われる。

Else 節と ElseIf 節はどちらも必要に応じて定義する。亦、ブロック形式では、ElseIf 節は幾つ指定し ても構わない。但し、Else 節の後ろには ElseIf 節を指定する事は出来ない。亦、1つの条件式の値に 依り、複数の処理の孰れかを実行させるには、Select Case ステートメントの方が適して居る。 機 能 書 式 解 説 論理式 真の場合の処理 偽の場合の処理 真(True) 偽(False)

(7)

For文に依るループ処理 指定した回数だけ一連の処理を行うステートメント

For カウンター変数 = 初期値 To 終了値 Step 増分 一連の処理

Next カウンター変数

For…Next ステートメントは、For ステートメントから Next ステートメントの間に記述さ れた一連の処理を、指定した回数だけ繰り返し(ループ)実行する。 Step 節は省略する事が出来、此の場合、増分はプラス1と看做される。亦、増分は、負の値を指定する 事も出来る。 For…Next ステートメントのループは、下記の順序で実行される。 1.カウンター変数に初期値が設定される。 2.カウンター変数と終了値の値を比較し、カウンター変数の値が終了値より大きい場合は、ループ 内の処理は実行されずに、ループが終了する(増分が負の値の場合は、カウンター変数が終了値 より小さいかどうかが判断される)。 3.ループ内の処理を実行する。 4.カウンター変数に増分を加算する(Step 節を省略した場合は、1が加算される)。 5.ステップ2から4を繰り返す。 Exit For ステートメントを使用すると、ループから強制的に抜け出す事が出来る。 ループ回数が事前に解からない場合には、Do…Loop ステートメントを使用する。 Rnd関数に依る乱数の発生 単精度浮動小数点型(Single)の乱数を返す関数 Rnd(引数) 0以上1未満の乱数を与える。引数の値に依り返す乱数が決まる。 発生される乱数は、引数の値に依り、下記の様に異なる。 1.引数が負の場合:指定した引数に対して常に同じ値を返す。 2.引数が0の場合:直前に発生した乱数の値を返す。 3.引数が正の場合:乱数系列の次の乱数の値を返す。 引数は括弧(パーレン)を含めて省略する事が出来、此の場合は、上記3と同じに成る。 システムタイマーから取得した新しいシード値(乱数の種)を使用して乱数系列を初期化するには、事 前にRndomize ステートメントを実行して置く。 任意範囲の整数の乱数を発生させる書式は、下記の通りで有る。 Int(Rnd(上限値 – 下限値 + 1) + 下限値) 機 能 書 式 解 説 機 能 書 式 解 説

(8)

Unloadステートメントに依るプログラムの消去 オブジェクトをメモリからアンロードするステートメント Unload Object フォーム、又は、オブジェクトをメモリから消去する。 プログラムを終了する場合や、使用中のメモリを他の用途に使う場合や、プロパティを元の値にリセッ トする場合等に使用される。 フォームをメモリからアンロードする時には、表示されて居る構成要素だけがアンロードされ、其のフ ォームモジュールのコードはメモリに保持されるが、総てのフォームがアンロードされ、実行するコー ドが無く成れば、其の時点で、イベントドリブンのアプリケーションは終了する。 Endステートメントに依るプログラムの終了 プログラムの実行を終了させるステートメント End 実行中のアプリケーションを直ちに終了させる。 End ステートメントより後のコードは実行されず、亦、End ステートメントを実行した後はイベントも 発生しない。 プログラムの通常の終了の場合には、総てのフォームをアンロードする必要が有るが、End ステートメ ントは、プログラムを強制的に停止させる手段を提供して居る。 機 能 書 式 解 説 機 能 書 式 解 説 算術演算子 比較演算子 論理演算子 1.^ 冪乗 1.= 等しい 1.Not 否定 2.- 負数 2.<> 等しくない 2.And 論理積 3.*、/ 乗算と除算 3.< より小さい 3.Or 論理和 4.¥ 整数除算 4.> より大きい 4.Xor 排他的論理和 5.Mod 剰余 5.<= 以下 5.Eqv 同値 6.+、- 加算と減算 6.>= 以上 6.Imp 包合 算術演算子と論理演算子では、複数の演算子が使用されて居る場合には、頭に付けた番号の順序で 演算が行われる(上に書かれて居る演算子程優先順位が高い)。

参照

関連したドキュメント

2)摂津市障害者地域自立支援協議会代表者会議 年 1回 3)各支援学校主催会議や進路支援等 年 5回

平成 支援法 へのき 制度改 ービス 児支援 供する 対する 環境整 設等が ービス また 及び市 類ごと 義務付 計画的 の見込 く障害 障害児 な量の るよう

設備種目 機器及び設備名称 メンテナンス内容 協定書回数

生活介護  2:1  *1   常勤2名、非常勤5名  就労継続支援B型  7.5:1+1  *2  

要請 支援 要請 支援 派遣 支援 設置 要請 要請

①生活介護 定員 60 名 ②施設入所支援 定員 40 名 ③短期入所 定員10名 ④グループホーム 定員10名 ⑤GH 併設短期入所 定員3名. サービス 定員 延 べ 利

産業廃棄物の種類 建設汚泥 廃プラスチック類 排    出  

専門研修 救急法 サニーサイド 看護師 1回 13名 介護技術研修 サニーサイド 主任支援員 1回 13名.. - 15 -