多重ループと三角形 



こんなのを書いてみます

まず、1つの三角形

ここではブロック(定義)を使います。
スクラッチにはブロックを作るって書いてあって、できるのは大義
定義=ブロックなんだけど統一してほしいなぁ。
まずブロック「300の三角形」をつくります。
ブロックは→ブロックの作り方 を見てください。
そして、ブロックの中身を書きます。
ペンの「全部消す」や「ペンを下ろす」は→ペンはどこにある を見てください

l120度ずつ3回、回せば、300ピクセルの三角形がかけます。


ネコチャンは「大きさ50」にして小さくしてあります


2つめの三角形を1つ

今度は長さ150の三角形を作ります・。
「1秒待つ」は書いている様子を見たいのでつけてあります。
後で外します。
1、150の三角形というブロック(定義)を作ってっください。
コピーペーストを上手に使って書クト簡単です。→コピーペーストの仕方
次に矢印のように、300の三角形から150の三角形を1回呼び出します




まず150の三角形を書いてから、300の三角形を書きます。

2つめ150の三角形を3つ

3カ所、「150の三角形を入れれば良いのです」

すると、ほらできた。


3つめの三角形

150の半分の三角形を書いてみましょう

ほらできた


もう一つ


300の三角形が150の三角形を呼びだし
  150の三角形が75の三角形を呼び出し
     75の三角形がもっと小さい三角形を呼び出します。


巻単(簡単)にしよう(その1)

なんだか面倒くさい
もっと簡単にしてみましょう
ここで松を入れたのは、どこかへ入れておかないと、速くて、書いているんだか分からないからです。
で、なにこれー、って言うのは下に説明します。



3本線を引くのだから、3回繰り返せば良いじゃない、ということで、
3回繰り返すの中に、線を一本引くのを入れます
すると上のように短くなります。
「1秒待つ」は外しましょう。

ほら、巻単になりました。
300が150を呼び出し、150が75を呼び出し・・・どんどん小さくなります


自分を呼び出そう

長さが違うだけでおなじようなブロック(定義)を呼び出すのは面倒(めんどう)
これも巻単位なります
自分で自分を呼び出せば良いのです
今度は、引数(ひきすう)のあるブロックを作ります
  →ブロックの作り方の中に引数付きブロックの作り方があります
「長さnの三角形」は、一辺の長さちう引数があります。
ブロックを呼び出すとき、一辺の長さの値(あたい)を渡すことが出来るのです。
渡すのは、現在の長さの半分の長さを(一辺の長さ÷2)と小さくして渡すのです
スクラッチでは、÷は「/」で表します。
そして、短くなったら終わるように、
「もし」をつけ加えて
もし一辺の長さが10より大きいときだけ三角形を書いて、
そうでないときは何もしない(線も引かないしブロックも呼び出さない)ようにします。

随分(ずいぶん)簡単(かんたん)になった


こうやって、自分が自分を呼び出すことを、再帰(さいき)といいます。
終わりの条件を入れておかないと、どんどん地位大三角形を改訂っておわりません。
何回やったら止めるという方法で止める方法もありますが、ここでは省略。

ここにあります

次へ進む