情報処理とは何?から、Hello Worldを各種言語で出力するまでの流れをかく、シリーズHello World以前のプログラム言語のつづきです(このシリーズは、土日に書きます)。
■前回のまとめと、今回のお話
前回は、データを再利用するのに、ファイルというカタチでまとめておいて、それを読み込んで再利用するという話と、その際、
ファイルはレコードというまとまりの繰り返しになっていることがあり
(というか、それが多い)
レコードは、複数の項目からできている
各項目において、値の表現の仕方はいろいろあり、どうやって表現するかというのを
しめしたのが、型である。
っていう話から、固定長、可変長という話をしました。
今回は、ファイルに入っているデータを、プログラムでどーするかということを書きます。
■値を置いておくところとしての変数
で、ファイルを読み込んで処理するわけです。
で、読み込む命令っていうのももちろんあって、
前に書いたとおり、命令には、引数っていうのがあるわけです。
だから、読み込み命令も、どのファイルを読み込んで、どこに値をいれるかというのを
指定します。
っていうところで、問題なのですが、ファイルの値を、どこに入れとくんでしょう。。。
実は、ファイルの値が入るところはもちろんなのですが、計算の途中結果などをいれておくところも、こんだけのおおきさで、用意しておいてね!と、命令以外のカタチで記述します。
それを、宣言文といいます。
宣言文は、変数を宣言するわけですが、ファイルのときと同じように、値を保持しておくわけですから、型が必要です。なので、普通の言語は
型 変数名
というカタチをとります。
ただし、すべて何でもOKという型を考えることも実は可能で、この場合、変数宣言がなくっても、命令文に変数が出てきたら、その時点で値が入るところを用意することができる言語もあります(VB、Perlなど)
一方、変数名から、型を決めてしまうことができる言語もあります(FORTRAN)。この場合も、命令文に変数が出てきたら、その時点で値が入るところを用意することができます。
もちろん、これらの言語でも、宣言して変数領域を取ることは可能です。
なお、言語によっては、型の前に、この値が使う範囲を限定したりすることば
publicやprivetaなどなど、とかをつける言語もあります。
■レコードの表現と構造体と配列
で、ファイルはレコードの繰り返しで構成されていて、レコードは、複数の項目(いろんな型の項目が考えられる)からなっているということでしたけど、それを、上記の変数領域におくのは、どうしたらよいかということになります。
で、まず、繰り返しについてなのですが、あるものの繰り返しは、配列というもので表現します。
型 変数[繰り返し個数]
のカタチで[繰り返し個数]の部分で、繰り返しを表現する=これが配列という言語が多いと思います。
一方、レコードは、項目からできている、その項目の型はいろいろあるという部分をどのように表現するかですが、これは、複数の変数(もちろん、これらの型はちがっていい)を、ひとまとめにして、このひとまとめにしたものを、変数にすることができます。
つまり、
ひとまとめにしたもの =
型 項目1
型 項目2
型 項目3
みたいなかんじに、できるということです。
で、この、ひとまとめにしたものを構造体といいます。
今回のこのシリーズ、わかりにくかったですね。
巧く説明できんかった(>_<!)
次回のこのシリーズは、クラスについて説明する予定です。