visual - agukiyou.lib.agu.ac.jp/pdf/kiyou_13f/13_61_3f/13_61_3_57.pdfvisual basic...

15
Visual Soft Basic6.0 (Graphical User All-purposeSymbolicInstruction -

Upload: others

Post on 01-Jan-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Visual - AGUkiyou.lib.agu.ac.jp/pdf/kiyou_13F/13_61_3F/13_61_3_57.pdfVisual Basic によるプログラミング入門2. デジタル時計の作成 l 回目で作ったプログラムをもとに、デジタル時計を作成した。これは受講生ごとに写真等

Visual Basic によるプログラミング入門

虎津慶太

はじめに

情報処理教育センターにおいて情報科学 I の科目でプログラミング入門 として、 Micro Soft

社製 Visual Basic6.0 (以降 VB6 と省略する)を用いた授業を 2006年より 8 年にわたって行って

きた。しかし、 Windows-XP のサポート終了に伴いこの言語の利用も 2013年度の授業を最後に

せざるを得なくなった。そこで VB6 を使った授業を終了するにあたり、これまで、行ってきた

情報科学の授業内容をまとめ記録しておくことにした。

授業の目的

VB6 は GUI (Graphical User Interface)のフォームに部品を貼り付け、わずかな命令文を記述

することで、 32Bit 版 Windows 上で実行可能なプログラムを簡単に完成させることができ、プ

ログラミングの初心者にもアプリケーションを作ることができる言語として便利なものであ

る。また Basic 言語(Beginner’s All-purpose Symbolic Instruction Code)という名称自体、「初心

者向け汎用記号命令コード」と言う意味である。そのため入門の位置づけの授業にふさわしい

と思いこの言語を使った授業をすることにした。

またこの VB6 を使った授業を始めたのは「情報」が高校の必修教科となり、それ以前に行っ

ていたワープロ、表計算、プレゼンテーションソフトを使ったコンビュータ入門の授業が、高

校での授業内容とかなりの部分で重複するようになったため、高校で行う授業内容と異なるも

のをおこなうためでもあった。しかしこの言語は 1998年に発売された 32Bit 版 Windoows 対応

- 57 ー

Page 2: Visual - AGUkiyou.lib.agu.ac.jp/pdf/kiyou_13F/13_61_3F/13_61_3_57.pdfVisual Basic によるプログラミング入門2. デジタル時計の作成 l 回目で作ったプログラムをもとに、デジタル時計を作成した。これは受講生ごとに写真等

愛知学院大学教養部紀要第61 巻第 3 号

の最終ノfージョンであり、 2008年 4 月にはサポートも終了している。この授業を始めた 2006

年には VB6のソフトウェアはすでに販売が終了しており、授業の準備は情報処理教育センター

のクライアント室に行っておこなう必要が有った。

授業の内容

授業の概略は次のようである。

まず、始めに VB6の起動方法と終了時に注意すべき点をプリントにまとめ配布した。

そして、続く 2 回の授業で VB6を使うことで簡単にアプリケーションを作ることができるこ

とを示し、なおかつ初回の授業で注意した終了時に行う 一連の操作について復習を行った。次

いで、授業の中心となるデータの処理プログラムを作るために、データの入出力とファイルへ

の保存と読み出しのためいわゆる「memo プログラム」というアプリケーションを作成した。

そして、そのアプリケーションにコマンドボタンの追加や、それに伴う新しいサブ?ルーチンを

追加、拡張することで徐々にアプリケーション中で行う処理を増やしていった。

続いて、繰り返し命令の Do Loop と For Next の使い分けと処理の違いについて学び、再帰

的プログラムを学んだ。最後に定期試験の代わり として簡単な文字の処理を行うことで暗号化

した問題文を解読して課題とした。

では、授業内容を授業をおこなった順に列挙していく。なお、これらの授業内容は少しずつ

改良を加えていった結果として 2013年春学期に行ったものである。何回目の授業であるか判

るように、番号を始めに付記している。

1. 時刻と日付の表示プログラム

VB6の起動方法と終了時に注意すべき点をプリントにまとめ、簡単なアプリケーションの作

成をした。 GUI のフォームにコマンドボタンと表示部であるラベルの部品を貼付け、フォー

ムのデザインを行う。そしてコマンドボタンが押下されたときに行うサブルーチンを「コー

ド」として入力した。さらにプロパティの設定とその意味について学んだ。この回のプログラ

ムは、「確認」ボタンを押下すると二カ所設定した日付と時刻の表示部に、ボタンを押した時

点の日時と時刻を表示するものである。

58

Page 3: Visual - AGUkiyou.lib.agu.ac.jp/pdf/kiyou_13F/13_61_3F/13_61_3_57.pdfVisual Basic によるプログラミング入門2. デジタル時計の作成 l 回目で作ったプログラムをもとに、デジタル時計を作成した。これは受講生ごとに写真等

Visual Basic によるプログラミング入門

2. デジタル時計の作成

l 回目で作ったプログラムをもとに、デジタル時計を作成した。これは受講生ごとに写真等

の画像を用意させ、各自オリジナルのデジ、タル時計を作成した。この回のプログラムでは、前

回おこなった「確認」ボタンを押す代わりに「タイマー」機能を利用して

あらかじめプロパティの設定で指定した時間ごとにサブ?ルーチンを起動して表示を更新させる

ようにしたものである。

3. ストップウォッチ機能付きデジタル時計の作成

2 回目の授業で作成したデジタル時計にス ト ップウォッチ機

能を追加した(図 1 )。

これには本来表示部として使うラベルの部品を、プロパティ

機能により「透明化」してデジタル時計の画像の上に配置する

ことで画像の特定の位置が見えないボタンとして働くように工

夫したものである。例としてあげたものでは、犬の鼻の周辺が

スタートボタン、舌の周辺がストッフボタン、そしてよだれか

け周辺が表示のクリアボタンとなっている。また、ボタンと

なっていることが解りやすいように、マウスカーソルの形状が

鼻の周辺では砂時計に、舌の周辺では禁止マーク、そしてよだ

れかけ周辺ではクロスカーソルへと変化するようにしてある。

(スクリ ーンショットでは、マウスカーソルが表示されないため写っていない)

図 l

この授業は、 l 回目、 2 回目の授業のまとめであると同時に簡単な作業でちょっとしたプロ

グラムを作ることができる事を示すとともに、後にプログラムが計算を行うのに必要とした時

聞を測定するためのルーチンを伏線として与えておく事が目的である。

4. memo プログラムの作成

データ処理のためのプログラムを行う前段階として、データの入出力と保存・作成のための

基本的な処理を行う事のできる memo フ。ログラムを作成した(図 2 )。この固からはフォーム

のデザイン、基本的なサブPルーチンのコー ドや学生が間違えやすいコードなどは「ひな形」と

して授業用サーバーに置いたものを、学生が各自のマイ ドキュメントにコピーしてから操作す

59

Page 4: Visual - AGUkiyou.lib.agu.ac.jp/pdf/kiyou_13F/13_61_3F/13_61_3_57.pdfVisual Basic によるプログラミング入門2. デジタル時計の作成 l 回目で作ったプログラムをもとに、デジタル時計を作成した。これは受講生ごとに写真等

愛知学院大学教養部紀要第61 巻第 3 号

るように指導した。(図 3 )また、この授業では動作に必要なコードをプリントにして配布し

た。

初イ凡傘 F百;;;··

記 I I 型~·雪::;;,活協定?瓜

>

図 2 図 3

このプリントでは「ひな形」のコード部分から虫喰いにした部分を太宇で表示してあり、ま

た虫喰い部分の前にはどのような作業をするためのコードであるかを示すコメント文を付けて

入力を助けている。以下にコードの一部を示す。

Private Sub cmdErase Clich()

‘テキストボックスのデータ消去

txtFilename. Text =“”

txtDisPlayBox.Text =‘,

End Sub

Private Sub cmdEnd Click()

‘終了

End

End Sub

以下略

5. 判定プログラムの作成

300人分の架空の学籍番号と、それぞれに点数を乱数で作成したものを CVS 形式のテスト

60

Page 5: Visual - AGUkiyou.lib.agu.ac.jp/pdf/kiyou_13F/13_61_3F/13_61_3_57.pdfVisual Basic によるプログラミング入門2. デジタル時計の作成 l 回目で作ったプログラムをもとに、デジタル時計を作成した。これは受講生ごとに写真等

Visual Basic によるプログラミング入門

データ として用意 し、 各自の点数を AA から E までのアルフアベットによ る成積判定に変換し

(図 4 、図 5 )。点数により複数の判定値から選択するため、て表示するプログラムを作成した

Select Cas巴文を使った分岐を学んだ。

"""'副山叫P一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一「温幽111!

td

zJ

ファイ114':.:

置岬s・.... a回目到

'"'""''

一如軒削船一郎

'" ご忠

図 5図 4

以下にコードの一部を示す。

‘判定をする

Select Case Val(temp(i,2))

Case 90 To 100

temp(i,3) = “AA”

Case 80 To 89

temp(i,3) = “A ”

(中略)

End Select

以下略

この授業これは、この回のひな形から「保存」のコマンドボタンをのぞいたものを使っ た。

それ以降テス ト データ を使う事

ができなくなってしまう学生が後を絶たず、基となるデータの改変を防ぐためである。

- 61

した後のデータを保存してしまい、内容を始めた頃、「判定」

Page 6: Visual - AGUkiyou.lib.agu.ac.jp/pdf/kiyou_13F/13_61_3F/13_61_3_57.pdfVisual Basic によるプログラミング入門2. デジタル時計の作成 l 回目で作ったプログラムをもとに、デジタル時計を作成した。これは受講生ごとに写真等

愛知学院大学 教養部紀要 第61 巻第 3 号

6 、 7. 並べ替えプログラムの作成(パブルアップ法)

5 回目の授業で、使った架空の成績を、点数の順で並べ替えるプログラムを作成した (図 6 、

図 7 )。 この授業では、降順に並べ替えるルーチンのみを与えた。

以下にコー ドの一部を示す。

臨調渇偏編踊偏編蹴嗣蹴絹節調圃圃園周圃圃園周圃圃園周圃圃圃圃圃圃園田創厳島語

目イ岨

fG'Z-…一一台

"'""…一一一一一一一ードケm叫副加附I '2;テヌクトッゴI 曜陶,r凶

戸摂験炉圃圃

即問団03X199:100 叩.w

回総:ni間岨"

即偲'"悶〉冊駒

場7" " ;自習羽詰' 00 4 ア'"5 醐"節団冊舗,,.

;n 酬'"'~

'"附°'‘同 ; Q3Xl37 .93

目自然自~~Ul 刈酬81 : 9'2

Do

F=O

ファイル名

主主

図 6

For i = i To c -1

‘点数を較べる (どっちが大きいかな?)

IfVal(a( i + 1, 3 )) > Val(a( i, 3 )) Then

‘後ろの点数が大きければデータを一時退避する

g( 1, 2) =a( i + 1, 2)

g( 1, 3) =a( i + 1, 3)

(中略)

F=O

End If

62

器i

図 7

Page 7: Visual - AGUkiyou.lib.agu.ac.jp/pdf/kiyou_13F/13_61_3F/13_61_3_57.pdfVisual Basic によるプログラミング入門2. デジタル時計の作成 l 回目で作ったプログラムをもとに、デジタル時計を作成した。これは受講生ごとに写真等

Visual Basic によるプログラ ミング入門

Nexti

‘入れ替えがなくなるまで繰り返す

Loop Until F = 0

以下略

この授それぞれの命令がどのような作業を しているかコメント として明記した。そこでは、

業では 「昇順」 に並べ替えるためのコマンドボタンの追加と昇JI買に並べ替えるためのルーチン

この並べ替えプロ グラムでは隣り合うデータ同士2 回の授業を充てた。も作成する事を加え、

入れ替えがなくなるまで繰り返す、俗にバブルアップ法という効率の悪い方法を使用を比べ、

この考え方は非常に簡単なものなので並べ替えの原理を理解するためにはふさ

これを使用した。

しかし、

わしいと考え、

した。

九九プログラムの作成(For 文による繰り返し)8.

を任意に入力し、表を出力するプロ グラムを九九の表を「横何番目まで」 「縦何段目まで」

聞東願書置圃圃圃圃圃圃圃圃圃圃圃圃圃圃圃圃圃圃圃圃圃圃E温閣!細

白川拍聞花田植由市叩百四団別加制担問調潤抑制時問問調明叩価咽出制問問問問問問問問

百日白河白田川市叩明暗由明加四割一川市制割湖担拙抑制調抑制印刷州出制醐制問即時間

稲田町田市針山川叩

…則前叩由市加担割問加m制加山間期間制抑制叩哨印叫価峨相馴

間四

割描相田花白崎間四叩糊前咽四閣制加由加

加制加制捌抑制掛抑制

m制調棚叩由州樹輔副

百世田判田曲目田田川市由国間団団叩閣担割問抑

制加泊揃却期抑制加担制制措掛抑制醐叫

す加担岨田佃羽田田川

川市明川叩明市閣団四加担割抑閣制別加閣制別町四抑制調問調醐咽

了市幻担唱回目百

別冊四四川市市山由問問

叩団団町別措割加盟

加問叩由加揃間四四回問澗

了間叫国岨咽町制古田田町四川叩市市川問団団巾出叩訓加別加盟抑制時制担割加割削

mm

TH引羽詰岨崎町田市廿割引田明巾川市

閣川開制叩由市由明哨mmm叫問調加担割前問調

了日出羽司団

組羽田曲面百司副田町叩四川叩由明団山由国間哨川閣閣四四回目

別担割由加

「叩市加古田国岨岨田町曲缶百布田

町曲師明暗川市由市問団四国明暗

闇閣川市明暗曲四割

T8口市担割酒田甜岨叫咽田町田制同百花園制開問弼四刷四mm閣問団四一助国山川間出国

γ69口市惜別担訂却由甜酒拍時柏町出町田回出田百花花町割前回目師四叩明咽川川川団

468

叩刊HHU四時初旬羽詰担却担割部担崎岨判時相団自白町田曲目白師団市百九%百田

2345678

9叩刊叩叩刊市市川口叩叩叩引担泊叫笥泊目盟団団則自由加話回目胡四叩

(図 8 ) 。作成した

円「 段目 ~

図 8

- 63 ー

「「 番目

Page 8: Visual - AGUkiyou.lib.agu.ac.jp/pdf/kiyou_13F/13_61_3F/13_61_3_57.pdfVisual Basic によるプログラミング入門2. デジタル時計の作成 l 回目で作ったプログラムをもとに、デジタル時計を作成した。これは受講生ごとに写真等

愛知学院大学教養部紀要第61巻第 3 号

For 文を使い、繰り返しを入れ龍にする仕方を学んだ。この時の表示方法は、それまでに

イ吏ってきた TextBox とは違い、そのまま Form 内に表示する方法を使った。この回のひな形は

「何段目」と縦の範囲を聞い、横 9 列までを計算し出力するものを与えた。学生は横「何番目」

までかをテキストボックス txtYoko に入力し、その数値を使用するために繰り返しの範囲につ

いて書き換えるようにした。また、コメント中にその行でおこなう命令を記述し、下線部が入

力するべき所である事を示した。以下に変更前のひな形のコードの一部を示す。 この回からコ

メントはそのf子に付力日した。

Private Sub cmdJikkou Click()

For i = I To txtTate

For j =I To 9

Form I.Print , Tab( 6 * j );

Nextj

Form I.print

Next i

End Sub

‘ i * j を 6 桁ごとに表示する

‘改行する

今回使用した表示方法では、 TextBox の場合と違い print 命令の後に何も付加しないと自動

的に改行してしまう。そのため自動改行を防ぐ命令(セミコロンを print 命令に付加する)を

付け加えながらコードを書いていく必要がある。また、このプログラムでは桁をそろえた表示

にするため、参考文献 l にある書式を参考にした。

9. 九九プログラムの作成 (Do-Loop 文による繰り返し)

8 回目と同じ九九の表を出力するプログラムだが、繰り返しの仕方を Do Loop 文で行った。

この繰り返しでは For 文と異なり、 While/Until を使い条件判断を繰り返しの始めか終わりで

行う事により、より細かに制御ができる点で有用でーある。今回は繰り返しの終わりに判断をす

る事にした。以下にひな形のコードの一部を示す。

Private Sub cmdJikkou Click()

Dim As ‘ i を整数とする

Dim _As_ ‘ j を整数とする

64

Page 9: Visual - AGUkiyou.lib.agu.ac.jp/pdf/kiyou_13F/13_61_3F/13_61_3_57.pdfVisual Basic によるプログラミング入門2. デジタル時計の作成 l 回目で作ったプログラムをもとに、デジタル時計を作成した。これは受講生ごとに写真等

Visual Basic によるプログラミング入門

Do

1= -

Do

Forml.Print , Tab( 6 キ j );

Loop Until

Form I.print

1=

Loop Until

Foロnl.print

End Sub

以下略

10. フィボナッチ数列プログラムの作成

‘ 1 を l にする

‘ j を l にする

'i * j を 6 桁ごとに表示する

‘ j を l 増やす

‘ j が txtYoko より小さい間

‘改行する

‘ i を l 増やす

‘ i が txtTate より小さい間

‘改行する

次の固に行う「再帰的フ。ログラミング」のために、まず For 文を使った通常の繰り返しによ

るフィボナッチ数列の計算、表示をするフ。ログラムを作成した。ちなみに、フィボナッチ数列

とは「 l 、 l 、 2 ' 3 ' 5 ' 8 ' 13 、 21 、 34、 55、、、、」というもので、最初の 2 つを l とし、

以後、前の 2 つを足し合わせたものを次の数としていくものである。この回のひな形は歯抜け

のコードと、プリントで l 番目から 10番目のフィボナッチ数を表示するものを与えた。完成

形はプリントを参考にして 45番目までの任意のフィボナッチ数を表示させるものにコードを

書き換えさせるものとした。

11. フィボナッチ数列プログラムの作成(再帰的プログラミング)

前回行った通常の繰り返しによるフィボナッチ数列の計算を、計算の定義から再帰的に求め

る方法を学んだ。この再帰的フ。ログラミング法は計算の定義をすれば、引数を与えて計算を呼

び出すだけで答えを求められ、直感的にプログラムができる方法である。ただ、再帰的計算に

は 1 つ次の答えを求めるためにはそれまで、の計算に必要とした時間の、およそ倍の時間が必要

となる。また、必要とするメモリも等比級数的に必要量が増えていく。そのため、実際のプロ

グラミングにおいては再帰的フ。ログラミングは避けるべきものである。このことを学生に実体

65

Page 10: Visual - AGUkiyou.lib.agu.ac.jp/pdf/kiyou_13F/13_61_3F/13_61_3_57.pdfVisual Basic によるプログラミング入門2. デジタル時計の作成 l 回目で作ったプログラムをもとに、デジタル時計を作成した。これは受講生ごとに写真等

愛知学院大学教養部紀要第6 1 巻第 3 号

験させるため、「通常の計算」(図 9 )と「再帰的計算」 (図 10)の 2 種類のコマンドボタンを

フォ ームに作り、 3 回目の授業で、使った時間計測のための命令を組み込む事でそれぞれの計算

にかかった時間を計測し表示した。

E盟哩盟理酒・・・・・・図画調 IEWl'l置E霊園・・・・・・遡l遡鴎E

n= 番目のフィボナツチ数|ま(n<46)

I ,山155"fす

計算にかかコた時間|ま

0 .000秒

でした

= ?「 番目の刑判刊はいく46)

i 1 口羽3415です

計草にかかった時聞は

53672f.!J

でした

直露国 ~ ヱ笠立J 匡亙昌

図 9

図 11 は再帰的計算をおこなう部分のコードを示した。

田副,,,_....... ,r.o..-,,,,.,, •. .,一一目白11-fMV IU‘[t).宗""刈h’l{t).武岨予九代弁 ω ,骨子@匁判w "'タラ"'チ以D Fトイバ金〉恥帥 M却 、品六防

総f'"' ' a品川 4 ・ . , ·' 被S也管舟自主 M ., ....輔

,..!!!..J , . 翻

A 間

”' _J p r.

国園

川 2

6 ロ」J 由

e 、

国軍T国

図 l 1

66

図 10

Page 11: Visual - AGUkiyou.lib.agu.ac.jp/pdf/kiyou_13F/13_61_3F/13_61_3_57.pdfVisual Basic によるプログラミング入門2. デジタル時計の作成 l 回目で作ったプログラムをもとに、デジタル時計を作成した。これは受講生ごとに写真等

Visual Basic によるプログラミング入門

12. 並べ替えプログラムの作成(コムソート法)

6 、 7 回目に行ったバブルアップ法による並べ替えをもとに、 データの比較対象を隣接する

データから、全データ数の 1.3 での除数を変数名 gap (但し整数部のみ) として、 gap だけ離れ

たデータと比較する。次の繰り返しでは gap の 1.3 での除数を新たな gap として次の比較を行っ

ていく。 この方法をコムソート (comb sort)法と言い、パフ、、ルアップ法と比べ 50倍以上高速

に並べ替えることができる。それまでは 300人分のデータであったがコムソート法での並べ替

えが 100分の l 秒以上になるようにするため、 データを 1000人分に増やして使った。 11 回目と

同様にしてバブルアップ法(図 12) とコムソート法(図 13) での実行時間を計測するように

した。

喧 .. .,_,山「一一一一一一一一一一一一一一一一一一一一一一一一一一一一揖轡必 匝調r・..... ~・!I••-ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー盤固必

フ?イ凡4 i面高日夜扇面

一「I叩2

蜘"m沼"鯵'499酬~領砂・00開熔“鋭~醐旬。阿

川' "醐

l!l Z護団叩

1:1 詰滋川8 叩

週露::羽叩

"吋~ 怒沼

図 12

羽鳥•.

一竺乞J-竺と」

」~

1.41秒

フvイJ凶

内 説勘~2 iOO

怒沼 :~ 叩 • oo帥' '凶総君!田町"叩"

"" 笥醐" ” 同1 税以:561 99 叩叩. "

1:: 霧車事 事'"帥' " 同窓忠君”冊明徳川時w 98 • w必悶 ., 河.,淵"q 叩.,

Z 訟滋富

13. ハノイの塔プログラムの作成(再帰的プログラミング 2)

~~-J

0.02秒

図 13

11 回目に行った再帰的プログラミングであ るが、関数の定義にはもう 1 つの定義の仕方が

ある事を示した。 また、すでに再帰的プログラムは実用に向かないものである事を学んだ訳で

あるが、ゲームの一種である「ハノイの塔」 を計算により解く場合には、再帰的プログラミン

グの方法を使う事により極めて簡単にプログラムを記述し解く事が可能となる。 これは再帰的

プログラミングが有効である、数少ない例のひとつである。 ひな形は歯抜けにしてあり、学生

にはプリントとして Tiny Basic で書かれたコードを示し、 二つのコードを比較し歯抜けの部分

を補うように指導した。以下に 5 枚のディスクでおこなう場合の Tiny Basic のコード(参考文

献 2) を示す。

- 67 -

Page 12: Visual - AGUkiyou.lib.agu.ac.jp/pdf/kiyou_13F/13_61_3F/13_61_3_57.pdfVisual Basic によるプログラミング入門2. デジタル時計の作成 l 回目で作ったプログラムをもとに、デジタル時計を作成した。これは受講生ごとに写真等

愛知学院大学教養部紀要第61 巻第 3 号

‘実行部分

Call Hanoi( 5,“A”,“B”,“C”)

End

‘手順の定義

Sub Hanoi( n, A$, B$, C$ )

Ifn > 0 then

Call Hanoi( n -1, A$, C$, B$)

Print n;“番の円盤を”; A$;,”から”; B$;“へ移動”

Call Hanoi( n -1, C$, B$, A$)

End If

End Sub

図にはディスクが 9 枚(図 14)と 10枚(図 15)の場合の実行例が示しである。このように

ディスクが 1 枚増やすごとにおよそ 4 倍の計算時間が必要になる。

言語’ーーーーーーーーーーーーーーーーーーーーーーーーーーー一回幽音量

ディスクは何枚? γ守一 国自 f斗

ち<h'ら試からからYIこDisk#1をうっすヵ、らYにDsk#3をうっすか号YIこDisk#Iをうっすか号YにDisk#2主?っすか?YIこ日sk#I宝うっすカuっYにOisk#4をうっす力、号Y(こDisk#!室?っす力、守判こDisk#2主?っす均円YにDsk#Iをうっす力、告YIこDisk#3壬ヨっす力":;>Yに町sk#I聖つつす力、つYIこDsk#2をうっす力、ーYIこDisk#I室?っす力、'oYにDsk#5をうっす戸わ、うYにD陥k#1nっす匝わ'';>YICDisk#2宣つつす以わ1'oYIこDsk#1をうっす戸力、ーYにD唱k#3lfヨっす同わっYIこosk#I華つつす以わ''oYIこDisk#2をうっす医力、うYにD唱k#I董?っす匝力UつYIこ口sk#4をつつす以からYにDsk#Iをうっす以からYIこ口sk#2をうっすl7h'°?YIこ口sk#1葦号っすEかりYIこ口sk#3をうっすizカ唱YにEsk#I歪?っすlz力、'oYにEsk#2差うっす以力、らYに口sk#Iを?っす以からYIこ口sk#6をつつす

図 14

計算に

8.8宮0彩、

力、力、りました

14、 15. シーザ一式暗号プログラムの作成

E曹団山ーーーーーーーーーーーーーーーーーーーーーー酒量直前週E

デ, :A クは何枚? 「寸了一 宮詔

、'?Y こD,,#1をうっす

力、号 1 co;~'#'をうっす力、';>YICO;;k存 1念つっす力、'OYIこ口sk#3をうっすかもYにEsk#Iをうっす力匂判こo;sk#2~ヨっすh、'OYIこD;sk#1をつつす力、ら刊こo;sk#4をうっすわ合判こOsk#I~?っすわ℃YにC ;sk#2宣?っす泊、'oYIこD;sk#1をうっす

掠児島~11¥詔Eか'?YIこo;sk#2苦うっす巴力、つYにC ;sk#1をーっす以かりYにD;sk#5をうっす防匂YにCsk#1室?っす尼か'oYにE ;sk#2をつつすIx力、らYIこo;sk#1をうっす防、ーYに口sk#3壬もっす以わ''oYIこD;sk#Iをうっす以ゎ、らYIこo;sk#2をうっす防、争Yに口sk#I圭?っす匡力、<oYIこ口sk#4をうっす阪市''?YにD陪kjtl~うっす~h''?YにD;sk守Niうっすk力、<oYIこ口sk#Iをうっす以力、らYIこDisk#3をうっす旨からYIこ日sk#1をうっす匡からYIこ口sk#2をうっす

院副まじれ¥~~:;:

図 15

計算に

36.532秒

力、ゎ、りました

、,

この授業は定期試験の代わりとなる内容として行った。古典的な暗号化法の l つであるシー

68

Page 13: Visual - AGUkiyou.lib.agu.ac.jp/pdf/kiyou_13F/13_61_3F/13_61_3_57.pdfVisual Basic によるプログラミング入門2. デジタル時計の作成 l 回目で作ったプログラムをもとに、デジタル時計を作成した。これは受講生ごとに写真等

Visual Basic によるプログラミング入門

ザ一式暗号について簡単な説明とプログラム中に使うべき VB の命令を示し、かっ参考となる

WEB サイトの探し方を明記したファイルを学生に示した。さらにこのファイルの最後には最

終課題である暗号イじした文章が記載されており、完成したプログラムを使いこの暗号文を解読

してその内容の問題(SPI の練習問題)を解き、虎津に口頭で答えを伝える事で試験の代わり

とした。

実際のファイルは以下のようである。

ファイ lレここから

下にある命令を使い、シーザー式暗号(文字を一定の数だけずらす)を作ったり、解読するプログラムを作りなさい。

シーザ一式暗号の例ずらす量が 2 の場合 : abcdefg • cdefghi

プログラムのひな型はマテリアルにあるフォルダ「H音号」を、マイ ドキュメン ト にコピー して、ファイル名の頭に学籍番号を付けくわえて使いなさい。完成したフ。ログラム(巴xe ファイル)は frm、 vbp ファイルと共に、フォルダ名「学籍番号+暗号」に入れ、春学期の授業が終わるまでにパブリックドライブの「暗号」というフォルダに提出すること。

今回は文字コー ドの範囲についての条件判定はしなくてかまいません。

プログラム中で使うと良い命令は次の通りです。

Len(string) string (文字列)の長さを求める

Asc(chara) charactor (文字)のアスキー コ ー ド(何番目の文字か)を求める

Mid(string, i, j) string (文字列)の i 番目の j 文字(個数)を求める

Chr(n) アスキー コ ー ドで n 番目の文字を求める

また、完成したプログラムを使い次の文章を解読し、その指示に従いなさい。オフセッ ト は ー 9 ~ 9 のあいだです。

~~~~~~~~~~~~ ここから ~~~~~~~~~~~~ いれ灰巌と 2 1 1 仁ん耐賞ぬ諜沙んじだどごわ。ザー ビイヴんじ

だごとはいれ仁ば39仁。ポトイ ーポーナーんじだごどはいれ仁ば56仁。チュピヴケはむんじだごどはいれ仁ば52仁とじだ、ぞはうせろやじだごどはにうイ二きうにうどぎ。ザーブイヴどポ ト イ

ーポーナは凌朋んじだごどはいれ仁ば伽仁とずが、

~~~~~~~~~~~~ ここまで ~~~~~~~~~~~~ ファイルここまで

69

Page 14: Visual - AGUkiyou.lib.agu.ac.jp/pdf/kiyou_13F/13_61_3F/13_61_3_57.pdfVisual Basic によるプログラミング入門2. デジタル時計の作成 l 回目で作ったプログラムをもとに、デジタル時計を作成した。これは受講生ごとに写真等

愛知学院大学教養部紀要第61 巻第 3 号

また、完成したプログラムを使い上にある暗号文を解読すると図 16 のようになる。

まとめ

回目ーーーーーーーーーーーーーーーーー温llilll-31

」竺」

コヲフセット

「「一一

~コ

目ちる海岸で100人を対象に調査をしたところ、サーフィンをしたーとのある人は2白人、ボディーボードをしたことのある人は45人、 9イピングのみをしたことのある人は41 人でした.そのいずれもしたことのない人がいないとさ、サーフィンとボディーボードの両方をしたことのある人は何人ですか.

i •

いれ灰巌と211 仁ん耐賞ぬ諜沙んじだどごわ.ザーブイヴんじ陀ごどはいれ仁l;l'.39仁。ポトイポ ナんじだごどはいれには56仁.チゥピヴケはむんじだごどはいれ仁l;l'.52j二とじだ,防はうせろやじだごどはにう{二きう(こうどぎ.ザ ブイヴどポトイ|ーポーナ(ま;妻朋んじだごどはいれ仁ば伽仁とずが,

図 16

これらの課題を通してプログラムがどのようなものであるかを実感し、かっプログラミング

に必要な論理的思考を身につける事が、少ないながらもできたのではないかと思う。受講生が

文系の学生である事から「不等号」という言葉を始めとした数学用語は仕方がないとしても、

エクスクラメーション・マーク、夕、ブ、ルクォテイションや、コロンといった高等学校以前に習

うであろう英記号を知らない学生が多く見受けられるようになり、それぞれを「ピックリマー

ク」「ちょんちょん」「点々」等と言い替えなければならない。また、 8 回日の授業で使用した

歯抜けのコー ドで、

Forml.Print _一一; Tab( 6 * j ); ‘ i * j を 6 桁ごとに表示する

とあるのに、 i * j を下線部に入力する事が理解できない学生が少なからず見られた。これは 9

回目以降の授業でも同じ学生でこの傾向が見られた。これは、そこに書かれている文章の意味

を読み取り、次の行動につなげるという作業を十分に訓練されていないことを示している。こ

れらのことから、いわゆる知育をふくむ基礎的な学習能力の酒養が必要であると思われる。

70

Page 15: Visual - AGUkiyou.lib.agu.ac.jp/pdf/kiyou_13F/13_61_3F/13_61_3_57.pdfVisual Basic によるプログラミング入門2. デジタル時計の作成 l 回目で作ったプログラムをもとに、デジタル時計を作成した。これは受講生ごとに写真等

Visual Basic によるプログラミング入門

参考文献

1. 戸川隼人「ザ ・ Visual Basic」 サイエンス社(1999 )

2 古川直樹・ 五百蔵重典「コンピュータ言語」 日経 BP ソフトプレス(2004)

71