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


Shinji KONO / Thu May 11 17:47:17 2000