これで当カテゴリーでお話ししたいことはすべてお話しました。とはいっても当カテゴリーの目的は「平易なプログラミングを通してコンピュータの基本を学ぶこと」、主としてコンピュータのプログラミング入門者を対象としているので、コンピュータについての全てをお話しているわけではありません。また当カテゴリーの実習で使用したTiny Basic for Windowsについても、その全ての機能を網羅したわけではありません。
当カテゴリーの実習がきっかけでTiny Basic for Windowsをもっと深く勉強してみようという方は、ぜひ制作者のtakeuchiさんのサイトで勉強してください(下記リンクから行かれます)。
Tiny Basic for Windows
そしてコンピュータについてもっと専門的な知識を身に付けたいという方は、ぜひ機械語によるプログラミングに挑戦してください。演算、条件判断、繰り返し処理などをコンピュータがどうこなしているのかがわかります。
最後になりますが、ここまで頑張って読んでくださった皆様にこういうことを申し上げてたいへん申し訳ありません。プログラミング言語を覚えてプログラムが書けるようになっただけでは実用的なシステムが構築できるようにはなりません。システム構築ができるようになるためには、この後、システム設計の勉強をする必要があります。システム設計の第1歩は現状分析からですが、現状分析ができるようになるには、コンピュータの知識以前に対象の業務についての知識が必要です(筆者は昔、これで大っ恥かいた経験があります)。
そして出来あがったプログラムが目的通りに正しく動くかどうか、システムが目的どおりに間違いなく効率良く稼働するかどうか、これらが出来るようになるにはプログラムテスト、システム評価についての知識も必要です。これから職業プログラマ、SE(システムエンジニア)を目指そうと思っている方は、それらについて勉強していってください。
当カテゴリーがきっかけでふだんword、excelなどで使っているパソコンがどういう機械なのかということに皆様が目を向けてくだされば、コンテンツ制作者としてこれ以上の喜びはありません。
前章では、キーボードから入力したデータをファイルに書き込む(補助記憶装置に記憶する)プログラムを通して、コンピュータでのファイルについての基本を学びました。本章では、前章で作成したファイルを読み込むプログラムを通して、もう少しファイルを効果的に使うことを覚えましょう。前章同様、Word、Excelなどをすでに使っていて、ファイルについての基本知識がある方は※の節は読み飛ばしていただいてかまいません。
【補助記憶装置とファイル】※
前章では説明を省略しましたが、ドライブ名、フォルダ(ディレクトリ)、ファイルパスについてお話します。
[ドライブとフォルダ(ディレクトリ)]
図15-1.補助記憶装置のいろいろ
前章では補助記憶装置の説明としてCD/DVDドライブをとり上げましたが、補助記憶装置には図15-1のようにいろいろなものがあります。それぞれの装置の詳しい構造を知ることは本カテゴリーの目的から外れますのでここでは説明しませんが、外見からはわからなくともどの装置も駆動部、アクセス部(コントローラ)と記録媒体(不揮発性メモリ)で成り立っていることは共通しています。これらの補助記憶装置をすべてパソコンに接続した上で、WindowsシステムツールのPCを開くと図15-2のように表示されます。
図15-2.複数の補助記憶装置が接続された状態
図15-2の下半分のデバイスとドライブの部分を見ると現在接続されている補助記憶装置がわかります。ここで各装置のところに表示されているTIH0422000AやHD-PCGU3-Aなどをボリュームラベル(ボリューム名)といい、各補助記憶装置に付けられている名前とお考えください。ボリュームラベルはご自分の好きな名前に付け替えることができます。ボリュームラベルの後ろの(C:)や(F:)をドライブ名といいます(ドライブ名はお使いのパソコンにより異なります)。ボリュームラベルは長くて煩雑なので、プログラム中で補助記憶装置を扱うときはドライブ名を用います。
では、前章で作成したファイル、meibo.txtはどこに入っているのでしょうか。結論を先に言うとTiny Basic for Window(TBasic)sの場合、
OPEN "meibo.txt" FOR OUTPUT AS #1
のようにファイルパスを指定しないデフォルトの状態でファイルを作成するプログラムを走らせると、Tbasic.exeと同じ場所にファイルが出来ます。ここではTiny Basic for Windowsをusbメモリにインストール(【第0章】実習の準備参照)したものとして考えます。デバイスとドライブのTBasic.exeが入っているドライブをダブルクリックしてください(この例ではUSBメモリ)。すると図15-3のように表示されます。
図15-3.USBメモリをダブルクリックしたところ
黄色いノートみたいなアイコンが並んでいますが、これをフォルダ(ディレクトリ)といいます。1個のusbメモリを複数の目的に使う場合、ファイルをそのままでどんどん書き込んでいくと、後で見た時に「この作業に必要なファイルはどれだっけ」と探すのが大変になります。そこで目的別にファイルを分類しておくために、フォルダを作って、その中にファイルを書き込むようにします。この例ではTBasicというフォルダにTiny Basic for Windowsが入っています。ではTBasicというフォルダをダブルクリックしてみましょう。今度は図15-4のように表示されます。
図15-4.TBasicフォルダを開いたところ
Tiny Basic for Windows本体のTBasic.exeと前章で作成したプログラムとmeibo.txtという名のファイルが同じフォルダ内にあるのが確認できます。他にもいろいろなフォルダやファイルがありますが、これらはTiny Basic for Windowsをインストールしたときに自動的にコピーされたドキュメントやサンプルプログラムです。ここでmeibo.txtをダブルクリックするとWindows附録のメモ帳が起動し、中身を見ることができます(拡張子が .txt のファイルをダブルクリックすると自動的にメモ中が起動します)。ここでこのファイルの内容をメモ帳で変更・編集しないようにしてください。Enterキー(Returnキー)もダメです。ファイルの内容を変更・編集すると後で不具合が起こることがありますので充分気を付けてください。ファイルの内容が確認できたら、メモ帳を閉じてください。
1,青山 一丁目,アオヤマ イッチョウメ
2,秋田 鳥海,アキタ チョウカイ
3,麻布 十番,アザブ ジュウバン
4,石川 鶴来,イシカワ ツルギ
5,宇和島 愛媛,ウワジマ エヒメ
6,神奈川 鶴見,カナガワ ツルミ
7,島根 松江,シマネ マツエ
8,徳島 鳴門,トクシマ ナルト
9,長野 善光寺,ナガノ ゼンコウジ
10,盛岡 冷麺,モリオカ レイメン
図15-5.meibo.txtをメモ帳で開いたところ
[ファイルパス]
ここでいうパスとはpass(通行証/合格)ではなくpath(経路/道)です。対象のファイルまで辿り着く経路ということですが、前章で作成したmeibo.txtは図15-2から15-4のとおりの場所に作成されているとすると
Dドライブ(の媒体)の中のTBasicというフォルダの中のmeibo.txtというファイル
ということになります。これをTiny Basicでは
"D:¥TBasic¥meibo.txt"(¥はお使いのOS/ブラウザによっては\と表示されているかもしれません)
と書きます。ファイルパスの書き方は
ドライブ名:¥フォルダ名¥フォルダ名・・・・¥ファイル名
です。ファイルバスのうちドライブ名からフォルダ名は省略可能ですが、省略した場合(デフオルトのファイルパス)は、Tiny Basicの場合、TBasic.exeが入っている場所と同じ場所を指定したものとみなされます。
【ファイルを読み込むプログラム】
では、このmeibo.txtというファイルを読み込んで内容を表示するプログラムを作ります。手順は
①ファイルをINPUTモードで開く
②ファイルの内容を1行(1レコード)ずつ読み込み内容を表示する
③ファイルを閉じる
となります。プログラムは図15-6のようになります。2行目が手順①、3~6のWHILEブロックが手順②、7行目が手順③になります。
1:PRINT "*****名簿ファイル読み込み*****"
2:OPEN "D:\TBasic\meibo.txt" FOR INPUT AS #1
3:WHILE NOT EOF(1)
4: INPUT #1,BANGO,NAMAE$,KANA$
5: PRINT BANGO;" ";NAMAE$,KANA$
6:WEND
7:CLOSE #1
8:END
図15-6.ファイルを読み込むプログラム
ファイルの終わりを検知する
3行目にEOFというのが新しく出てきました。これはファイルの内容を1行ずつ読み込んでいって最後の行を読み終わったときtrue(真)となる関数です。End Of Fileの意味です。
EOF(ファイル番号)
のように書きます。
したがって、3~6行目のWHILEブロックは「ファイル番号1のファイル中のレコードをすべて読み込み終わるまで」ということになります。
ファイルの中身を読み込むにはINPUT命令を使いますが、INPUTの後ろに#ファイル番号を付けます(4行目)。次のように書きます。
INPUT #ファイル番号,変数,変数・・・・変数
今の例では1レコードのアイテムは番号(数値),名前(ストリング),ヨミガナ(ストリング)の順に並んでいるので、INPUT #1以後の変数の並びもこの型のとおりに合わせます(4行目)
5行目は読み込んだレコードの内容を表示しています。
これで最初の青山 一丁目さんから最後の盛岡 冷麺さんまで名簿ファイル中のすべてのレコードを読み込んで表示します。レコードを読み込んだところで、次のレコードがもうない(今読み込んだレコードが最後)だとEOFの値はtrue(真)になります。よって3行目のWHILE文に戻ったとき繰り返し終了条件は満たしたと判断され、WHILEブロックを抜けて7行目以降に移ります。ここで今使用したファイルを閉じてプログラム終了です。
【ファイルを2つ使うプログラム】
本カテゴリーで作成するプログラムもいよいよ最後となりました。ここでは少し実用的なプログラムをやってみましょう。といってもいきなり今までやってなかった命令や関数が出てくるわけではありません。ここまでで学んだ知識を組み合わせてできる範囲ですから、安心してください。
[プログラムの概要]
クラス名簿マスタファイルを読み込み、各々の生徒の試験の点数を入力し、試験データファイルを作成する
マスタファイルとは大元のファイルで内容が変わることは滅多にないもの、データファイルとは内容が変わることが頻繁にあるファイルです。
ファイル・レコードの形式
名簿マスタファイル
番号(数値),名前(ストリング),ヨミガナ(ストリング)
試験データファイル
番号(数値),点数(数値)
試験の点数
0点以上100点以下とする
図15-7.ファイルを複数使うプログラムのイメージ
1:PRINT "***** 試験の点数入力 *****"
2:INPUT "開始しますか(YES=1)",STARTOK$
3:IF STARTOK$<>"1" THEN
4: END
5:END IF
6:OPEN "meibo.txt" FOR INPUT AS #1
7:OPEN "shiken.txt" FOR OUTPUT AS #2
8:WHILE NOT EOF(1)
9: INPUT #1,BANGO,NAMAE$,KANA$
10: YN$=""
11: WHILE YN$<>"1"
12: PRINT BANGO;" ";NAMAE$,KANA$
13: DATAOK=0
14: WHILE DATAOK<>1
15: INPUT "点数(0-100)",TEN
16: IF TEN=>0 AND TEN<=100 THEN
17: DATAOK = 1
18: ELSE
19: PRINT "点数は0から100までです"
20: END IF
21: WEND
22: INPUT "これでよろしいですか(YES=1)",YN$
23: WEND
24: PRINT #2,BANGO;",";NAMAE$;",";KANA$;",";TEN
25:WEND
26:CLOSE #1,#2
27:END
1~5行目 誤実行防止
6行目 名簿マスタファイルを入力専用、ファイル番号1で開く
7行目 試験データファイルを出力専用、ファイル番号2で開く
8~25行目 名簿マスタファイルの全レコードを読み終わるまで繰り返す
9行目 名簿マスタファイルのレコード1件分の読み込み
11~23行目 入力した試験の点数が間違いなくなるまで繰り返す
12行目 今読み込んだレコードの内容を表示
14~21行目 入力した点数が正しくなるまで(0~100点の範囲内)になるまで繰り返す
22行目 入力した点数の確認
24行目 試験データファイルに出力
26行目 使用したファイルを閉じる
このカテゴリーもいよいよ終点に近づいてきました。この章と次章ではファイルを使うプログラムについて学びます。ファイルについて勉強するには、ファイル名、拡張子、補助記憶装置(媒体)などについても知る必要があります。本カテゴリーの目的は「プログラミング体験」と「プログラミング的思考を身につける」ですから、Windowsパソコン初心者の方でもわかるよう、この辺は必要最小限の範囲にとどめ、なるべく平易に説明します。またWord、Excelなどをすでに使っていて、ファイルについての基本知識がある方は※の節は読み飛ばしていただいてかまいません。
またTiny Basic for Windowsではファイルを取り扱う方法は①旧来の方法②.NET Frameworkに対応した方法(新しい方法)の2つがありますが、本カテゴリーではファイルとはどういうものかを知るために①の方法に基づいて説明します。
【ファイルとは】※
図14-4は一般的にファイルとよばれているもので、○月分売上伝票とか○年○組生徒指導要録など、同じ種類(目的)の書類をまとめておくのに使われます。
コンピュータのファイルも基本的にはこれと同じで①同じ種類(目的)のデータをまとめておくものです。ただコンピュータのファイルには②ある目的のための材料箱というものもあります。本カテゴリーでは①の意味でのファイルについて中心にお話します。
図14-1.事務用品のファイル
【ファイル・レコード、アイテム】※
ファイルとは同じ種類(目的)のデータをまとめておくものでした。たとえば担任クラスの生徒の名簿を考えてみます(図14-2)。
図14-2.名簿の例
これがファイルです。ファイルの中の1件1件のデータ(この例なら1行)をレコードといい、1件のレコードを構成する各項目(この例なら出席番号、氏名、ヨミガナ)をアイテムといいます。
プログラムを作るとき、最初に処理の手順(アルゴリズム)を考えたように、ファイルを使うには先にファイル設計をしておく必要があります。もし名簿が図14-3のようだったら、こんな名簿使いにくいことこの上ないですね。
図14-3.使いにくい名簿
このように1レコード中のアイテムの並びをどうするのか先に決めておくことが大切です。ここでは図14-2のように出席番号、氏名、ヨミガナの順としておきます。
【主記憶装置と補助記憶装置】※
図14-4.コンピュータを構成する各装置
第4章で出てきたこの図をもう一度復習しましょう。今のノートパソコンでは一見してもわかりませんが、コンピュータの中身は図14-4のようになっています。今までやってきたプログラム、たとえば次のプログラムは、図14-4の主記憶装置より上の部分(中央処理装置=Central Processing Unit=CPU、入力装置、出力装置、主記憶装置)だけを使っています。
INPUT "A=",A
INPUT "B=",B
C=A+B
PRINT "A+B=";C
END
ファイルを使うプログラムでは補助記憶装置(固定ディスク装置、CD/DVDドライブ、USBメモリ、SDカードなど)も使います。まず主記憶装置と補助記憶装置はどう違うのかを知っておきましょう。
上のプログラムの場合、キーボードから入力された2つの数を、それぞれ変数A、Bに記憶します。このとき2つの変数は主記憶装置内に自動的に格納されます。これは主記憶装置はCPUが直接管理しているからです。これに対してデータを主記憶装置ではなく、補助記憶装置に記憶する場合、①使用するファイルを開く②データをファイルに書き込む③ファイルを閉じるというステップを踏まなくてはなりません。これは補助記憶装置はCPUが直接管理していないため、使うための準備から後始末まで、すべてプログラムでやらなくてはならないからです。
【補助記憶装置と補助記憶媒体】※
ここで、何の説明もなく補助記憶装置という言葉を使いましたが、具体的な例でみてみましょう。目で見て最もわかりやすいCD/DVDドライブを例にとります。
図14-5.補助記憶装置(CD/DVDドライブ)
これはパソコン内蔵のCD/DVDドライブです。ここに音楽CDをセットすればパソコンをCDプレイヤーとして、映画やドラマなどのDVDをセットすればDVDプレイヤーとして使用することができます。そしてここに書き込み可能なCD-R、CD-RW、DVD-R、DVD-RW(以下、ディスクといいます)などをセットすれば、このCD/DVDドライブは補助記憶装置となります。上の写真をよく見ると、中心にセットしたCD、DVDを回転させる軸とディスクの内容を読み取ったり、ディスクにデータを書き込む光ヘッドがあるのが見えます。このような駆動装置、アクセス装置を総称して補助記憶装置といいます。
図14-6.補助記憶媒体(DVD-R)
この装置にセットするディスクのひとつが図14-6のDVD-Rです。補助記憶装置にセットして使用するディスク、USBメモリなどを補助記憶媒体(最近ではメディア、ストレージというようです)といいます。ファイルはこの補助記憶媒体に書き込まれます(記録されます)。
図14-7.補助記憶媒体を補助記憶装置にセットしたところ
このとおり補助記憶装置とは補助記憶媒体の内容を読み書きする装置のことなのですが、本カテゴリーでは煩雑さを避けるため補助記憶媒体をセットした状態(図14-7)を補助記憶装置と呼ぶことにします。
[主記憶装置と補助記憶装置の特性と欠点]※
①記憶容量
一般的に主記憶装置と補助記憶装置では補助記憶装置の方が記憶容量が大きいです。筆者のパソコンの場合、主記憶装置の記憶容量は8GB(ギガバイト)ですが、使用している補助記憶装置はいちばん容量が小さいもので500GBほどです。今日ではコンビニで売ってるUSBメモリやSDカードでも32GB、64GBくらいが普通になっています。なので全校生徒(児童)の指導要録などの大量の(容量の大きい)データはファイルとして補助記憶装置に、計算結果や処理中のデータは保存の必要がない限り主記憶装置内だけで扱うようにします。
②速度
主記憶装置と補助記憶装置では主記憶装置の方が記憶・記憶内容の読み出しの速度が速いです。今日のパソコン用補助記憶装置で一般的な事務処理プログラム程度ではあまり意識する必要はありませんが、画像・音声・動画を大量に扱う場合、補助記憶媒体への書き込み速度はシステム全体の運用効率にかなり影響が出ます。
③保存性
最後にこの節で最も大事なことを知っておきましょう。それは補助記憶装置の記憶は媒体が物理的に破損するか記録内容を消去するプログラムを実行しない限り永久に残るということです。これに対して主記憶装置の記憶内容はパソコンの電源を切るかパソコンを再起動かけたところですべて消えます。なので永久に保存しておきたいデータは補助記憶装置に記憶させるようにします。
手作り雑貨、お菓子、コーヒー、キッチンカーなどで、
普段はネットで販売中心の作者さんたちの
合同販売会という感じのイベントでした。
主催団体は#アオイマルシェ
↑クリックすると拡大します
今日の会場は富山市水橋会館多目的ホール。
パッと見た感じけっこう大きな神社の社務所かと思った。
この中に、ホールと児童館がある。
↑クリックすると拡大します↑
こういうイベント、けっこう好きです。
次は3/25~26イオンタウン金沢示野。富山は
4/1~3砺波のチューリップ四季彩館だそうです。
また行きたいな。