ゼミノート

NOTES

H27年度 洛北附中の入試問題をプログラミングで解いてみよう(1)

「適性を見る検査Ⅲ」の文章題をプログラムで再現

さて、まずは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をやっていきましょう。