小学生でも出来る!C++プログラム #06
はおっ(0^∀^)ノ お久しぶりです。渚です。
プログラムしか書けない私たちですが、この度は同人界隈向けに、 なんとなくこんな風に作ってるよーというのを発信すべく、 定期的にブログで紹介してみようかということになりました。 この記事はそんな連載の第12回です。
ということで,渚からは「小学生でも出来る!C++プログラム」 を紹介していこうと思います。
関連ブログ
- #1 小学生でも出来る!C++プログラム「C++って何?」
- #2 小学生でも出来る!C++プログラム「開発ツールを手に入れよう!」
- #3 小学生でも出来る!C++プログラム「表示してみよう!」
- #4 小学生でも出来る!C++プログラム「変数って何?」
- #5 小学生でも出来る!C++プログラム「if文って何?」
- #6 小学生でも出来る!C++プログラム「if文を使おう!」
目次
- 「if文を使おう!」
- 自動販売機プログラム
- 自動販売機プログラム解答
人物紹介
渚:プログラムを教えてくれる先生
ココ:いんたーねっとって聞いたことがあります!
マナブ:将来はゲームプログラマーになりたいな!
自動販売機プログラム
渚>今日は自動販売機プログラムを書いていきましょう!
ココ>じどうはんばいき?
マナブ>ジュースが買える機械だよ。
ココ>知ってる! そうじゃなくて,そのプログラムっていうのが想像できなくて・・・
マナブ>確かにそうですね。どんなプログラムなんですか?
渚>標準入出力(コンソール)を使って,ちょっとした自動販売機を作ります。
渚>見た方が早いので,お見せしますね。
渚>まずは,coutを使って,表示を行います。
渚>¥(円マーク)は,¥¥と記入しないと,適切に表示されないので注意しましょう!
渚>次に,cinを使って,入力を行います。
渚>赤色の字の「1」がcinで入れた値になります。
ココ>cin?
渚>coutの意味が,c(コンソール)のout(出力)です。 cinは,c(コンソール)のin(入力)になります。
渚>使い方は,
std::string value; std::cin >> value;
渚>これだけで,string型のvalueに値が入ります。
渚>では,自動販売機のプログラムを見てみましょう!
渚>赤色の字以外は,coutで表示しているだけです。 では,赤色の字の数字を変えたらどうなるか見てみましょう!
渚>例えば,1番目に0を入れてみますね。
渚>こんな感じで,1~4のみしか処理しないようになっています。
渚>1番目に1~4のどれかを入力し, 2番目に,1~2以外を入力してみますね。
渚>こんな感じで,無視して買わされます。
マナブ>聞く意味ないですね・・;
渚>そうですね! 気になる人は,1~2以外の入力を受け付けないようにしましょう。
渚>あと見せていないのは,1番目に3と4を選択したパターンですね。
ココ>1番目に4を入れると,お金が足りなくて買えない!
渚>そうですね!どうなるか見てみましょう。
渚>こんな感じで,お金が足りないことを指摘されます。
渚>最後に,1番目に3を選択した場合と,2番目に2を選択した場合を見てみましょう!
渚>こんな感じです。
渚>では,こんな感じの自動販売機プログラムを組んでみましょう!
マナブ>は~い! ココ>は~い!
自動販売機プログラム解答
渚>では,解答プログラムを載せますね。
渚>まだ,出来ていない人は,出来るだけ自力で頑張ってね!
渚>ちなみに,↓のが唯一の回答ではなく,こういう方法もある位に思ってください!
#include <iostream> #include <string> using namespace std; int main() { unsigned int money = 1500; string select; int i_select; cout << "自動販売機" << endl; cout << "残金:" << money << "円" << endl; cout << "--------------------------------" << endl; cout << "お茶 アップル コーラ コーヒー" << endl; cout << "\\100 \\150 \\1500 \\2000" << endl; cout << "--------------------------------" << endl; cout << "どれをお買い求めになりますか?" << endl; cout << "1:お茶 2:アップル 3:コーラ 4:コーヒー" << endl; cin >> select; try { i_select = std::stoi(select); } catch(exception e) { cout << "1~4を入れて下さい!" << endl; return 0; } if (i_select == 1) { if (money < 100) { cout << "お金たりないよ~!" << endl; return 0; } cout << "お茶を買いましたね。" << endl; cout << "本当にいいんですか?" << endl; cout << "1:はい 2:YES" << endl; cin >> select; cout << "お買い上げありがとうございます!" << endl; cout << "あなたのお財布から" << 100 << "円が減りました" << endl; cout << "残金:" << (money -= 100) << "円" << endl; } else if (i_select == 2) { if (money < 150) { cout << "お金たりないよ~!" << endl; return 0; } cout << "アップルを買いましたね。" << endl; cout << "本当にいいんですか?" << endl; cout << "1:はい 2:YES" << endl; cin >> select; cout << "お買い上げありがとうございます!" << endl; cout << "あなたのお財布から" << 150 << "円が減りました" << endl; cout << "残金:" << (money -= 150) << "円" << endl; } else if (i_select == 3) { if (money < 1500) { cout << "お金たりないよ~!" << endl; return 0; } cout << "コーラを買いましたね。" << endl; cout << "本当にいいんですか?" << endl; cout << "1:はい 2:YES" << endl; cin >> select; cout << "お買い上げありがとうございます!" << endl; cout << "あなたのお財布から" << 1500 << "円が減りました" << endl; cout << "残金:" << (money -= 1500) << "円" << endl; } else if (i_select == 4) { if (money < 2000) { cout << "お金たりないよ~!" << endl; return 0; } cout << "コーヒーを買いましたね。" << endl; cout << "本当にいいんですか?" << endl; cout << "1:はい 2:YES" << endl; cin >> select; cout << "お買い上げありがとうございます!" << endl; cout << "あなたのお財布から" << 2000 << "円が減りました" << endl; cout << "残金:" << (money -= 2000) << "円" << endl; } else { cout << "1~4を入れて下さい!" << endl; return 0; } cout << "--------------------------------" << endl; return 0; }
渚>今までの紹介にない,部分を説明しますね!
unsigned int money = 1500;
渚>実は,int型の本名は,signed intという型なんです。 この型は,プラスの値とマイナスの値の両方が使える型になります。
渚>unsigned int型は,マイナスを扱えないようにする代わりに 通常のsigned int型より,大きいプラスの値が使える型になります。
渚>今回は,moneyがマイナスになることがないので,unsigned int型を使っています。
i_select = std::stoi(select);
渚>これは,string型のselectをint型のi_selectに変換しています。
渚>もし,selectに入っている値がint型ではなかった場合,
try { i_select = std::stoi(select); } catch(exception e) { cout << "1~4を入れて下さい!" << endl; return 0; }
渚>catchの中に入り,「"1~4を入れて下さい!"」が表示されます。
渚>try catchは,「selectに入っている値がint型ではなかった場合」 のような,異常なエラーがあった際, 落ちるのではなく,正常に処理を続けられるようにする仕組みです。
渚>これで説明は以上になります!ほかに気になるところはありますか?
ココ>だいじょうぶです! マナブ>だいじょうぶです!
渚>ということで,今回はif文を使って,自動販売機プログラムを書いてみよう!でした。
次回
for文について学ぼう
---フリー素材提供-------------------------------------- [ジュエルセイバーFREE] URL:http://www.jewel-s.jp/