【標準編】10-a まとあてゲーム

Q1. ☆問題(もんだい)☆

ミッション2で、変数「点数」を作ったよね。そこで、プログラムのさいしょにを入れたのはなぜだろう。もっともふさわしいものを次からひとつ選んでね。

  • ○ このブロックを入れないと、プログラムが動かないから。
  • ○ このブロックを入れないと、プログラムを実行したときに、0点からスタートしないおそれがあるから。
  • ○ このブロックを入れないと、点数が5点ずつ増えてしまうから。
  • ○ このブロックを入れなくてもよいが、入れておくと、かっこういいから。
  • ○ このブロックを入れなくてもよいが、入れておくと、プログラムがあやまって止まってしまうことがなくなるから。

正解

  • このブロックを入れないと、プログラムが動かないから。
  • このブロックを入れないと、プログラムを実行したときに、0点からスタートしないおそれがあるから。
  • このブロックを入れないと、点数が5点ずつ増えてしまうから。
  • このブロックを入れなくてもよいが、入れておくと、かっこういいから。
  • このブロックを入れなくてもよいが、入れておくと、プログラムがあやまって止まってしまうことがなくなるから。

こう考えよう(かんがえよう)

多くの場合、このブロックを入れても入れなくても正しく動くよ。でも、さいしょに「点数」を0にしておかないと、たとえばアプリのバグや、前に実行したときの値が残っていることで、0点からスタートしないことも考えられる。だから、念のためにこのブロックをいれているんだ。

この考え方は、SPIKEプライムアプリや、スクラッチ以外でも使えるよ。ぜひ、知っておいてね。

Q2. ☆問題(もんだい)☆

次のプログラムで、「他のスタックの停止」を入れる場合と入れない場合で、結果にちがいはでるかな。次の中から、もっともふさわしいものを選んでね。自分で試してみてもいいよ。
  • ○ 同じ結果になる。入れても入れなくても、何も表示されない。
  • ○ 同じ結果になる。入れても入れなくても、「かず」と表示される。
  • ○ ちがう結果になる。入れないときのほうが大きな数が表示される。
  • ○ ちがう結果になる。入れないときのほうが小さな数が表示される。
  • ○ ちがう結果になる。入れてしまうと数が表示されなくなる。

正解

  • 同じ結果になる。入れても入れなくても、何も表示されない。
  • 同じ結果になる。入れても入れなくても、「かず」と表示される。
  • ちがう結果になる。入れないときのほうが大きな数が表示される。
  • ちがう結果になる。入れないときのほうが小さな数が表示される。
  • ちがう結果になる。入れてしまうと数が表示されなくなる。

こう考えよう(かんがえよう)

「他のスタックの停止」を入れると、そこで「メッセージ1」の内容が実行されなくなるので、「数」の数字は増えなくなってしまうんだ。ところが、「他のスタックの停止」を入れないと、1秒待っている間に、「数」の数字がどんどん増えていく。だから、入れた場合にくらべて、大きな数が表示されるんだ。だから答えは「入れないときのほうが大きな数が表示される」だね。

Q3. ☆問題(もんだい)☆

Q2で作ったプログラムを改造して、次のようにしたよ。このプログラムを実行するとどうなるかな。次の中からもっともふさわしいものを選んでね。
  • ○ プログラムの中ではいろいろな計算がされているが、ハブには何も表示されないため、何も起きていないように感じる。
  • ○ プログラムの中ではいろいろな計算がされており、実行してから1秒くらいしてから、ハブに数字が表示される。いくつの数字が表示されるかは、プログラムを実行してみないとわからない。
  • ○ プログラムは実行されるが、すぐに停止してしまうので、何もプログラムを書いていないのとおなじで、本当に何も起きていない。

正解

  • プログラムの中ではいろいろな計算がされているが、ハブには何も表示されないため、何も起きていないように感じる。
  • プログラムの中ではいろいろな計算がされており、実行してから1秒くらいしてから、ハブに数字が表示される。いくつの数字が表示されるかは、プログラムを実行してみないとわからない。
  • プログラムは実行されるが、すぐに停止してしまうので、何もプログラムを書いていないのとおなじで、本当に何も起きていない。

こう考えよう(かんがえよう)

ちょっとむずかしかったかな。
試してみると、ハブには何も表示されないから、「何も起きていない」と思う人もいるかもしれない。
でも、プログラムが止まるのは、「メッセージ2」が送られたときだよね。
それまでの間、「数」の数字はどんどん大きくなっている。だから、「すぐに停止してしまう」はまちがいだし、「何もプログラムを書いていないのと同じ」はちょっといいすぎだよ。
もっともふさわしいのは、「何も起きていないように感じる」だね。