キッチンでプログラミング(7)
この連載では、プログラミングって料理を教えるのに似ているよねという考えに基づいてプログラミングの世界を楽しんでほしいと思っています。今回は「配列」を使ったプログラムとエラー処理について紹介します。
配列とエラー処理
ある日、ビットさんが言いました。「ちょっとむずかしいんだけど、配列っていう便利なデータ構造について勉強してみましょう。」
「今日は月曜日から金曜日まで曜日によって違うサラダを作る作り方を書いてみるわね。」
トッピング ドレッシング
月曜日 ツナ ごま
火曜日 チーズ レモン
水曜日 わかめ 青じそ
木曜日 コーン イタリアン
金曜日 ハム ゆず
※土曜日、日曜日はトッピングやドレッシングが決まっていないのでサラダを作らない(エラーにする)
~今までの作り方~
1.土曜日、日曜日ならエラー処理をして終わる。
2.レタス1枚を3cm角にちぎる。
3.ミニトマト2個のへたをとる。
4.レタスをお皿にしく。
5.ミニトマトをお皿のはしに並べてのせる。
6.月曜日ならレタスの上にツナをのせる。
火曜日ならレタスの上にチーズをのせる。
水曜日ならレタスの上にわかめをのせる。
木曜日ならレタスの上にコーンをのせる。
金曜日ならレタスの上にハムをのせる。
7.月曜日ならごまドレッシングをかける。
火曜日ならレモンドレッシングをかける。
水曜日なら青じそドレッシングをかける。
木曜日ならイタリアンドレッシングをかける。
金曜日ならゆずドレッシングをかける。
~~~~~
ビットさんが言いました。「最初にエラー処理について説明するわね。今回トッピングとドレッシングが決められているのは月曜日から金曜日までなので、最初に土曜日と日曜日をはぶいておかなかったら土曜日と日曜日はレタスとミニトマトだけでドレッシングもかかっていない中途半端なサラダができあがっちゃうわけ。そこで、1のところで曜日を調べて土曜日、日曜日だったらエラー処理をしているの。」
「作り方は簡単に書いてあるけど、よく見ると1、6、7の3か所で今日が何曜日かを調べているのがわかるかしら。」
「ほんとだ。」はじめ君が言いました。
ビットさんが言いました。「配列を使うと、この場合は最初に1回曜日を調べるだけですむのよ。」
~配列を使った作り方~
トッピング[0] ツナ ドレッシング[0] ごま
トッピング[1] チーズ ドレッシング[1] レモン
トッピング[2] わかめ ドレッシング[2] 青じそ
トッピング[3] コーン ドレッシング[3] イタリアン
トッピング[4] ハム ドレッシング[4] ゆず
1.月曜日なら曜日を0にする。
火曜日なら曜日を1にする。
水曜日なら曜日を2にする。
木曜日なら曜日を3にする。
金曜日なら曜日を4にする。
土曜日、日曜日ならエラー処理をして終わる。
2.レタス1枚を3cm角にちぎる。
3.ミニトマト2個のへたをとる。
4.レタスをお皿にしく。
5.ミニトマトをお皿のはしに並べてのせる。
6.レタスの上にトッピング[曜日]をのせる。
7.ドレッシング[曜日]をかける。
~~~~~
はじめ君が言いました。「なんだか作り方がすっきりしている。」
かなたちゃんも言いました。「初めて見る書き方だわ。」
ビットさんが言いました。「今までのデータは一戸建ての家みたいにひとつひとつ独立していたけど、配列はマンションみたいなものなのよ。トッピングっていう配列には0号室から4号室まであって、月曜日から金曜日までのトッピングが入っているの。同じように、ドレッシングという配列には月曜日から金曜日までのドレッシングが入っているわ。」
「注意しなきゃいけないのは、1つの配列の部屋には同じ種類のデータしか入れられないってことなの。例えば、ドレッシングっていう配列にはにんじんは入れられないの。」
「[]の中の数字を添え字(そえじ)と言って、配列の中の1つ1つのデータ〔要素(ようそ)と言う〕を扱うときには『配列名[添え字]』のように使うの。例えば、『トッピング[2]』『ドレッシング[3]』はそれぞれ『わかめ』と『イタリアン』になるわけ。添え字には変数も使えるので、曜日という変数に0~4のいずれかの値を入れておけば『トッピング[曜日]』というような使い方もできるわ。便利でしょ。」
かなたちゃんが言いました。「土曜日、日曜日ならエラー処理をするって書いてあるのはさっきといっしょかしら。」
ビットさんが言いました。「さっきとはちょっと違うわね。4号室までしかないマンションの5号室や6号室に行こうとしたら困ってしまうでしょ。そんな風にならないようにプログラムを作っておくことが大切なの。例えば、『土曜日、日曜日はお休みです。』というようなメッセージを出してプログラムを終了したりするわ。」
【解説】
プログラミングで一番難しいのは、想定外の事態やユーザーの誤操作があっても、エラーを起こさず正常に動作するプログラムを作ることです。大量に販売した製品のプログラムや大規模なシステムに不具合があったら、大きな損害が発生します。また、医療機器や制御系のプログラムなど人命にかかわるような分野では不具合はあってはなりません。
この記事が気に入ったらサポートをしてみませんか?