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

回文作成支援プログラム

N/A
N/A
Protected

Academic year: 2021

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

Copied!
9
0
0

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

全文

(1)

プログラムの概要

原文を1 字入力する度に、其の回文が順次表示さ れる。即ち、『AB』と入力すると『ABA』と 表示され、『ABC』と入力すると『ABCBA』 と表示される。 亦、消去ボタンをクリックすると、原文、及び、 回文を消去する事も出来る。 終了ボタンをクリックすると、プログラムをメモ リから消去して終了する。

回文作成支援プログラム

VB① □ 単純変数の宣言(Dim) □ 標準コントロールの利用(Text、Label、Command、Image) □ プロパティの値の取得と設定(Text、Caption) □ イベントの利用(Click、Change) □ メソッドの利用(SetFocus) □ ステートメントの利用(Unload、End) □ 組込関数の利用(Len、Left、Mid、Right、Str、Trim、StrConv) □ 演算子(代入演算子、比較演算子、結合演算子) □ 制御構造構文(条件分岐、ループ処理) 今回の課題項目 □ 変数の適用範囲(スコープ:サブプロシージャレベル) □ If文に依る条件分岐(If ~ Then … Else … End If)

□ For文に依るループ処理(For counter=start To end: … :Next counter) □ 文字列操作(文字列操作関数) 今回の重点項目 □ 文字列の任意部分を入れ替えたりする等の機能を追加する。 □ 常にキャレットが入力文字列の末尾に在り、入力が行い易い様にする。 □ 文字列を右回転させたり、左回転させたり、反転させたり出来る様にする。 今回の応用項目

(2)

■ オブジェクト・プロパティ一覧 ■ コントロールの種類 プロパティ プロパティの設定値 フォーム オブジェクト名 Form1 Caption 回文作成 ラベル1 オブジェクト名 lblTitle Caption 回文作成支援プログラム Font MSゴシック、太字、16 ラベル2 オブジェクト名 lblMessage Caption 原文の欄に仮名文を入力して下さい ラベル3 オブジェクト名 lblItem1 Caption 原文 Font MSゴシック、太字、16 ラベル4 オブジェクト名 lblItem2 Caption 回文 Font MSゴシック、太字、16 ラベル5 オブジェクト名 lblDest Caption 空白 Font MSゴシック、標準、16 BorderStyle 1 – 実線 Appearance 0 – フラット ラベル6 オブジェクト名 lblItem3 Caption 原文の字数 コマンドボタン2 イメージ1 イメージ2 ラベル1 ラベル2 ラベル3 ラベル4 ラベル6 ラベル5 ラベル8 ラベル7 ラベル9 テキスト コマンドボタン1

(3)

コントロールの種類 プロパティ プロパティの設定値 ラベル8 オブジェクト名 lblLenSrc Caption 0 Font MSゴシック、標準、16 BorderStyle 1 – 実線 Appearance 0 – フラット Alignment 1 – 右揃え ラベル9 オブジェクト名 lblLenDest Caption 0 Font MSゴシック、標準、16 BorderStyle 1 – 実線 Appearance 0 – フラット Alignment 1 – 右揃え テキスト オブジェクト名 txtSrc Text 空白 Font MSゴシック、標準、16 IMEMode 4 – 全角ひらがな コマンドボタン1 オブジェクト名 cmdClear Caption、Font 消 去(MSゴシック、太字、12) コマンドボタン2 オブジェクト名 cmdFinish Caption、Font 終了(MSゴシック、太字、12) イメージ オブジェクト名 imgLogo1 Picture logo1.gif イメージ オブジェクト名 imgLogo2 Picture logo2.gif ラベル テキストを表示するコントロール。此のテキストは、ユーザーが直接入力したり変更したりす る事は出来ない。 テキストボックス テキストの入力や表示を行うコントロール。此のテキストは、ユーザーが直接入力したり変更 したりする事が出来る。 コマンドボタン ユーザーが選択したコマンド(命令)や操作を実行するコントロール。OKボタンや実行ボタ ン等、処理の開始や中断・終了の合図に用いられ、最も良く利用されるコントロールです。 イメージ ビットマップ、アイコン、メタファイル、JPEGファイル、GIFファイル等の画像を表示 するコントロール。描画メソッドを用いて描画する事は出来ない。

(4)

■ プログラムリスト ■

Option Explicit

' コマンドボタン(消去)がクリックされた時の処理 Private Sub cmdClear_Click()

' テキストボックスとラベルの表示を消去する txtSrc.Text = "" lblDest.Caption = "" ' テキストボックスにフォーカスを移す txtSrc.SetFocus End Sub ' コマンドボタン(終了)がクリックされた時の処理 Private Sub cmdFinish_Click()

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

End End Sub

Private Sub txtSrc_Change()

' サブプロシージャレベルでローカルな変数を宣言する Dim S As String Dim D As String Dim T As String Dim I As Integer ' データを代入する S = txtSrc.Text D = S ' 回文を作成する If Len(S) > 0 Then T = Left$(S, Len(S) - 1)

For I = Len(T) To 1 Step -1 D = D & Mid$(T, I, 1)

Next I End If

' データを表示する lblDest.Caption = D

lblLenSrc.Caption = StrConv(Trim$(Str$(Len(S))), vbWide) lblLenDest.Caption = StrConv(Trim$(Str$(Len(D))), vbWide)

アプリケーションを終了す る場合、正しくプログラムを メモリから消去して終了す る事が望ましい。 此の場合のイコール(=)記 号は、代入演算子で有り、右 辺の値を左辺に代入する働 きをする。 ダブルコーテーションの間 に何も記述せず2個連続し て記述すると、長さ0の文字 列(ヌルストリング)を意味 し、文字列の消去等に利用す る。 条件判定に、比較演算子を使 用して居る。 A > B : AはBより大きい 此処で宣言した変数は宣言 したサブプロシージャ内で しか値の参照と設定を行う 事が出来ない。 此処では、数値を文字列に変 換して、余分な空白を取り除 き、最後に全角文字に変換し て居る。 テキストボックスの Text プ ロパティに文字列を代入す る事に依り、テキストボック スの表示文字列を変更する。

(5)

変数(variable)とは 変数とは、プログラムの実行中に変更出来る特定の型のデータを入れる名前付きの場所を謂 う。通常、適切な名前を付けて宣言し、数値、文字列、其他のデータを代入(格納)したり 演算に使用する。 コンピュータのメモリ(記憶装置)は、夫々の場所を示すアドレス(番地)が割り当てられ て居る。アドレスは、実装されたメモリ空間の特定の場所を指し示す数値で有り、メモリに 記憶(保存)されたデータは、其のアドレスに依り参照される。 併し、BASIC等の高級言語では、データの記憶場所と変数名が自動的に関連付けられる 為、データが記憶されたアドレスを覚えて置く必要は無く、データを、其の内容を連想し易 い名前で参照する事が出来る。 変数とは、データを入れて置く為の箱の様な物で、其の箱を区別する為に、内容が解り易い 名前(変数名)を付けて居ると考えると良い。 代入文 左辺の変数やオブジェクトのプロパティに、右辺の式の値を代入する。 下記の様な式を代入文と呼ぶ。此処で使用して居る=(イコール)は、数学の等号の様に左 辺と右辺が等しいと謂う意味では無く、右辺の計算式の値を左辺の変数等に代入すると謂う 意味で有る。 X=10 = 10 A=X+Y = + 此の代入文の右辺には数値、変数、式を記述する事が出来るが、右辺には1個の変数、又は オブジェクトのプロパティしか記述する事が出来ない。例えば、X+Y=Aと謂う様な記述 は出来ない。 定 義 解 説 機 能 解 説 X A X 10 Y 20 左辺の値(10)を代入 左辺の値(10+20)を代入

(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つの条件式の値に 機 能 書 式 解 説 論理式 真の場合の処理 偽の場合の処理 真(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 ステートメントを使用する。 Len関数に依る文字数の取得 文字列の長さを返す関数 Len(引数) 指定した文字列の文字数を返す。 引数には、文字列、又は、文字列を格納した変数を指定し、必ず指定する。 Left関数に依る文字列の取得 文字列の左端から指定した文字数分の文字列を返す関数 Left(引数1, 引数2) 引数1で指定した文字列の左端から引数2で指定した文字数を取り出した文字列を返す。 引数1には、文字列、又は、文字列を格納した変数を指定し、必ず指定する。 引数2には、取り出す文字列の文字数を指定し、必ず指定する。 機 能 書 式 解 説 機 能 書 式 解 説 機 能 書 式 解 説

(8)

Right関数に依る文字列の取得 文字列の右端から指定した文字数分の文字列を返す関数 Right(引数1, 引数2) 引数1で指定した文字列の右端から引数2で指定した文字数を取り出した文字列を返す。 引数1には、文字列、又は、文字列を格納した変数を指定し、必ず指定する。 引数2には、取り出す文字列の文字数を指定し、必ず指定する。 Mid関数に依る文字列の取得 文字列から指定した文字数分の文字列を返す関数 Mid(引数1, 引数2, 引数3) 引数1で指定した文字列の引数2で指定した位置から引数3で指定した文字数を取り出し た文字列を返す。 引数1には、文字列、又は、文字列を格納した変数を指定し、必ず指定する。 引数2には、文字列を取り出す位置を先頭を1とした位置で指定し、必ず指定する。 引数3には、取り出す文字列の文字数を指定し、省略する事が出来る(省略時は文字列の最後迄)。 Str関数に依る数値の文字列化 数式の値を文字列で表した値で返す関数 Str(引数) 引数で指定した数値を文字列に変換する。 引数には、数値、又は、数値を格納した変数を指定し、必ず指定する。 Str 関数で数値を文字列に変換した場合、先頭に符号を表示するためのスペースが常に確保される。数 値が負の場合はマイナス記号(-)が、正の場合はスペースが付加される。 Trim関数に依る余分な空白の削除 文字列の先頭と末尾のスペースを削除した文字列返す関数 Trim(引数) 機 能 書 式 解 説 機 能 書 式 解 説 機 能 書 式 解 説 機 能 書 式

(9)

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 包合 算術演算子と論理演算子では、複数の演算子が使用されて居る場合には、頭に付けた番号の順序で 演算が行われる(上に書かれて居る演算子程優先順位が高い)。

参照

関連したドキュメント

目標 目標/ 目標 目標 / / /指標( 指標( 指標(KPI 指標( KPI KPI KPI)、実施スケジュール )、実施スケジュール )、実施スケジュール )、実施スケジュールの の の の設定

成果指標 地域生活支援部会を年2回以上開催する 実施場所 百花園宮前ロッヂ・静岡市中央福祉センター. 実施対象..

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

[r]

■実施内容 渚の恋カツ大作戦 14:00~16:00 渚のプレミアムキャンドルナイト 16:00~21:00. ■参加者数

この標準設計基準に定めのない場合は,技術基準その他の関係法令等に

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

この標準設計基準に定めのない場合は,技術基準その他の関係法令等に