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 までメールを出すこと。