プログラミング初心者の子供に何を教えたらいいの?とお悩みの保護者のためのScratch(スクラッチ)の入門講座。Scratchで猫の動かし方はわかったけど・・・次にどんなことをしたらいいの?という疑問にお答えするシリーズです。
今回は「演算ブロック」の使い方についてお届けします。
1. 演算ブロックって何?
ゲーム作りやアプリ作りで欠かせないScratchの「計算」。Scratchの計算で絶対使うのが「演算ブロック」です。今回は演算ブロックの使い方についてご紹介します。
1-1. 演算ブロックってどこにある?
スクリプトタブの「演算」のところをクリックする表示されるのが、演算ブロックです。
1-2. 演算って何?計算と違うの?
さて、「演算」とはなんでしょうか?どうして「計算」と言わず「演算」というのでしょうか?
演算は、入力された「データ」になんらかの処理を加えて答えを得ることです。例えば、下図のブロックは計算は行いませんが、入力されたものに対して処理の結果(答え)を出す働きをします。
上の2つは、一見すると何も結果を出さないように見えますが「真」「偽」いずれかの答えを出しているのです。(「真」「偽」については次回「プログラミング初心者のためのScratch(スクラッチ)入門-「真」「偽」を返す演算ブロック」で解説します。)このように大小の比較や、文字列から文字を抜き出す操作は「計算」ではないので、「演算」というのです。「計算」は演算に含まれます。
また、プログラミングの世界ではこの「データを操作して、何かしらの結果(答え)を出す」ことを「返す」といいます。
2. 演算ブロックで計算してみよう
ここからは実際に演算ブロックを使って計算してみます。
2-1. 整数の四則演算をやってみよう
四則演算、つまり足し算・引き算・かけ算・割り算をやってみましょう。これは簡単ですね。演算ブロックをそのまま使うだけです。では、まずは足し算をやってみましょう。足し算のブロックを持ってきて、数字を入れて
Enterキーを押すと・・・
おや?入力した数字が消えてしまいました。
実は演算ブロックに数字を直接入れる場合、半角の数字しか入れることができません。全角数字は入力できませんので気をつけてください。
入力モードを半角にして、もう一度入力しなおしました。
ブロックをクリックすると、計算結果がその場で確認できます。クリックしてみましょう。
ちゃんと計算できました。続けてかけ算と引き算、割り切れる割り算もやってみましょう。
2-2. 桁大きな数字の計算をやってみよう
桁の大きな数字の計算はScratchはどこまで計算してくれるのでしょうか?実験してみたいと思います。
まずは、かけ算で大きな桁の数値を計算してみます。
答えが13桁の計算はどうでしょうか?
問題なく計算できました。では、一気に桁を増やしてみます。
答えが改行されていますが、計算はあっていますね。ではもう一桁増やしてみましょう。
あれ?「e」という文字がでてきました。
では、次にかける数値をもっとバラバラな数にしてみます。すると、やはりeが出てきましたが今度は「●×10の▲乗」の●の部分が小数になりました。
実は「●e+▲」というのは、「●×10^▲」(●かける10の▲乗)という意味です。
コンピューターでは桁数が大きくなると指数表記になります。エクセルなどでeが出てくることがあるのを見た人もいるかもしれませんね。
これは「IEEE754」という規格で定められたものだそうです。
「コンピューターでは大きな数字は指数表記になる」ということだけ理解しておけばScratchを使う上では支障はあまりないと思います。
では、次に割り切れない割り算をやってみましょう。
1÷7の答えは無限に続く循環小数0.142857142857142857142857142857…となります。Scratchの演算ブロックで計算させてみましょう。
循環小数は、途中で切り捨てされるようです。
では、次に割り切れる割り算をやってみます。
こちらは指数表記になりました。先ほどの掛け算の時はeの後ろが+でしたが、今度は−になっています。
「●e-▲」というのは、「●×10^-▲」(●かける10のマイナス▲乗)という意味です。
「e」が出てきたら、桁数が大きい数なんだ!と覚えておきましょう。自分で詳しく調べて見たい方は「IEEE754」「倍精度浮動小数点数」というワードで検索してみてください。
2-3. かっこ付きの計算をやってみよう
次はカッコ付きの計算です。例えば
・( 2 × 3 ) + 4 = 10
・ 2 × ( 3 + 4 ) = 14
という計算です。Scratchの演算ブロックは数字が2個しか入らないので、演算ブロックの中に、もう一つの演算ブロックを入れます。
( 2 × 3 ) + 4 という計算では、()カッコでくくられている計算を一個の演算ブロックで表現するようにします。つまり「2×3」の掛け算ブロックを足し算ブロックの中に入れます。
ブロックをクリックすると・・・はい。正しく計算できましたね。
2 × ( 3 + 4 )の場合は、掛け算ブロックの中に足し算ブロックを入ればいいんですよ。
3. 変数で計算してみよう
つぎは数字を直接演算ブロックに入れるのではなく、変数を使う方法です。
3-1. 演算ブロックに変数を入れてみよう
演算ブロックの解説のためにいままで直接数字を入れてきましたが、プログラミングでは変数を計算させるために使うことが多いでしょう。ネコと店員さんの会話をプログラムで作ってみます。
このプログラムを動かすと、ネコが「りんごを何個買いますか?」と聞いてきます。
入力欄に「3」を入れて、チェックボタンを押します。
次に、店員さんはリンゴの個数×リンゴの値段の結果を答えるようなプログラムにしてあります。今回はりんご1個が150円ということにしました。
今回は「答え」を使いましたが、変数「りんご」を用意して次のように作ることも可能です。
3-2. 変数に数字じゃないものが入っていたらどうなる?
では、もし変数に数字じゃないものが入ったらどうなるでしょうか?「あいうえお」という文字を試しに入れてみます。
すると・・・店員さんは「0円です」と答えました。
どうやら、数値以外のものが変数に入ると計算結果は「0」になってしまうようです。
こうならないように、数値以外の文字が入るときは、店員さんが別のことを言うようにプログラムを作っておくといいですね。
4. その他のブロックや計算テクニックについて
四捨五入ブロックについては
「プログラミング初心者のためのScratch(スクラッチ)入門-四捨五入テクニック」で
累乗については
「プログラミング初心者のためのScratch(スクラッチ)入門-3つの累乗テクニック」で
でご紹介していますのでそちらも合わせてご覧ください。
5. 演算ブロックで計算しよう まとめ
この記事では演算ブロックの使い方について説明しました。
・演算ブロックは、何かしらの値(答え)を返すブロック
・かっこ付きの計算は、かっこを1つのブロックで表現する。
・変数を使って計算することもできる。
Scratchでは、演算ブロックはよく使います。基本的には計算式の通りに使うだけなので簡単です。ゲームの得点計算などで使ってみてくださいね。
次回は「真」「偽」を返すブロックについて解説します。