2021/08/19

20. 円錐の半分?

17-19 で三角形、四角形の面積を半分にする問題を解いた。

今回は円錐を半分にする実験をしてみよう。

まず、円錐を作るための図形をスクラッチで描いてみた。



これを実行すると、円錐を作るための型紙が表示される。
これを印刷し、内側から1から10まで線に番号をつける。
赤線で切り、右下ののりしろにのりをつけて、線が繋がるようにはり合わせる。


体積を測る方法として、水を入れその重さで体積を測る。



10の目盛りまでの体積の半分の体積になるのはどの目盛りだろうか。



2021/08/14

19. 正方形の中に面積が半分の正方形を折る (2)

 前回とは別の方法で、内側の正方形の面積が外側の正方形の面積の半分になるように、
折り紙で面積が半分の正方形を折ってみよう。

1. 赤い線で示した対角線の折り目をつける。

2. もう一つの赤い線で示した対角線の折り目をつける。

3. 左下の頂点から左上の頂点への辺を右上がりの対角線に合わせて折り、緑の線で示した折り目をつける。




ここで、元の図形が正方形であったことから、上図の a は全て45° である。
 故に、錯角が等しいことにより、正方形の上辺と水平になった赤い線は平行である。

4. 水平になった赤い線で示される折り目に沿って、黒の線で示した折り目をつける。


5. 元の正方形に戻す。

6. 正方形の右側の縦線を底辺とし、正方形の中点を頂点とする赤線で囲まれた三角形が直角二等辺三角形であることを確認する。


7. 黒線で囲われた三角形は、右下の頂点の角度が 45° であり、上の辺が正方形の上辺と平行であることより、右上の頂点の角度は直角である。したがって、黒線で囲われた三角形は、直角二等辺三角形である。


赤線と黒線の交点から正方形の下辺に垂線を下ろす。


 この赤い線で囲まれた三角形も直角二等辺三角形である。この三角形と黒い線で囲まれた直角二等辺三角形と縦の辺の長さが同じであることから合同である。
 赤い線で囲まれた三角形の斜辺の長さは、最初に緑色の線で示した折線を作るときの作り方から、正方形の辺の長さに等しい。したがって、黒い線で囲まれた直角二等辺三角形の斜辺の長さも正方形の辺の長さに等しい。
 このことから、黒い線で囲まれた直角二等辺三角形は、6. で確認した赤線で囲まれた直角三角形と合同である。
 すなわち、これらの直角二等辺三角形の面積は等しく、元の正方形の4分の1の面積であることを確認した。

8. 上記と同様に、右上の頂点から左上の頂点への辺を左下がりの対角線に合わせて折り、緑の線で示した折り目をつける。垂直になった赤い線で示される折り目に沿って、黒の線で示した折り目をつける。



この黒の線で囲われた四角形は正方形であり、外側の正方形の面積の半分であることは、良いだろうか。

上記の図を表示するスクラッチのプログラム

2021/08/13

18. 正方形の中に面積が半分の正方形を折る

 前回、内側の正方形の面積が、外側の正方形の面積の半分である場合は、どのように見えるかを確かめてみた。


答えは C である。A か B だと思ったのではないだろうか。

正方形の面積を 1/2 にするには、一辺の長さを 1/(√2) ≃ 0.707106781186548 にすればよい。物差しで測ればよいが、見た目だけでは、面積が 1/2 であることに引きずられ、一辺の長さが 1/(√2) より小さい図形を選んでしまったのではないか。

そこで、今回は物差しで測ることなしに、折り紙で半分の面積の正方形を折ってみよう。

簡単な方法


まず、縦の赤い線で示した折り目をつける。横にも同じ。
次に、赤い線で示した折り目の交点に正方形の各頂点を合わせるように折り、緑の線で示した折り目をつける。
この緑の線で示した折り目で囲われた四角形は正方形であり、外側の正方形の面積の半分であることは、良いだろうか。
この緑の線で示した折り目で囲われた正方形をハサミで切り、元の大きさの折り紙に重ねると、外側の正方形の面積の半分の正方形がどのように見えるかを確認できる。
C のようになるか、確かめてみよう。




2021/08/10

17. 三角形のケーキを半分に切るにはどこで切る?

三角形のケーキを半分に切るにはどこで切ったらよいでしょうか。
下の図の A から D のどれが、上部の三角形の面積と下部の台形の面積が等しくなるでしょうか。


スクラッチのプロジェクト halftriangleQ としてアップしてありますので
を開いて答え合わせをしてみましょう。

以下は三角形を描画するスクラッチの関数。
頂点の座標を (x,y)、高さを h、底辺の長さを w とする三角形を描く関数です。
 


では次に、建ぺい率50%のときに正方形の土地の真ん中に最大の正方形の建物を作るとします。下の図の A から D のどれが、内側の正方形の面積が外側の正方形の面積の半分に等しいでしょうか。


スクラッチのプロジェクト halfsquareQ としてアップしてありますので
を開いて答え合わせをしてみましょう。

以下は中心の座標を (cx, cy)、辺の長さを s とする正方形を描画する関数。


2021/05/15

16. 分数の掛け算の出題プログラムをスクラッチで

 分数の掛け算の出題プログラムをスクラッチで書いてみよう。

1. 表示画面とスプライトは以下のようにした。



2. プログラムの入り口は以下の通り。


 5問出題し、正答数を変数 p で数え、タイマーで経過時間を計り、表示する。

3. 掛け算の最初の分数 A=an/ad を乱数を用いて作る。
 n は分子 (numerator) を、d は分母 (denominator) を表す。


 まず 分母の数 ad を 2 から 20 までの乱数にし、
 分子 an は 1 から 30 までの乱数とする。
 このままでは、an/ad は約分できるかもしれないので、an と ad の最大公約数を求め、
 約分する。約分した結果、分母が 1 になってしまったら、やり直す。

4. 掛け算の2番目の分数 B=bn/bd を分数 A と同様に作る。


5. 掛け算の結果 AxB=(anxbn)/(adxbd)=cn/cd とし、これを約分し C=cn/cd とする。


6. 次に、解答 X=xn/xd を入力する。


7.  解答 X が掛け算の結果 C と等しいか判定する。合っているときは変数 p を1増やし、
 正答数を数える。



8. 上記 2. の繰り返しの部分に、3. から 8. までのコードをいれる。 

9. 最大公約数を求めるコードは前々回 「14. 分数の約分をスクラッチで」に示した
 以下のコードを用いる。


10. この分数の掛け算の練習問題を生成するプログラム multiplication_of_fraction を 

2021/05/09

15. スクラッチ「クローンりんご」で掛け算

九九の背後にある掛け算の概念をリンゴを数えることで理解しよう。


スプライト Apple のコードの前半は、次の通り。




1. 変数 [かず] はクローンのリンゴを作るときに使う作業用の変数。 
 初期値を0に設定。

2. 変数 [n] は変数の作成時に「このスプライトのみ」を指定して作成した変数。
 スプライト Apple のみ使うことのできる変数であり、
 スプライト Apple のクローンそれぞれが別々に値を持つ変数。
 まだクローンを作成していないが、初期値 0 に設定。

3. 変数 [A] と変数 [B] のそれぞれに 1 から 9 までの数をランダムに設定。

4. A x B の値を変数 [こすう] に設定。これがこの掛け算の答えになる。

5. A x B の値の個数のクローンは
  (自分自身) のクローンを作る
 を [こすう] 回繰り返すことによって作成する。

6. 「(自分自身) のクローンを作る」によって、次のコードが実行される。


7. 変数 [ばんごう] は変数の作成時に「このスプライトのみ」を指定して作成した変数。
 変数 [かず] は、クローンが作られるたびに1ずつふえる。
 クローンが作られたときの [かず] を、そのクローンの変数 [ばんごう] に記憶する。
 このようにして、クローンリンゴごとに番号が付けられる。
 左上が1番目のクローン、下方向に A 番目のクローンまで縦に並べ、
 その右側に A+1 番目から Ax2 番目までのクローンを縦に並べる。
 最後に Ax(B-1)+1 番目から AxB 番目までのクローンを縦に並べる。
 このように並べるために、 [ばんごう] によって、
 クローンリンゴを表示する位置を計算し、x 座標と y 座標を設定する。

8. クローンリンゴをクリックすると、 [ばんごう] を表示する。


9. 「(りんごはぜんぶでいくつある?) と聞いて待つ」を実行すると、
 数を入力する枠が表示される。キーボードから数を入力する。


 入力した値が (答え) に入る。その値と (こすう) が一致していれば正解。
 正解のときは ok! というメッセージを猫に送る。
 間違っているときは ng!  というメッセージを猫に送る。

10. 猫のスプライトのコードは以下の通り。


 正解のときは (せいかい) と2秒表示し、リンゴに せいれつ というメッセージを送る。
 違っているときはクローンリンゴをクリックして数えるよう促す表示する。
 猫をクリックすると答えが表示され、リンゴに せいれつ というメッセージを送る。

11. リンゴスプライトが せいれつ というメッセージを受け取ったときのコードは次の通り。


 横10個ずつに並び替えているので数えやすくなる。

このプログラムは AppleMultiplication として
にアップした。

2021/05/01

14. 分数の約分をスクラッチで

分数は、分子と分母の最大公約数で約分することによって、既約分数に表すことができる。
最大公約数を求める方法としてユークリッドの互除法がある。
これをスクラッチで再帰呼び出しを用いてプログラムしてみよう。

1 ユークリッドの互除法

 自然数 a と b の最大公約数を d とすると、
  a = u d,  b = v d 
 と表され、u と v の公約数は 1 である。

 a を b で割ったときの商を q、余りを r (0 ≦ r < b) とする。
  a = q b + r

 r = 0 のとき、a = q b であるので、
 a と b の最大公約数は b である。
 つまり、b は a と b の公約数であり、
 b より大きい公約数は存在しない。

 r ≠ 0 のとき、a = q b + r を変形すると
 余り r は最大公約数 d の倍数になる。
  a = u d = q v d + r
  r = u d - q v d = (u - q v) d

 したがって、d は b と r の公約数である。 

 以下、d が b と r の最大公約数であることの証明。
  もし、d より大きい b と r の公約数 d' があったとする。
   b = s d', r = t d', d' > d
  したがって、
   a = q b + r = q s d' + t d' = (q s + v) d' 
  と表され、d' は a の b 公約数になる。
  d は a と b の最大公約数であるので、
  d' が d より大きい公約数であることは矛盾。
  したがって、d は b と r の最大公約数である。

 以上から、
  a を b で割り、a = q b + r とし、
  r = 0 のとき、b が a と b の最大公約数、  
  r ≠ 0 のとき、b と r の最大公約数が a と b の最大公約数
 であることがわかった。

 例を見てみよう。
  a=15, b=10 とする。
  15 と 10 の最大公約数は 15=1x10+5 より
  10 と 5 の最大公約数 である。
  10 と 5 の最大公約数は 10=2x5+0 より 5 である。
  したがって、15 と 10 の最大公約数は 5 である。

 ユークリッドの互除法は、余りが 0 になるまで、
 以下のように割り算を繰り返す方法。
  a₁ = q₁ a₂ + a₃
  a₂ = q₂ a₃ + a₄
  ...

2. ユークリッドの互除法で最大公約数を求めるスクラッチのプログラム


 変数 a と変数 b に値を入れ、この定義 gcd を呼び出すと、
 変数 d に a と b の最大公約数が得られる。

 最大公約数を求める定義 gcd の中で、自分自身を呼び出している。
 これを再帰呼び出しという。

3. このユークリッドの互除法を用いて分数の約分の練習問題を生成するプログラム
 reduction を https://scratch.mit.edu/projects/491417958/ 置いてある。

20. 円錐の半分?

17-19 で三角形、四角形の面積を半分にする問題を解いた。 今回は円錐を半分にする実験をしてみよう。 まず、円錐を作るための図形をスクラッチで描いてみた。 プログラムはここ。 https://scratch.mit.edu/projects/561804896 これを実行すると...