プログラミング入門

プログラミング初心者のためのScratch(スクラッチ)入門-四捨五入テクニック

プログラミング初心者の子供に何を教えたらいいの?とお悩みの保護者のためのScratch(スクラッチ)の入門講座。今回はScratchで知っておきたい四捨五入のテクニックについてお届けします。

1. 四捨五入ブロック

Scratchで計算を使う時、四捨五入をしたい時があります。Scratchには四捨五入のブロックがあるのですが、このブロックだけだと都合が悪い時も。Scratchの四捨五入ブロックの動きを解説します。

 

1-1. 四捨五入って何?

四捨五入は小学校4年生の算数で習います。四捨五入は、概数を求めるときにある位の0〜4までの数値を切り捨て、5-9の時は切り上げるというルールのことです。

算数の四捨五入問題ではつぎのような問題が出されます。

次の数字の百の位を四捨五入して、千の位までの概数にしましょう。
①2588 ②3510

どの位を四捨五入するか指定されるのが一般的です。

 

1-2. Scratchの四捨五入ブロックはどう動く?

Scrathには四捨五入ブロックが用意されています。

しかし、どの位を四捨五入するか指定はできないようです。どの位が四捨五入されるのでしょうか?いろいろな値を入れて実験してみましょう。ブロックをクリックすると計算結果が吹き出しに表示されるので、計算結果は吹き出しの中を確認したいと思います。

小数点以下が7桁ある数値は整数になりました。

小数点以下を1桁にしても結果は変わりません。

1桁の整数はそのままですね。

では2桁の整数は・・・そのままです。

3桁もそのまま。

どうやら、四捨五入ブロックは小数点第一位の位を四捨五入するだけのブロックだということがわかりました。

 

2. 切り上げブロック・切り下げブロック

四捨五入とともによく使われる切り上げと切り下げ。合わせてこちらのブロックの動きも確認しましょう。

2-1. 切り上げ・切り下げって何?

小学校では四捨五入と一緒に学ぶ考え方です。

たとえば、「234」という数値を1の位で切り上げると「240」になります。
また、「234」という数値を1の位で切り下げると「230」になります。

 

2-2. Scratchの切り上げ・切り下げブロックはどう動く?

Scratchには切り下げ・切り上げブロックが用意されています。「平方根」と書かれた部分の▼を押すと「切り上げ」「切り下げ」が出てきます。

ではこのブロックがどのように動くかためしてみましょう。

まずは「1.5244333」の切り上げです。小数点以下が7桁ある数値は整数になりました。

小数点以下を1桁にしても結果は変わりません。

「1.4」でも結果は同じです。

1桁の整数は何も変化がありません。

では2桁の整数も・・・変化がありません。

どうやら、切り上げブロックも小数点第一位の位を切り上げるだけのブロックだということがわかりました。切り下げブロックも、切り下げる位は小数点第一位です。

3. 指定した桁で四捨五入・切り上げ・切り下げする方法

小数点第一位以下を四捨五入・切り上げ・切り下げしたいときは便利なこれらのブロックですが、好きな桁で四捨五入・切り上げ・切り下げしたいときはどうしたらいいでしょうか?

好きな桁で四捨五入・切り上げ・切り下げする方法を考えてみました。
 

2-1. 指定した桁で四捨五入する

四捨五入ブロックは小数点以下を四捨五入するのでまず、1の位以下が小数点になるようにします。

10で割って、1の位が小数点第一位になるようにしました。

四捨五入して整数にします。

また10をかけて、桁を戻します。

では、この流れをを定義ブロックで作ってみましょう。

位のところには四捨五入する位を「1」「10」「100」という形式で入力してもらいます。

▼定義ブロック使用例

▼上のプログラムの実行結果

位のところに3や40、700など適当な数値を入れてしまうと答えがおかしくなるので、答えがおかしくなる値が入れられた場合の処理も付け加えてみます。

▼位のところに別の数字が入ったらエラーを返す

全てのケースを網羅できていませんが、一例ということでご容赦ください。

 

2-2. 指定した桁で切り上げ・切り下げする

では、指定した桁で切り上げ・切り下げをつかってみましょう。上の四捨五入の考え方を応用すればよさそうです。
先ほどの四捨五入ブロック参考に、「切り上げ」する定義ブロックを作りました。

▼定義ブロック使用例

▼上のプログラムの実行結果

 

3. Scratchの四捨五入テクニックまとめ

概数にするブロック=「四捨五入」「切り上げ」「切り下げ」は小数点以下第一位を処理します。
指定した位で概数を求めるには定義ブロックを用意しておきましょう。

「四捨五入」「切り上げ」「切り下げ」どうするんだっけ?というときには、このページを参考に定義ブロックを作ってみてくださいね。

伴野悠佳 / YUKA TOMONO
この記事の著者伴野悠佳 / YUKA TOMONO
キッズプログラミング講師。東京理科大学大学院卒。元SE。小学生の頃から教育書を読んでいた教育ヲタク。大学では、電池の素材の性質について実験とコンピューターシミュレーションを比較する研究を行っていたことがきっかけでSEになる。出産&育休後、子ども向けプログラミング教室講師(現職)に。