![]() |
Top > 授業 > Delphi プログラミング >Lesson 2 Lesson 2(2004/08/28) |
![]() |
![]() |
![]() |
![]() 1.Lesson 2 では次の点を学習することを目指します。 ・基本的なアルゴリズムの導入(最大・最小値、平均値の算出) ・変数の型のうちの「レコード型」と「配列型」に慣れる ・制御文 for ... do、while ... do、if ... then ... else ・テキストファイルからのデータの読み込み (実際によく使うファイルはテキストファイルではなくバイナリファイルです。しかし計算結果をテキストファイルで書き出すことはよくしますので、最初にテキストファイルを使ってみます。) 2.サンプルプログラムを眺め、練習問題を試してください。 3.サンプルプログラムはダウンロードしてください(クリック)。ダウンロードしたファイル(lesson2.exe)はDelphi7\Source に置いてクリックして解凍してください。6つのサンプルプログラム P201〜P206(とデータのテキストファイル) が出てきます。 |
![]() a.type 文で「レコード型」の変数を作る。 (type で定義した DrawInfo はレコード型変数 Data のオブジェクトクラスであることに注意。) b.a.PaintBox に円を描く(Ellipse 命令)。 Ellipseの使い方については Delphi のヘルプないし参考書を参照すること。 練習問題 1.円の中心座標、半径にいろんな値を入力してプログラムを試せ。 2.Brush.Color := clRed; の clRed を clBlue に書き替えよ。 3.with Data do begin を削って同じ動作をするようにプログラムを書き換えよ。 4.DrawInfo 型のレコード型変数をもう一つ作り、そのレコード型変数の値を使って、Data に基づいて描く円の右 100 の場所にもう1つの円を描け。 |
![]() a.配列による定数の定義(CColor) (配列による変数の定義については後であらためて練習する。) b.繰り返しを指定する制御文 for ... do ( i の値によって円の x 座標が変る。) 練習問題 1.円の数を16に増やせ。 2.16描いた円のすべてが PaintBox の画面の中におさまるようにせよ。 3.円の y 座標が i によって変るようにプログラムを書き換えよ。 |
![]() a.テキストファイルからデータを読む。(AssignFile, Reset, CloseFile 文) AssignFile(ファイル変数名、ファイル名):ファイル名が指定するファイルをファイル変数名に結び付ける。 Reset(ファイル変数名):当のファイルを読み込み可能にする。 CloseFile(ファイル変数名):ファイル変数名と結び付いたファイルの使用の終了を宣言する。 ・テキストファイルのファイル変数の型は、Delphi では TextFile と指定する。 ・テキストファイルにデータを書き込む場合は、Reset の代わりに Rewrite を使う。(後で試す) b.繰り返しを指定する制御文 while ... do while (条件) do 命令; もしくは while (条件) do begin 命令のブロック end; c.基本的アルゴリズム:個数を数える (変数 n でデータの個数をカウントしている。) d.論理型変数 eof(ファイル変数名) ・eof は end of file の略。 ・言語の中で予め組み込まれた変数の1つである。他の言語でも似たような変数は必ず使っている。 ・ファイル変数で指定されたファイルの末尾になったら「真(true)」、末尾以外なら「偽(false)」となる。したがって一種の論理型変数である。 練習問題 1.自分のエディタでデータのテキストファイル(data01.txt)を読み出し、中身を確認せよ。 2.データの中に別の何人かのデータを書き加え、同じファイル名(data01.txt)で save せよ。そしてプログラムを再実行し、memo への出力内容が以前と異なることを確認せよ。 |
![]() a.基本的アルゴリズム:数値データの中の最大値を求める b.制御文 if ... then ... else 参考書などで文法を確認すること。 練習問題 1.プログラム中の if ... then ... else 文を2つの if 文(else なし)に分解せよ。 2.if 文の中身を書き換え、最大値ではなく最小値を求めるようにせよ。 (答えは次の P205.dpr である。P205.dpr を見る前に自分で考えよ。) |
![]() a.基本的アルゴリズム:数値データの中の最小値を求める 練習問題:Edit から数値を読み込み、data01.txt の中でその数値より大きいデータを memo に書き出すようなプログラムを書け。 |
![]() a.基本的アルゴリズム:数値データの平均値を求める 練習問題:数値データ(TestScore) の標準偏差を求めるようなプログラムを書け。(この練習問題が、Lesson 2で最も練習問題らしい問題です。すぐにできないようなら時間をかけて考えてください。) |
![]() 次回は主に以下を学びます。 a.配列 b.(再び)制御文 |