Subject: #03 ループ
From: c116124@h.koeki-u.ac.jp
To: ruby-2-03@e.koeki-u.ac.jp
Date: Tue, 10 Oct 2017 02:25:30 +0900 (JST)
X-Mailer: Mew version 6.3 on Emacs 23.4 / Mule 6.0 (HANACHIRUSATO)

氏名   : snnooow
学籍番号 : C1161249
クラス  : IC

作成したプログラム
#!/usr/koeki/bin/ruby
# coding: utf-8

def hello(name = "Guest")
  message =  "ようこそ!" + name + "さん\n"
  puts message
end

def sakana(tuna)
  u = 0
  fish = ""
  for r in tuna
    fish << r
    fish << " "
  end
  return fish
end

def sum(total)
  sum = 0
  for a in total
    sum += a
  end
  return sum
end

def sum(total)
  sum = 0
  for a in total
    sum += a
  end
  return sum
end

if ARGV.length != 1
  hello()
else
  hello(ARGV[0])
end

while true
  print"何皿食べる? ただし、20皿までだよ!: "
  sara = STDIN.gets.chomp.to_i
  if sara > 20
   puts "それは食べすぎ~! 20皿までだよ!"
    redo
  elsif sara > 0 && sara <= 20
    printf("わかった! 今日は%d皿までね!\n", sara)
    break
  else
    puts"ちゃんと入力してね!おこだよ!"
    redo
  end
end
puts""

s = 0
sushi = []
kakaku = []
for x in 1..sara
  s += 1
  printf("今、%d皿目だよー!何を食べたのか教えて?\n", s)
  neta = STDIN.gets.chomp!
  sushi[s-1] = neta
  puts"それはいくらだったの?"
  price = STDIN.gets.chomp!.to_i
  kakaku[s-1] = price
  printf("%d皿目おーわり!\n", s)
  puts""
end
puts""
puts"これでおーわり!"
printf("今日あなたが食べたのは、%sです。\n", sakana(sushi))
printf("あなたが食べた寿司の合計金額は%d円です。\n", sum(kakaku))

説明
 このプログラムは、食べるお寿司の枚数とネタ、金額をそれぞれ入力していく
と、食べたお寿司の種類と合計の金額を出力するプログラム。
 ARGVを使用し、プログラムに与えた引数をRubyプログラムからも利用できるよ
うにした。このプログラムでは、起動する際に、 % ./kadai.2 のあとに名前
を入れると、その名前が出力される。なにも打ち込まなかった場合は、Guestさ
んとなる。
 for 変数 in 配列 のメソッドを使い、打ち込まれた寿司の金額の合計が出力
されるようにした。

実行結果
<1>
roy{c116124}% ./kadai2.rb ゆうき
[~/Ruby]
ようこそ!ゆうきさん
何皿食べる? ただし、20皿までだよ!: 2
ちゃんと入力してね!おこだよ!
何皿食べる? ただし、20皿までだよ!: 2
わかった! 今日は2皿までね!

今、1皿目だよー!何を食べたのか教えて?
あじ
それはいくらだったの?
100
1皿目おーわり!

今、2皿目だよー!何を食べたのか教えて?
えんがわ
それはいくらだったの?
200
2皿目おーわり!


これでおーわり!
今日あなたが食べたのは、あじ えんがわ です。
あなたが食べた寿司の合計金額は300円です。

<2>
roy{c116124}% ./kadai2.rb
[~/Ruby]
ようこそ!Guestさん
何皿食べる? ただし、20皿までだよ!: 3
わかった! 今日は3皿までね!

今、1皿目だよー!何を食べたのか教えて?
いくら
それはいくらだったの?
108
1皿目おーわり!

今、2皿目だよー!何を食べたのか教えて?
まぐろ
それはいくらだったの?
302
2皿目おーわり!

今、3皿目だよー!何を食べたのか教えて?
サーモン
それはいくらだったの?
201
3皿目おーわり!


これでおーわり!
今日あなたが食べたのは、いくら まぐろ サーモン です。
あなたが食べた寿司の合計金額は611円です。


参考文献
広瀬雄二."いろいろな繰り返し".2017年度 基礎プログラミングII.
http://roy.e.koeki-u.ac.jp/~yuuji/2017/pf2/03/iteration.html
,(参照2017-10-09).
広瀬雄二."コマンドラインとの情報のやりとり".2017年度 基礎プログラミング
II.http://roy.e.koeki-u.ac.jp/~yuuji/2017/pf2/03/argv.html
,(参照2017-10-09).
Ruby Association."メソッド".Rubyアソシエーション: メソッド - Ruby
Association.
http://www.ruby.or.jp/ja/tech/development/ruby/tutorial/070_method.html
,(参照2017-10-09).

感想
 今回の課題は、習ったもの+前回習ったところを含めなければならないプログ
ラムをつくらなければならなかったので、どのようなプログラムをつくればいい
のかがわからず、とても悩みました。私は、発想力が乏しいほうだと思うので、
オリジナルを考えることが難しいです。今回習ったところは、まだ簡単らしいの
で、今後、授業についていけるか不安でいっぱいです。