Q1. ☆問題(もんだい)☆
ミッション2で、変数「点数」を作ったよね。そこで、プログラムのさいしょにを入れたのはなぜだろう。もっともふさわしいものを次からひとつ選んでね。
- ○ このブロックを入れないと、プログラムが動かないから。
- ○ このブロックを入れないと、プログラムを実行したときに、0点からスタートしないおそれがあるから。
- ○ このブロックを入れないと、点数が5点ずつ増えてしまうから。
- ○ このブロックを入れなくてもよいが、入れておくと、かっこういいから。
- ○ このブロックを入れなくてもよいが、入れておくと、プログラムがあやまって止まってしまうことがなくなるから。
正解
- このブロックを入れないと、プログラムが動かないから。
- このブロックを入れないと、プログラムを実行したときに、0点からスタートしないおそれがあるから。
- このブロックを入れないと、点数が5点ずつ増えてしまうから。
- このブロックを入れなくてもよいが、入れておくと、かっこういいから。
- このブロックを入れなくてもよいが、入れておくと、プログラムがあやまって止まってしまうことがなくなるから。
こう考えよう(かんがえよう)
多くの場合、このブロックを入れても入れなくても正しく動くよ。でも、さいしょに「点数」を0にしておかないと、たとえばアプリのバグや、前に実行したときの値が残っていることで、0点からスタートしないことも考えられる。だから、念のためにこのブロックをいれているんだ。
この考え方は、SPIKEプライムアプリや、スクラッチ以外でも使えるよ。ぜひ、知っておいてね。
Q2. ☆問題(もんだい)☆
次のプログラムで、「他のスタックの停止」を入れる場合と入れない場合で、結果にちがいはでるかな。次の中から、もっともふさわしいものを選んでね。自分で試してみてもいいよ。
- ○ 同じ結果になる。入れても入れなくても、何も表示されない。
- ○ 同じ結果になる。入れても入れなくても、「かず」と表示される。
- ○ ちがう結果になる。入れないときのほうが大きな数が表示される。
- ○ ちがう結果になる。入れないときのほうが小さな数が表示される。
- ○ ちがう結果になる。入れてしまうと数が表示されなくなる。
正解
- 同じ結果になる。入れても入れなくても、何も表示されない。
- 同じ結果になる。入れても入れなくても、「かず」と表示される。
- ちがう結果になる。入れないときのほうが大きな数が表示される。
- ちがう結果になる。入れないときのほうが小さな数が表示される。
- ちがう結果になる。入れてしまうと数が表示されなくなる。
こう考えよう(かんがえよう)
「他のスタックの停止」を入れると、そこで「メッセージ1」の内容が実行されなくなるので、「数」の数字は増えなくなってしまうんだ。ところが、「他のスタックの停止」を入れないと、1秒待っている間に、「数」の数字がどんどん増えていく。だから、入れた場合にくらべて、大きな数が表示されるんだ。だから答えは「入れないときのほうが大きな数が表示される」だね。
Q3. ☆問題(もんだい)☆
Q2で作ったプログラムを改造して、次のようにしたよ。このプログラムを実行するとどうなるかな。次の中からもっともふさわしいものを選んでね。
- ○ プログラムの中ではいろいろな計算がされているが、ハブには何も表示されないため、何も起きていないように感じる。
- ○ プログラムの中ではいろいろな計算がされており、実行してから1秒くらいしてから、ハブに数字が表示される。いくつの数字が表示されるかは、プログラムを実行してみないとわからない。
- ○ プログラムは実行されるが、すぐに停止してしまうので、何もプログラムを書いていないのとおなじで、本当に何も起きていない。
正解
- プログラムの中ではいろいろな計算がされているが、ハブには何も表示されないため、何も起きていないように感じる。
- プログラムの中ではいろいろな計算がされており、実行してから1秒くらいしてから、ハブに数字が表示される。いくつの数字が表示されるかは、プログラムを実行してみないとわからない。
- プログラムは実行されるが、すぐに停止してしまうので、何もプログラムを書いていないのとおなじで、本当に何も起きていない。
こう考えよう(かんがえよう)
ちょっとむずかしかったかな。
試してみると、ハブには何も表示されないから、「何も起きていない」と思う人もいるかもしれない。
でも、プログラムが止まるのは、「メッセージ2」が送られたときだよね。
それまでの間、「数」の数字はどんどん大きくなっている。だから、「すぐに停止してしまう」はまちがいだし、「何もプログラムを書いていないのと同じ」はちょっといいすぎだよ。
もっともふさわしいのは、「何も起きていないように感じる」だね。