回文作成支援プログラム

Similar documents
回文作成支援プログラム

回文作成支援プログラム

回文作成支援プログラム

回文作成支援プログラム

万年暦プログラム

ルーレットプログラム

相性占いプログラム

回文作成支援プログラム

相性占いプログラム

画像閲覧プログラム

ブロック パニック

わにわにパニックプログラム

sinfI2005_VBA.doc

Userコントロール

正規表現応用

VB.NET解説

データアダプタ概要

VB実用⑦ エクセル操作Ⅰ

NotifyIconコントロール

ファイル操作

グラフィックス

3D回転体プログラム

画像閲覧プログラム

平成 30 年度 プログラミング研修講座 岩手県立総合教育センター

占領双六ゲーム

ブロック崩し風テニス

インベーダープログラム

ファイル操作-インターネットキャッシュ

通信対戦プログラム

VB 資料 電脳梁山泊烏賊塾 音声認識 System.Speech の利用 System.Speech に依るディクテーション ( 音声を文字列化 ).NetFramework3.0 以上 (Visual Studio 2010 以降 ) では 標準で System.Speech が用意されて居るの

モグラ叩きプログラム

プロセス間通信

ICONファイルフォーマット

万年暦プログラム

Java講座

3D回転体プログラム

ExcelVBA

Microsoft Word - VBA基礎(3).docx

草競馬プログラム

MS-ExcelVBA 基礎 (Visual Basic for Application)

.NETプログラマー早期育成ドリル ~VB編 付録 文法早見表~

構造体

通信対戦プログラム

Visual Basic 資料 電脳梁山泊烏賊塾 コレクション初期化子 コレクション初期化子 初めに.NET 版の Visual Basic では 其れ迄の Visual Basic 6.0 とは異なり 下記の例の様に変数宣言の構文に 初期値を代入する式が書ける様に成った 其の際 1 の様に単一の値

データベース1

ListViewコントロール

チャットプログラム

神経衰弱ゲーム

プレポスト【問題】

ファイル操作-バイナリファイル

C#の基本

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

万年暦プログラム

Prog2_12th

Taro-Basicの基礎・条件分岐(公

Microsoft PowerPoint - VBA解説1.ppt [互換モード]

VFD256 サンプルプログラム

万年暦プログラム

プラグイン

アプリケーション

Microsoft Word - VB.doc

Prog2_15th

PYTHON 資料 電脳梁山泊烏賊塾 PYTHON 入門 関数とメソッド 関数とメソッド Python には関数 (function) とメソッド (method) が有る モジュール内に def で定義されて居る物が関数 クラス内に def で定義されて居る物がメソッドに成る ( 正確にはクラスが

データベース1

スロットプログラム

グラフィックス 目次

VB実用⑧ エクセル操作Ⅱ

PowerPoint プレゼンテーション

パラパラ漫画

相性占いプログラム

VB実用⑩ エクセル操作Ⅳ

PYTHON 資料 電脳梁山泊烏賊塾 PYTHON 入門 文字列 文字列リテラル プログラムの中で文字列を表す方法は幾つか有るが 基本的な方法は下記の 2 種で有る 対象と成る文字の集まりをダブルクオーテーション ( " ) で囲うか シングルクオーテーション ( ' ) で囲う PYTHON3 "

ファイル監視

Microsoft Word -

VB実用Ⅲ⑩ フリーデータベースⅡ

Prog2_2nd

ウィンドウ操作 応用

テキストファイルの入出力1

何時何処で誰が

データベースⅡ

通信対戦プログラム

ハッシュテーブル


倉庫番

JavaプログラミングⅠ

(Microsoft Word \203v\203\215\203O\203\211\203~\203\223\203O)

DAOの利用

データベースⅠ

Prog1_3rd

正規表現概要

かべうちテニス

Microsoft PowerPoint - vp演習課題

プログラミング実習I

Microsoft PowerPoint - ruby_instruction.ppt

データベース1

VB実用⑨ エクセル操作Ⅲ

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 条件判断文 3 switch 文 switch 文式が case の値と一致した場合 そこから直後の break; までを処理し どれにも一致しない場合 default; から直後の break; までを処理する 但し 式や値 1

LogisticaTRUCKServer-Ⅱ距離計算サーバ/Active-Xコントロール/クライアント 概略   

Visual Studio2008 C# で JAN13 バーコードイメージを作成 xbase 言語をご利用の現場でバーコードの出力が必要なことが多々あります xbase 言語製品によっては 標準でバーコード描画機能が付加されているものもあるようで す C# では バーコードフォントを利用したりバー

Transcription:

回文作成支援プログラム VB 2005 2 プログラムの概要 原文を 1 字入力する度に 其の回文が順次表示される 即ち AB と入力すると ABA と表示され ABC と入力すると ABCBA と表示される 亦 消去ボタンをクリックすると 原文 及び 回文を消去する事も出来る 終了ボタンをクリックすると プログラムをメモリから消去して終了する 今回の課題項目 単純変数の宣言 (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) 文字列操作 ( 文字列操作関数 ) 今回の応用項目 文字列の任意部分を入れ替えたりする等のを追加する 常にキャレットが入力文字列の末尾に在り 入力が行い易い様にする 文字列を右回転させたり 左回転させたり 反転させたり出来る様にする -1-

オブジェクト プロパティ一覧 ピクチャボックス 1 ラベル 1 ピクチャボックス 2 ラベル 2 テキスト 1 テキスト 2 ラベル 3 コマンドボタン 1 コマンドボタン 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-

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

プログラムリスト 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 条件判定に 比較演算子を使用して居る A > B : AはBより大きい 此の場合のイコール (=) 記号は 代入演算子で有り 右辺の値を左辺に代入する働きをする テキストボックスの Text プロパティに文字列を代入する事に依り テキストボックスの表示文字列を変更する ' ボタン ( クリア ) がクリックされた時の処理 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 ダブルコーテーションの間に何も記述せず 2 個連続して記述すると 長さ 0 の文字列 ( ヌルストリング ) を意味し 文字列の消去等に利用する ' ボタン ( 終了 ) がクリックされた時の処理 Private Sub btnfinish_click(byval sender As System.Object, ByVal e As System.EventArgs) _ Handles btnfinish.click Me.Close( ) End End Sub アプリケーションを終了する場合 正しくプログラムをメモリから消去して終了する事が望ましい End Class -4-

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

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

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 には 取り出す文字列の文字数を指定し 必ず指定する -7-

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( 引数 ) 引数で指定した文字列の先頭と末尾の空白文字 ( 半角と全角 ) を削除する 引数には 文字列 又は 文字列を格納した変数を指定し 必ず指定する -8-

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

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 T = S.Replace("cde", "XYZ") T は "abxyzfg" と成る -10-

.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 メソッドを用いて アプリケーションを終了する -11-