roy > naoya > 基礎プログラミングII・情報表現[月1] > (2)条件判断の復習

(2) 10/15の授業内容:条件判断の復習

条件判断の復習

条件判断(場合わけ)を行う際に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円

  • 1通あたりの重さが50gを超える場合はこの制度を利用できないものとし(実際には利用できる)、通常料金を100gまで140円、150gまで200円として合計金額を算出し、1通あたりの料金をあと○g減らせばこの制度が適用されて○○円となり、○○円得になることを示す。
  • その郵便局の配達地域となっている郵便物の数が95通〜99通、980通〜999通の場合に、このままだと○○円になるが、あと○通追加すると○○円になるとアドバイスをする

うまくいかない場合は、修正途中でもよいので授業終了時までにメールで解答を送信すること。出席点は2点。提出要領は下記の通り。

  • 提出先:naoya@e.koeki-u.ac.jp
  • メールのSubject:attend02
  • 本文の構成:1行目で学籍番号、氏名を記載する。2行目以降にプログラムと実行結果を貼り付ける

Tips:Mewによるメールの送り方はMewコマンドを参照