「適性を見る検査Ⅲ」の文章題をプログラムで再現
さて、まずはH27年度の洛北高校附属中学校「適性を見る検査Ⅲ」の問題をプログラミングで再現してみました。
スタートは一の位からなので、まずはこの部分のプログラムを考えてみましょう。
一の位は、「4」にはならず「0」に戻る。その代わり、十の位が「1」増える。いわゆる4進数。
なかなか難しい問題文ですが、一の位をプログラムで表すとこうなりました。4をカウントした瞬間「十の位」という信号を送ります。これは、問題文でいう「繰り上げ」を意味します。
次、十の位。
「十の位」という信号を受け取れば、「1」ずつ変える。十の位は「5」にはならず「0」に戻る。戻った瞬間、「百の位」という信号を送る。
これも繰り上げに信号を使っています。5進数は「5になったら0にする」という処理。
次は百の位。
「百の位」という信号を受け取れば、「1」ずつ変える。百の位は「6」にはならず「0」に戻る。
ちなみに、スクラッチでよく使うタイマーの作りかた。
完成作品です。スクラッチの動作はこちらから。
ネコがしゃべる動きはまた後で。
(※iPhoneなどのスマホからはFlashが動作しません。なるべくPCから閲覧ください。)
スクラッチで問1を試してみよう
まず第1問。
これがなかなかの難問なんですね。
ひたすら数字を書き込んで正解を探るのもいいですが、これではなかなか非効率。
ここはまず一の位に着目しましょう。
【一の位】
4秒のときに「0」になる。で、8秒のときにまた「0」になる。
4の倍数のときに「0」になり、十の位へ繰り上がる。
【十の位】
要するに、一の位の4個分(4秒分)。
【百の位】
十の位の5個分(20秒分)。
いきなりスクラッチで答えを出してみますが、「111」のとき、タイマーは25秒。
正解は25秒です。
「111」ということは…
(20秒×1)+(4秒×1)+(1秒×1)=25秒
プログラムで実際の動きを見てみると、わかりやすいですね!
繰り上がりの考え方は、プログラムでは「信号を出す」ロジックで実現します。
こんな風に、データを受け渡しして動いているんですねぇ。
そうそう、もう一つ問題がありました。
「000」になるのは何秒後かという問題。
先にスクラッチで答えを出してみると…。
120秒後ということになりました。
実際に画面で動きを見てみるとわかりやすいんですが、式に書き出すとこういうことでしょうか。
20秒×6=120秒
百の位は「6」にならずに「0」に戻る。このタイミングが「000」になるときです。
百の位の「1」は20秒分ですね。
0,1,2,3,4,5という6つの数字で切りかわりますので、20秒が6回切り変わった瞬間。
つまり正解は120秒ということになります。
プログラムから秒数を導き出す
話は変わりますが、ネコがしゃべっている数字。
これは一見、タイマーと同じ数字になってますが、プログラムの中身は全く違うんですよね。
(20秒×百の位)+(4秒×十の位)+(一の位)=ネコのせりふ
ネコのせりふは、プログラムから逆に秒数をはじき出した数だったのです。
次回、問2をやっていきましょう。