締切 6月13日(月)
宛先 ruby-06-10@e.koeki-u.ac.jp
宛先を間違うと、 レポートがどこにも届かなくなる。送信直前に宛先をしっかり確認し、 送信後に 確認ページ で確認せよ。
以下の問題のどれかひとつを解答せよ。 括弧内は標準最高点である。
起動時に指定したファイルを最後の行から逆順に出力す
るプログラム array.rb
を作成せよ(C)。
電話番号リストのようなデータファイルを作り、それを与える と、あいうえお順に並べ替えた結果を返すプログラムを作成せよ。
さかたさんきち 酒田三吉 0123-234-4491 いいもりはなこ 飯森花子 0123-456-7890 さいとうもきち 齋藤茂吉 0123-644-2234 なかまちたろう 中町太郎 0123-456-9876
をプログラムに渡すと、
いいもりはなこ 飯森花子 0123-456-7890 なかまちたろう 中町太郎 0123-456-9876 さいとうもきち 齋藤茂吉 0123-644-2234 さかたさんきち 酒田三吉 0123-234-4491
となればよい(C)。
上記と同様データファイルを読み込み並べ換えた結果を
出力するプログラムを、指定した項目のみに対して適用できる
プログラム picksort.rb
を作成せよ(A)。
上記電話番号リストのデータファイル
(phonebook.txt
とする)での実行例を示す。
./picksort.rb phonebook.txt どの項目にしますか(なまえ=1 名前=2 電話番号=3): 3 0123-234-4491 0123-456-7890 0123-456-9876 0123-644-2234
例題のプログラム score.rb
を改良して、2科目の得点が処理できるようにせよ(B)。
データファイルは、たとえば以下のような書式となる。
山田太郎 50 70 中町太郎 90 80 飯森花子 91 60 鶴岡一人 60 45 酒田三吉 52 82 三川一二三 12 98
この場合の集計結果は以下のようになる。
--氏名----------+-国語得点-+-平均との差--+-数学得点-+-平均との差-- 山田太郎 50 -9.0 70 -2.0 中町太郎 90 31.0 80 8.0 飯森花子 91 32.0 60 -12.0 鶴岡一人 60 1.0 45 -27.0 酒田三吉 52 -7.0 82 10.0 三川一二三 12 -47.0 98 26.0
ある店のセール期間中は、1000円以上2000円未満の買い物をす
ると、単価が100円未満の商品が全て半額になるという。データとして、
(成績データと同様)1行にひとつ買ったものの値段を入れると、自動的に
支払金額を計算してくれるプログラム
discount.rb
を作成せよ。
データはたとえば以下のようなものとする。
みかん 398 刺身 298 パン 88 三角コーナー網 100 牛乳 148
このデータの場合、合計1032円なので、88円商品が半額になり、
398+298+44+100+148=988
円になる。なお、消費税は
考慮しなくてよい。実行結果は、割り引きになる場合(1000〜
1999円)と、ならない場合両方を試してみること。
漸化式を用いて
a0 = 0, a1 = 1
an = an-1 + an-2
(n>2)
で定義される数列がある。この数列の第50項目を、配列
を用いて求めるプログラム fibonacci.rb
を作成せよ。
Subjectに
#6 配列 (解いた番号)
と半角文字で今日の日付、プログラム名、解いた番号を記入し、 本文の先頭に
氏名: | 公益太郎 |
学籍番号: | c110xxx |
クラス: | XX |
選択した番号: | XX番 |
を入れて、上記宛先に送ること。その後のレポート本体は
の順で書くこと。参考文献を正しく書けていない場合は減点する。