Top > 授業 > Delphi プログラミング >Lesson 5a
Lesson 5a
(2004/09/10)
問合せ メール 戻る

Lesson 5 について

1.Lesson 5 では次の練習をします。
・Lesson 4 に引き続き、手続きと関数
・グラフィックで線を描く(シミュレーションなどで結果を表示するときの基本です)
・2次元の図形を処理する

2.この Lesson 5 では9つのサンプルプログラムを用意します。ただしそのうちのいくつかは、別のサンプルプログラムの練習問題の解答(例)になっています。この Lesson 5 では、解答例を予め示すのではなく、練習者が実際にプログラムして私に提出した後に、ダウンロードできるようにしたいと思います。そこで、Lesson 5 は Lesson 5a と Lesson 5b の2つに分けることにします。

3.サンプルプログラムを眺め、練習問題を試してください。

4.この Lesson 5a 用のサンプルプログラムをまずダウンロードしてください(クリック)。解凍して出てくるのは、P501、P504〜P506のDelphi プログラム、および実行形式の P508.exe、P509.exe です。P502、P503、P507〜P509 の Delphi プログラムは Lesson 5b でダウンロードできるようにします。以下のうち、高木にプログラムを提出する練習問題への解答(プログラム)は、高木にメール添付で送ってください。できれば圧縮ソフトを使い、1つのプログラムのための複数のDelphiファイルを1つにして送ってください。
P501のポイント

a.このプログラムは、PaintBox に Sin と Con のカーヴを描く
・PaintBox の原点(0,0)は左端の角の点であり、y座標が大きくなるほど位置は低くなることに注意すること
・このプログラムでは(手続きTForm1.StartBtnClickの中では)手続き、関数は使っていない。以下の練習問題で手続きや関数を使って書き換える(そして提出する)ことを求める。

b.標準関数 Sin(x)、Cos(x) の x の値はラジアンである
・ラジアンの2πが角度の 360度にあたる。

c.線を描く基本は MoveTo と LineTo の命令である
 MoveTo(x,y) で線の描画の始点が座標 (x,y) になる。LineTo(x,y) で始点から座標 (x,y) までの線を描く。

練習問題
1.配列の定数 Fxy は何を表わすか?
2.プログラム中の次の行を削除するとどうなるかを試せ。
Gxy[j,2,1] := Gxy[j,1,1]; Gxy[j,2,2] := Gxy[j,1,2];
3.[提出]このプログラムの中身(手続きTForm1.StartBtnClick)を、「座標の線を描く手続き」と「Sin、Cos カーヴを描く手続き」の2つに分けよ。パラメータのない手続きでよい。→P502.dpr
4.[提出]その「Sin、Cos カーヴを描く手続き」を、さらに手続きや関数を導入して整理せよ。→P503.dpr
P502

・P501 の練習問題3の解答例です。
・解説は Lesson 5b で行います。
P503

・P501 の練習問題4の解答例です。
・解説は Lesson 5b で行います。
P504のポイント

a.このプログラムは PaintBox に 鳥の図形を描く

b.手続き polygon (Delphi に予め組み込まれている)で複数の頂点を結ぶ多角形を描く
 詳しくは Delphi の「ヘルプ」で polygon を調べよ。

c.手続きのパラメータ(引数)をレコード型(type points20)で定義する
 手続き _Disp でパラメータ(引数)をレコード型(type points20)で定義している。手続きの引数をレコード型で定義することは多い。身につけておくこと。

練習問題
1.定数 xy0、scale がどのような働きをしているか、確認せよ。
2.手続き _Disp の中の変数 x と 本プログラムで定義した変数 x の間にどのような関係があるか、考えよ。
P505のポイント

a.このプログラムは PaintBox に、同じ鳥の図形を、位置と色を変えて10個描く
 手続き _Change と _Move で図形の平行移動をし、手続き _Disp で図形を描く

b.手続き _Move は2次元図形の平行移動のアルゴリズムを使っている

練習問題:手続き _Change を引数(パラメータ)を使って書き換えよ
P506のポイント

a.このプログラムはP505.dpr が描く鳥の図形に回転移動を施す

b.手続き _Rotate は図形を回転移動したときの位置を求めるアルゴリズムに基づく

練習問題
1.[提出]図形の線対称移動、点対称移動の手続きを作り、鳥のもとの図形、線対称移動した図形、点対称移動した図形、をそれぞれ1つずつ描くプログラムを作れ → P507.dpr
2.[提出]ダウンロードしたファイルの P508.exe と同様の動作をするプログラムを書け → P508.dpr
3.[提出]ダウンロードしたファイルの P509.exe と同様の動作をするプログラムを書け → P509.dpr
P507

・P506 の練習問題1の解答例です。
・解説は Lesson 5b で行います。
P508

・P506 の練習問題2の解答例です。
・解説は Lesson 5b で行います。
P509

・P506 の練習問題3の解答例です。
・解説は Lesson 5b で行います。
次回に向けて

・まず、P501とP506の練習問題のうち、[提出]指定のプログラムを高木に送ってください。その後に、その練習問題の解答例にあたるプログラムを Lesson 5b の掲示でダウンロードできるようにします。
・ここまででプログラミングの基本的な部分の学習は既に終了していると思います。Lesson 6 からは、シミュレーションの準備のために、乱数を用いたプログラムを練習することにします。