【小説タイトル】
消費税（８％）が３０円のときの販売金額を求めよ。（プログラ
ミング的思考が身につけば、プログラムは組める）
【Ｎコード】
Ｎ１５１５ＧＤ
【作者名】
樋口諭吉
【あらすじ】
とあるエッセイでスクラッチ言語が叩かれてたけどさ？
別にＣやＪａｖａやアセンブリ言語だけがプログラミング言語っ
てわけじゃないんだよ？
今回は『プログラミング的思考が身につけば、プログラムは組め

る』ってことを例をあげて説明しよう。
『１３０円の缶コーヒーの消費税は約３０円（８％）』が大間違
いであるという事実を突きつけます！

とあるエッセイでスクラッチ言語が叩かれてたけどさ？
別にＣやＪａｖａやアセンブリ言語だけがプログラミング言語っ
てわけじゃないんだよ？
今回は『プログラミング的思考が身につけば、プログラムは組め
る』ってことを例をあげて説明しよう。
『消費税（８％）が３０円のときの販売金額を求めよ』という問題
があったとします。

５００円までの間、販売金額の８％の消

例えばね。例えば、プログラミング的思考を持っている人は、こ

円から

んなふうに考えます。
『販売金額が１

費税額を計算し、もし消費税額が３０円なら販売金額を画面に表示
する』
僕はプログラマじゃないし独学なので、あんまりスマートな例に
なってなかったらごめんね。
最初の『販売金額が１円から５００円までの間』っていうのは、
ってことです。

５００円の８％は４０円だからです。つまりね。消費税が３０円な
らば、販売金額が５００円未満なのは明白でしょ？

多めにとって『１円〜１︐０００円の間』でもいいよ？

スタートが１円なのは、１円未満の販売金額が無いためです。
別に

実際、この例では『１円から１００︐０００円の間』だろうと、計
算速度に大差はないでしょう。
もっと狭く『４００円から５００円の間』でやってもいいし、そ

こらへんはご自由にどうぞ。
言語はスクラッチでもいいんだけど、僕はｊｕｌｉａを選んだ。
理由はｆｌｏｏｒ（小数点以下を切り捨てる関数）が最初から用
意されているのと、ワンラインで書けそう（説明が簡単そう）だと
思ったため。
非常に簡単な計算なので、他の言語でも内容はそう大して変わら
ない。ちなみにスクラッチだと消費税の切り捨て部分（の説明）が
ちょっとだけめんどい。
じゃあ初めましょうか。
まず、変数を決めないといけないね。
販売金額をｘ、消費税額をｙとしようか？

円から

５００円までの間、販売金額の８％の消

それでは、プログラミング的思考をプログラムに変えてみよう。
『販売金額が１

＝＝

ｘ

ｆ

＝

３０

＝

費税額を計算し、もし消費税額が３０円なら販売金額を画面に表示
する』

５００

販売金額（ｘ）が１円から５００円までの間−＞ｆｏｒ
１

ｙ

販売金額（ｘ）の８％の消費税額（ｙ）を計算し−＞ｙ
ｌｏｏｒ（８ｘ／１０８）；
もし消費税額（ｙ）が３０円なら−＞ｉｆ

ｅｎｄ

販売金額（ｘ）を画面に表示する−＞ｐｒｉｎｔｌｎ（ｘ）
ｎｄ
以下解説。

ｅ

消費税額は切り捨てだから、ｆｌｏｏｒで小数点以下を切り捨て
る。
消費税（８％）の計算式は、８をかけて１０８で割る（国税庁に
よる）。
ｅｎｄは句点に相当する。ｉｆが終わりましたよ。ｆｏｒが終わ
りましたよ。って合図。

ｅｎ

（ｙ＝ｆｌｏｏｒ（８

ｐｒｉｎｔｌｎ（ｘ）

５００

セミコロンは読点みたいなもん。

ｘ＝１
ｙ＝＝３０

ｆｏｒ

続けるとこうなる。
ｊｕｌｉａ＞
ｅｎｄ

ｘ／１０８））；ｉｆ
ｄ
結果が、
４０５
４０６
・
・
・
４１７
４１８
とでればＯＫ。簡単でしょ？

つまり、『消費税（８％）が３０円のときの販売金額を求めよ』。

これの答えは４０５円以上４１８円以下ってわけ。
プログラミング的思考が身につけば、
『例えば、１３０円の缶コーヒーの消費税は、約３０円（８％）で
す。というのは自販機だと１３０円にしないといけないからです』
なんていうような、恥ずかすぃいいいい間違いは犯さずに済む。

ｅｎｄ

ｅｎｄ

（ｙ＝８ｘ／１０８）；

ちなみにｆｌｏｏｒ（３０．〜以下浮動小数点）は、３０以上３

５００

ｐｒｉｎｔｌｎ（ｘ）

ｘ＝１

１未満と言い換えることができるので、
ｆｏｒ

３０＜＝ｙ＜３１

ｊｕｌｉａ＞
ｉｆ
こうも書ける。こっちならスクラッチへの移植が容易かな？


消費税（8％）が３０円のときの販売金額を求めよ。（プログラミング的思考が身につけば、プログラムは組める）