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

回文作成支援プログラム

N/A
N/A
Protected

Academic year: 2021

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

Copied!
11
0
0

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

全文

(1)

プログラムの概要

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

回文作成支援プログラム

VB 2005 ② □ 単純変数の宣言(Dim) □ Windows フォームコントロールの利用(TextBox、Label、Button、PictureBox) □ プロパティの値の取得と設定(Text) □ イベントの利用(Click、TextChanged) □ メソッドの利用(Focus、Close) □ ステートメントの利用(End) □ 組込関数の利用(Len、Left、Mid) □ 演算子(代入演算子、比較演算子、結合演算子) □ 制御構造構文(条件分岐、ループ処理) 今回の課題項目 □ 変数の適用範囲(スコープ:サブプロシージャレベル) □ If文に依る条件分岐(If ~ Then … Else … End If)

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

(2)

■ オブジェクト・プロパティ一覧 ■ コントロールの種類 プロパティ プロパティの設定値 フォーム Name kaibun Text 回文作成支援 StartPosition CenterScreen ラベル1 Name lblTitle Text、Font 回文作成支援(MS明朝、太字、18) ラベル2 Name lblSrc Text、Font 原文(MS明朝、太字、12) ラベル3 Name lblDest Text、Font 回文(MS明朝、太字、12) テキストボックス1 Name txtSrc Text、Font 空白(MS明朝、太字、12) ImeMode hiragana テキストボックス2 Name txtDest BackColor White Text、Font 空白(MS明朝、太字、12) ReadOnly True ボタン1 Name btnClear Text、Font クリア(MS明朝、太字、12) ボタン2 Name btnFinish Text、Font 終了(MS明朝、太字、12) ピクチャボックス1 Name picLogoL BackgroundImage logo1.gif BackgroundImageLyout None ピクチャボックス2 Name picLogoR BackgroundImage logo2.gif BackgroundImageLyout None コマンドボタン2 ピクチャボックス1 ラベル1 ラベル2 ラベル3 テキスト1 コマンドボタン1 テキスト2 ピクチャボックス2

(3)

ラベル テキストを表示するコントロール。此のテキストは、ユーザーが直接入力したり変更したり する事は出来ない。 テキストボックス テキストの入力や表示を行うコントロール。此のテキストは、ユーザーが直接入力したり変 更したりする事が出来る。キャレットの移動や文字の削除等の入力に必要な機能を備えて居 る。 ボタン ユーザーが選択したコマンド(命令)や操作を実行するコントロール。OKボタンや実行ボ タン等、処理の開始や中断・終了の合図に用いられ、最も良く利用されるコントロールで有 る。ボタンが押し下げられた様に外観が変わる為、プッシュボタンとも謂う。 ピクチャボックス ビットマップ、アイコン、メタファイル、JPEGファイル、GIFファイル等の画像を表 示するコントロール。従来のバージョン(VB 6.0)の様に、描画メソッドを用いて描画する 事や、内部に他のコントロールを配置してコンテナと仕て使用する事はは出来ない。 Text プロパティ 通常、Windows フォームコントロールは、コントロールの主要な機能に関連したテキストを 表示する。例えば、Button コントロールは通常、ボタンがクリックされた時に実行されるア クションを示すキャプションを表示する。総てのコントロールに付いて、Text プロパティを 使用してテキストを設定したり取得したりする事が出来る。亦、Font プロパティを使用して フォントを変更する事も出来る。 StartPosition プロパティ 此のプロパティを使用すると、実行時にフォームを表示する時の開始位置を設定する事が出来 る。フォームは、指定した位置に表示する事も、Windows で指定されて居る既定の位置に表 示する事も出来る。フォームの表示位置と仕て、画面の中央を指定する事や、マルチドキュメ ントインターフェイス(MDI)子フォームの場合は、親フォームの中央を指定する事も出来 る。 ImeMode プロパティ

コントロールのIME(Input Method Editor)モードを取得・設定する。

BackgroundImage プロパティ

コントロールに表示される背景イメージを取得・設定する。半透明の色や透過色のイメージは Windows フォームコントロールでは、背景イメージの様にはサポートされない。

(4)

■ プログラムリスト ■

Public Class kaibun

' テキストボックス(原文)の内容が変化した時の処理

Private Sub txtSrc_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles txtSrc.TextChanged Dim S As String Dim D As String Dim T As String Dim I As Integer S = txtSrc.Text If Len( S ) > 0 Then D = S T = Microsoft.VisualBasic.Left( S, Len( S ) – 1 ) For I = Len( T ) To 1 Step -1

D &= Mid( T, I, 1 ) Next I txtDest.Text = D End If End Sub ' ボタン(クリア)がクリックされた時の処理

Private Sub btnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles btnClear.Click txtSrc.Text = "" txtDest.Text = "" txtSrc.Focus( ) End Sub ' ボタン(終了)がクリックされた時の処理

Private Sub btnFinish_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles btnFinish.Click Me.Close( ) End End Sub End Class 此処で宣言した変数は宣言したサ ブプロシージャ内でしか値の参照 と設定を行う事が出来ない。 此の場合のイコール(=)記号は、 代入演算子で有り、右辺の値を左 辺に代入する働きをする。 ダブルコーテーションの間に何も 記述せず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つの条件式の値に 依り、複数の処理の孰れかを実行させるには、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 ステートメントを使用する。 Len 関数に依る文字数の取得 文字列の長さを返す関数 Len(引数) 指定した文字列の文字数を返す。 引数には、文字列、又は、文字列を格納した変数を指定し、必ず指定する。 Left 関数に依る文字列の取得 文字列の左端から指定した文字数分の文字列を返す関数 Left(引数1, 引数2) 引数1で指定した文字列の左端から引数2で指定した文字数を取り出した文字列を返す。 引数1には、文字列、又は、文字列を格納した変数を指定し、必ず指定する。 引数2には、取り出す文字列の文字数を指定し、必ず指定する。 機 能 書 式 解 説 機 能 書 式 解 説 機 能 書 式 解 説

(8)

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

(9)

Close メソッドに依るオブジェクトのクローズ オブジェクトをクローズするメソッド Object.Close( ) フォーム、又は、オブジェクトを閉じる。 フォームを閉じると、オブジェクト内で作成された総てのリソースが閉じ、フォームが破棄される。実 行時にフォームが閉じられない様にするには、Closing イベントを処理して、イベント処理メソッドに パラメータと仕て渡されるCancelEventArgs の Cancel プロパティを設定する。猶、閉じるフォームが アプリケーションのスタートアップフォームで有る場合は、アプリケーションが終了する。 モードレスウィンドウと仕て表示されて居るForm で Close メソッドが呼び出された場合は、フォーム のリソースが既に解放されて居る為、 Show メソッドを呼び出してフォームを再表示する事は出来ない。 フォームを非表示に仕た後で表示するには、 Control.Hide メソッドを使用する。 猶 、Application.Exit メソッドでアプリケーションを終了する場合、 Form.Closed イベントと Form.Closing イベントは発生しない。此等のイベントの孰れかに実行する必要が有る検証コードが有 る場合は、 Exit メソッドを呼び出す前に、開いて居る各フォームに対して Form.Close メソッドを個 別に呼び出す必要が有る。 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 包合 算術演算子と論理演算子では、複数の演算子が使用されて居る場合には、頭に付けた番号の順序で 演算が行われる(上に書かれて居る演算子程優先順位が高い)。 機 能 書 式 解 説

(10)

String オブジェクトに依る文字列操作 (参考) テキストでは使用して居ないが、VB.NET では、前述の Left、Mid、Right 等の従来からの Basic 特有 の関数を使用せずに、String オブジェクトのメソッドを使用する事に依り、文字列の操作を行う事が出 来る。此れを利用すると、名前の衝突を避ける為に、Microsoft.VisualBasic.Left の様に関数を完全修 飾する必要は無く、記述が簡潔に成る。下記に、String オブジェクトの代表的な文字列操作メソッドを 示す。詳細に付いては、ヘルプのString クラスの総てのメンバを参照され度い。

Length プロパティ(Len に相当)

Dim S As String = "abcdefg", N As Integer

N = S.Length → N は 7 と成る(Len(S) に相当)。

Substring メソッド(Left$、Mid$、Right$ に相当) Dim S As String = "abcdefg", T As String

T = S.Substring(0, 3) → T は "abc" と成る(Left(S, 3) 相当)。 T = S.Substring(3, 2) → T は "de" と成る(Mid(S, 4, 2) 相当)。 T = S.Substring(3) → T は "defg" と成る(Mid(S, 4) 相当)。 T = S.Substring(S.Length - 3) → T は "efg" と成る(Right(S, 3) 相当)。

StartsWith メソッド(Left$ に相当) Dim S As String = "abcdefg", T As Boolean

T = S.StartWith("a") → T は True と成る(Left(S, 1) = "a" 相当)。

EndsWith メソッド(Right$ に相当) Dim S As String = "abcdefg", T As Boolean

T = S.EndWith("¥") → T は False と成る(Right(S, 1) = "¥" 相当)。

Insert メソッド

Dim S As String = "abcdefg", T As String

T = S.Insert(2, "XYZ") → T は "abcXYZdefg" と成る。

Remove メソッド

Dim S As String = "abcdefg", T As String

T = S.Remove(3, 3) → T は "abcg" と成る。

Replace メソッド

Dim S As String = "abcdefg", T As String

(11)

.NET Framework 対応 ■ 文字列の長さ(文字数)の取得 従来の記述法 If Len(S) > 0 Then .NET Framework の記述法 If S.Length > 0 Then 従来の記述法

For I = Len(T) To 1 Step -1 .NET Framework の記述法 For I = T.Length To 1 Step -1

.NET Framework では、文字列の長さ(文字数の事)を取得するには、Len 関数ではなく、String ク ラスのLength プロパティを使用する。 ■ 部分文字列の取得 従来の記述法 D &= Mid(T, I, 1) .NET Framework の記述法 D &= T.Substring(I - 1, 1)

.NET Framework では、任意位置の文字列を取得するには、Mid 関数ではなく、String クラスの Substring メソッドを使用する。 先頭の位置を、Mid 関数は 1、Substring メソッドは 0 と、指定の仕方が異なる事に、注意を要する。 ■ テキストボックス内の文字列のクリア 従来の記述法 txtSrc.Text = "" .NET Framework の記述法 txtSrc.Clear()

.NET Framework では、テキストボックス内のテキストをクリアする手段と仕て、Clear メソッドも使 用する事が出来る(孰れでも、結果は同じ)。 ■ アプリケーションの終了 従来の記述法 End .NET Framework の記述法 Application.Exit() 現在実行して居るアプリケーションは、Application オブジェクトで表されるので、其の Exit メソッド を用いて、アプリケーションを終了する。

参照

関連したドキュメント

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

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

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

○水環境課長

大浜先生曰く、私が初めてスマイルクラブに来たのは保育園年長の頃だ

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

- Since the power was lost and the exhaust monitor data and the meteorological equipment data were not available, the radioactive material dispersion in the surrounding area

通所の生活介護事業(兵庫)の営業日数は256日で利用契約者数は55人であっ た。年間延べ利用者数は5 ,069人で利用率は99