roy > naoya > 基礎プログラミングII・情報表現[月1] > (2)条件判断の復習
条件判断(場合わけ)を行う際にif文を使用した。基本的には以下の構造をとった(詳細は春学期の第3回目の授業参照)。
if文の基本構造
if 条件A #条件Aを満たせば 処理A #処理Aを実施する elsif 条件B #条件Aを満たさないが条件Bを満たせば 処理B #処理Bを実施する else #条件ABともに満たさない場合は 処理C #処理Cを実施する end
以下はif文を用いて書いたプログラムの例である(tani.rb)。実行するとどのような結果が出てくるか考えてみよう。
#!/usr/koeki/bin/ruby print "試験の得点を入力してください(0〜100点)\n" score = gets.chomp!.to_i if score < 60 then print "残念! 不可です\n" elsif score < 70 print "セーフ! 可です\n" elsif score < 80 print "良です。 よくできました\n" else print "優です! すばらしいですね\n" end
if文を使用する以下のプログラムを書いてみよう。1番からはじめてできるところまでやってみよう。
問題1:3つの商品を購入するものとし、それぞれの金額を順番に入力すると送料込みの合計金額を表示するプログラム。なお、送料は全国一律525円であるが、商品の合計金額が5000円以上の場合は無料となる(amount.rb)。
問題2:宅配便で送る荷物の幅、長さ、厚さおよび重さを入力すると料金を計算するプログラム。なお、料金はサイズにより以下のように定められているものとする(delivery.rb)。
60サイズ |
80サイズ |
100サイズ |
120サイズ |
140サイズ |
160サイズ |
---|---|---|---|---|---|
600円 |
700円 |
800円 |
900円 |
1000円 |
1100円 |
サイズ区分は以下の表の通りであるが、3辺の合計の長さと重さのサイズが一致しない場合は、大きい方のサイズの扱いとする。長さと重さの一方でも160サイズを超えている場合は送れない旨を表示する。
サイズ |
60サイズ |
80サイズ |
100サイズ |
120サイズ |
140サイズ |
160サイズ |
---|---|---|---|---|---|---|
3辺計 |
60cm迄 |
80cm迄 |
100cm迄 |
120cm迄 |
140cm迄 |
160cm迄 |
重量 |
2kg迄 |
5kg迄 |
10kg迄 |
15kg迄 |
20kg迄 |
25kg迄 |
問題3:郵便区内特別郵便物とは、配達を行う郵便局にその郵便局が配達を行う地域となっている郵便物を一定数持ち込むことで割引が適用されるサービスであり、以下のように金額が定められている。実行すると1通あたりの重さと、同時差出数、そのうちその郵便局の配達地域である郵便物数を聞き、ユーザが入力した値に応じて郵便料金を表示するプログラム(kunai.rb)を作成せよ。なお、表の下に示す2つの条件のうち最低1つを盛り込むこと(この部分がif文となる)。
通常料金 |
当該地域について100通以上 |
当該地域について1000通以上 |
---|---|---|
25gまで80円 |
65円 |
50円 |
50gまで90円 |
75円 |
55円 |
うまくいかない場合は、修正途中でもよいので授業終了時までにメールで解答を送信すること。出席点は2点。提出要領は下記の通り。
Tips:Mewによるメールの送り方はMewコマンドを参照