こんにちは､ そしてようこそ｡ さて､ 判定､ if文､ switch文の講義が終わったところで､
ちょっとした課題､ チャレンジを提供したいと思います｡
そこで今回のチャレンジでは､ 週給を計算するcプログラムを作成します｡
このプログラムは､ 1週間の労働時間数をキーボードから入力させるものです｡
プログラムは､ 総支給額､ 税金､ 純支給額を出力として表示する必要があります｡
そこで､ 次のような基本的な前提を置く必要がある｡
時給は12ドルになるそうです｡
残業は40時間を超えると､ 時間外手当が発生するんだ｡
税率は稼いだ金額によって変わってくるからね｡
最初の300ドルは15%になります｡
2回目の150円300円から450円は､ 20%になりますね｡
そして450を超える分については､ 25％の税率で支給されることになります｡
だから､ まず気づくべきは､ たくさんの決め事を書かなければならないことです｡
そして､ この課題の目的は､ if else文に慣れ親しんでもらうことです｡
この課題で期待することは､ まず残業時間を計算するためのif
else文が必要だということです｡
つまり､ 残業は40時間を超えるものなのです｡
だから､ 残業があるかどうかを確認する必要があるんだ｡ 入力された時間数が40時間より大きい場合は時給18円にするとか｡
あとは､ 40時間以降の時間だけ給料をもらうようにしたい｡
つまり､ 45が労働時間数だと入力すると､
その最初の40時間は時給12ドルになるわけです｡
そして残りの5時間は､ 時給18円です｡
だから､ そのことを念頭に置いておく必要がある｡
そして､ 税率を考えると､ if文が必要になってきます｡ 300ドル以上稼いだか､
450ドル以上稼いだかによって､ 税率が加算されるからです｡
つまり､
ユーザーが45と入力した場合､ 残業代を計算しなければならないのです｡
結局45時間でどうなるかというと､ 大体時給12ドル×40で480円くらいになるかと思います｡
そして､ その5時間延長した分の時給が18ドル､
つまり90ドルになるわけです｡
つまり､ 480＋90で570｡
ですから､ 総支給額570円､ これは実行例ですが､ 総支給額570円と表示する必要があります｡
これで､
その570人分の税金の計算が違ってくる｡
つまり､ 最初の300円の儲けに対して､
15％の税率がかかるわけです｡ 300の15%に課税するということですね｡
そして､ 300円から450円まで､ つまり150円は20％の課税になる､
150円だけだ｡
そして､ それ以上稼ぐと､ 25％の税率で課税されることになるのです｡
だから､ この税率を混同してはいけない｡
税率は合計ではなく､ 稼いだ金額ごとに異なる｡
だから､ 800ドル稼いだとしても､ 25％の税金を払ったことにはならない｡
その800のうち300を15％､
150を20％､ そして残りの350ドルを25％として支払ったということです｡
そうすると､ if else文を書かざるを得なくなる｡
だから､ アウトプットと我々が求めているものに関して､ それを明確にしたかったのです｡
だから､ これを調べてみてください｡ 要件はかなり基本的なものです｡
何時間もキーボードから何かを入力することになります｡
まず最初にやりたいことは､ プログラムを整理することです｡
常にテストを行い､ 意味のある名前を使いたいものです｡
そして､ if文の場合は､ インデントしたい｡ すべてのブロックをインデントすることで､ 読みやすくしたい｡
私の講義やサンプルでは､ コードをインデントしています｡
読みやすくするために､ ブロックをインデントしたり､ 改行したりする習慣をつけましょう｡
しかし､ このプログラムを問題解決的な側面にグループ化することは可能です｡
まず､ ユーザーに数字を入力してもらい､ それをテストして動作していることを確認するんだ｡
次に私がすることは､ 総支給額を計算することです｡
だから総支給額は基本的に40以上なら残業代を計算するのを含むだけ｡
グロスペイが終わったら､ 狂ったようにテストして動作を確認するんだ｡ その後､ 税金に移って､ 税金のテストをするんです｡
そして､ 税金が終わったら､ 純支給額を計算するんです｡
手取りは､
総支給額から税金を差し引いたものになるので､ 一番簡単なものになります｡
でも､ この演習の最後には､ if文にかなり習熟していることを期待しています｡
少なくとも､
基本を理解し､ elseを理解し､ いつ括弧をつける必要があるかを理解し､ インデントや良い変数名を使うことによってコードを読みやすくする方法を理解することができます｡
だから､ 頑張ってください｡ ありがとうございます｡