Lecture on Programming I 5/11
Menu Menu
先週の復習
typing の練習 script とメールの使い方Perl のマニュアル
Perl5 man Perl5 のマニュアル(日本語) (注) 最新版ではありません
Perl の read/eval loop
Perl の基本的な構文
制御構造
条件文
if ($_ > $answer) {
print "Too large.\n";
} elsif ($_ < $answer) {
print "Too small.\n";
} else {
print "Correct.\n";
}
ループ
while(条件) { ... }
for($i=0;$i<10;$i=$i+1) { ... }
do { ... } until (条件);
課題の提出について
<> を複数回繰り返すことについて
eof() をチェックする説明不足のレポート...
逆数当てについて
何をやったかのか自分で説明するPerl の名前付け
あまり大文字は使わないこまめに出すのはやめて。
Typing の練習
今日も typing の練習をすること (20分)結果をscript でメールすること。
整形した結果を、
Subject: Report on Programming I 5/11-typist
というサブジェクトで、kono@ie.u-ryukyu.ac.jp までメールを出すこと。
Indentation
K&R style
while (<>) {
...
}
if ($a==3) {
....
} elsif ($a<0) {
...
} else {
...
}
必ず、この形を使う。
(1) 自分の書いたプログラムを、この形に indent しなおせ。
プログラミングの勉強について
本を読もう!人のをコピーしても良いが、ちゃんと理解すること
動作をちゃんと全部理解しているか?
Mule の漢字のcut&pasteについて
C-X C-K i *euc-japan*unixとする。あるいは、
(set-keyboard-coding-system *euc-japan*)
を .emacs に書く
subroutine
Perl では、
sub add {
my ($add) = @_;
$sum += $add;
print "test $sum\n";
}
という形で、サブルーチンを定義します。
add(5);
add(10);
add(-10);
add(5);
を実行してみて、何をしているのか理解しょう。
Turtle Graphics
Turtle Graphics とは? Turtle とは、亀のこと。亀を動かすことにより、絵を書いていくものです。
#!/usr/local/bin/perl5
use Turtle; # Turtle モジュールを使う
$turtle = Turtle->create(); # 亀を作る
$turtle->color('red'); # 色の設定
$turtle->width(3); # 大きさの設定
$turtle->color('none'); # 色無し
$turtle->move(100,100); # 100,100 に移動する
$turtle->color('black'); # 色を黒くして
$turtle->move(10,00); # 右に10移動
$turtle->move(00,10); # 下に10移動
$turtle->color('green'); # 色を緑に
$turtle->move(-10,00); # 左に10移動
$turtle->move(00,-10); # 下に10移動
$turtle->MainLoop(); # quit が押されるまで待つ
まず、モジュールをコピーしよう。
rcp pw006:/usr/open/classes/kono/programming1/Turtle/\* .
または、/usr/open があるpw ならば、
cp /usr/open/classes/kono/programming1/Turtle/* .
または、 ここ
です。
Perl のオブジェクト
$turtle = Turtle->create();
は、Turtle というオブジェクト(Object = もの)を作っています。
$turtle->color('red');
などは、オブジェクトに対する操作で、メソッド呼出し、または、メッセージ送信と呼ばれるものです。
Turtle Graphics の課題
(1) サブルーチンを使って、四角を、20個四角く表示するプログラムを書け。(2) sin,cos を使って、円を近似するプログラムを書け。
(3) 円を20個、四角く表示するプログラムを書け。
参考
test1.pl 四角を複数表示するプログラム
test2.pl 円を途中まで表示するプログラム
Turtle.pm
Turtle.pm は、Perl/Tk を使って書かれている。Tutle.pm で使われている Perl/Tk の機能をマニュアルで確認せよ。
Canvas を調べると良い。
(3) name() と erase() のメソッドの役割を想像し、実際に動作させてみよ。
ドラゴン曲線
ドラゴン曲線とは以下のようなものである。まず、一定の長さの直線を書く。
│
それを90度回転させたものを書く。
│ └─それをさらに0度回転させたものを書く。
│ └─┐ │ ─┘これを繰り返し、行なうプログラムを Turtle グラフィックスで記述せよ。10回以上繰り返すプログラムを動かしてみよ。
以上の課題を
Subject: Report on Programming I 5/11というサブジェクトで、kono@ie.u-ryukyu.ac.jp までメールを出すこと。