定数とは、プログラム中に変化することのない値が入ったもので、その定数の名前をプログラムに組み込むことにより、後からその定数値が変更になった場合、プログラム自体に影響なく修正することができます。
しかし、Scratchには定数ブロックはなく、変数ブロックで代用できないか試みたいと思います。また、プログラム中に数値をダイレクトに記述することを「ハードコーディング」といい、変更があった際に効率的に変更することができない、悪い例のコーディングとしてよく挙げられます。(一般的には禁止されている)
例えば「消費税計算」で、8%から10%に変更になったとします。プログラム内で消費税率がすべてハードコーディングされていた場合、記述箇所を探し出し、すべて修正する必要があります。
例)zei = goukei * 0.08
DX、人工知能、VR…どんな開発でも「納期」「予算」「品質」には、“制限”があります。これが、プログラムを『効率的』に作る必要がある理由ということになります。
※今回は、消費税率のようなハードコーディング箇所を定数化によって回避する修正を施してみます。
また、この定数化により、プログラム内に記述される数値の「全角問題」を解消することにも寄与します。
■修正前 |
■修正後 |
定義:定数化で、変数に数値を入力して、ここで一括管理しておきます。数字が半角なのか全角なのかは、ここだけを確認すればいいということになります。 今後、増やす場合でもこの定義に追加していき、数字を入力する際に「1度」だけ半角であることに注意しながら慎重に入力すれば、以後、もし上手くプログラムが動作しなかった場合でも、もしかしたら数字に「全角」の箇所があるのでは?・・・ということをもう意識する必要がありません。 明らかにそれ以外のどこかに問題がある。というエラーの「切り分け」にも役立ちます。 |
▼続きはこちら
前掲のレジ精算のプログラムに対して、条件を追加したフローチャートを完成させましょう。 【課題】あなたは、スーパーで買い物をする。それをセルフではなく、 レジ係のいるレジで精算する。 【条件】ただし、割引対象の商品も […]
▼続きはこちら 前掲のレジ精算のプログラムに対して、条件を追加したフローチャートを完成させましょう。 【課題】あなたは、スーパーで買い物をする。それをセルフではなく、 レジ係のいるレジで精算する。 【条件】ただし、 […]
課題:あなたは各駅停車の電車に乗って、目的地A駅で降りる。 【指導1】前提条件として、『あなたと電車の動作をそれぞれ分けて描くこと。電車に乗ったところから スタートする。ただし、乗り換えはなく、A駅は終点ではない […]
課題:あなたは路線バスに乗って、目的地A停留所で降りる。 【指導1】前提条件として『あなたと路線バスの動作をそれぞれに分けて描くこと。路線バスに乗るところからスタートする。ただし、運賃は乗車時に支払い、乗り換えはなく、A […]
救命措置の流れ(AEDの使用と心肺蘇生) 次は、アンプラグド・プログラミングの題材にふさわしい「救命措置の流れ(AEDの使用と心肺蘇生)」です。順番が違った、やるべきことが抜けた、判断を間違えた場合、救える命も救えなくな […]
課題:あなたは横断歩道を“安全に”渡ります。 これまで、アンプラグド・プログラミングの課題の問題点を解消すべく、レーンやステップを組み合わせたフローチャートの描き方を述べてきましたが、次は、交差点の横断歩道を“安全”に渡 […]