このページも開設以来はや1年を迎えようとしております。というか、まだ1年経っていなかったんですね(^^;どうやらなんとか1年もったなあ〜という感じで、1年を振り返る企画が多分来週くらいからあることでしょう(^^;Aということで、Delphi学習記は多分来週以降しばらくはおやすみですm(__)m
さて、このページをご覧の皆様にはまだ学生さんもいらっしゃることと思います。いいですね夏休み(^o^)大学生になれば夏休みはひたすらバイト&クラブ&遊びと金と体力の続く限り遊びまくれますが、高校生以下の皆様は宿題やら入試やらで夏休みの楽しさが半減!しているかもしれません。
そんななか、誰もがやったことのあるあの宿題、そう英文法。まあ国文法でもいいんですけど、この文法について、現在Kも学習中です。ということでKの物語は今回はDelphi文法学習記ですね。
Kはこれまで読みつつ学習してきた「Delphiパーソナルプログラミング」を読み終わろうとしていた。しかし広大なDelphiの世界にすぐ飛び込んでプログラムを作れるか、というとやや自信がなかった。
「Delphiパーソナルプログラミング」は、Kをまったくの初心者から、最終的にDelphiの全体を俯瞰(上から見る)できるような所まで引き上げてくれた。この本は全体構造を順に、内容を説明し、小さなサンプルプログラムを組みつつ、章の終わりである程度使えるプログラムを作るという構成であった。そう、ある程度はわかるけれども、こういう時にはこう、といった、テクニック集とまではいかないのだ。第一そういう内容は急に難しくなったりして、初心者を混乱させるばかりで向いていない。
しかし、一から自分でプログラムを組むとなると、この場面ではこうする、この機能がほしければこう書く、といった経験が必要になってくる。細かい経験は当然持っていないK。ここはいきなり作り始める前にもう少し勉強したくなった。
そこで買ってきたのが「カンタンDelphiプログラミング」(日経ソフトウェア編、日経BP社、2286円+税)。日経ソフトウェアで連載されていた記事の総集編のようだ。いろいろなサンプルプログラムを作りながら解説していく内容となっている。
さて、読んでみると、3部構成で、1部2部はサンプルプログラムをつくりつつその説明があり、2部は基礎文法的内容であった。Kは1部の最初から読んでいった……当初のボタンを押してダイアログを表示させる、といった程度の内容ならばサンプルを見なくても同等品が作れるようになっていた。ところがパート4「レコード型、ポインタ型に挑戦」あたりから急激に難しくなり、何がなんだかわかなくなってきた(@-@)説明もサンプルのプログラム量が結構大きかったからか、紙面の制約(もとは雑誌だから仕方がないとはいえ…)からか、ほとんどなされていない。「『へー、こういう作り方もできるんだ』という感じで読み進んでいただければ」とあるけれども、わからんものを読み進んでも仕方がない(T-T)パート5からはまた別の話題に移るし、ルートやら絶対値やら関数やら、昔から数学が苦手だったKに追い打ちをかけるような内容になっていた。これはいけない!ね、眠い(_ _).oO
ということで読み進めるのを諦めて、第2部に勝手に進むことにしたK。ここからは文法の詳細説明であった。第1部のように使えるサンプルプログラムを作ることもなく、プログラムリストも少なく、地味。英会話や英文といった勉強から、英文法の勉強に移ったような地味さ。ちなみにKは英語も苦手である。英語も数学も苦手でも、英語ベースでプログラムを組める証明のような人物。まあ得意な方がもっとよいものができるのかもしれないけれども(^^;A
イベントや変数、変数の型といった内容はさすがに先週までで理解していたKであったが、再び現れた強敵「レコード、配列、クラスを一気にマスターしよう」には手こずった。レコードをCDの古いタイプか?という冗談をいわない程度の知識はあったKであるが、クラスはさすがに難しかった。クラスを理解できれば前回にも登場していたオブジェクトも理解できるようになるようだ。
若干の説明。データベースを理解できる人はレコードは理解できる。この本では、
インデックス | 名前 | 英語 | 国語 | 数学 |
1 | 太郎 | 50 | 25 | 90 |
2 | 花子 | 90 | 45 | 50 |
というような例を用いている。横の行(1・太郎・50・25・90)がレコード、縦の列(太郎、花子)がフィールドという。ここらへんはお約束。レコードで複数の変数をひとつの変数で管理できるようになる。Delphiではレコードが簡単に扱えるようだ。Kがめざす三國志のプログラムのように、大量の変数を扱うプログラムに向いている。
配列は多くのプログラム言語にあるが、こちらも若干の説明。上の表でいえば、「名前」という変数に太郎という値を入れるとそれっきりになってしまい、花子を入れられなくなるけれども、「名前[0]」「名前[1]」というように、0次元(点)から1次元(線)にして、添え字([0]とか)で指定することで 太郎とか花子といった複数の値を「名前」という変数で管理できる。
HSPでも配列は使用できたが、レコードの使用はできなかった。レコードが使えれば大量のデータを扱いやすくなる。さらにDelphiでは、動的配列というのも使えるらしい。HSPでは、配列の要素数は事前に指定しておかなければいけなかったが、Delphiでは途中で必要があれば増やすことができる。これまたKがめざす三國志のプログラムでは、武将が増えたり減ったりする際に使えそうだ。
さらにクラス。これがわかりずらい。普通に値を代入するとレコードと同様だけれども、代入手続とか、関数なども持つことができるという。ここまでくると変数という感じではなくなって、ひとつの部品のような感じである。実際クラスはオブジェクトを作るというので、前回のオブジェクト指向の話にまでつながるという。ここまでくると、クラスは単なるデータの格納場所をはるかに超える部品、独立した小プログラムであり、どうやらその感じは誤っていないようだ。
さすがに慣れない概念を学ぼうとすると時間がかかる。まだクラスについてはイマイチKもわかっていない。まああわててわかろうとせず、実践で使いながらありがたみを感じることにしよう。文法学習も捨てたものではなく、ある程度実際にやってみて、作ってみてから改めて文法を見ることによって、あれもこれも同じに見えてやっぱり同じだ!と腑に落ちることもあるなあ、というのが今週の感想。そろそろ前途に光明が見えだしたか・・・?
|index|
このページへのリンクはフリーです。