第 2 回 Ruby の基礎 / 計算が終ったら止まる問題 レポート課題 氏名:浅沼佑香 学籍番号:C1110039 語学クラス:英語1 コース:社会福祉コース 1.A.カタツムリが卵を500個産む。春になり、1個の卵が孵化した。翌日は、前日 の3倍孵化するとある。 翌日に卵を孵化する数が前日の3倍とあるので、日にちごとに3の倍数をかければよい。 1日目 1個 2日目 3*1=3個 3日目 3*3=9個 4日目 9*3=27個 5日目 27*3=81個 6日目 81*3=243個 7日目 243*3=729個 なので、答えは7日かかる。 2.A. #!/usr/koeki/bin/ruby # coding: euc-jp print("あるカタツムリが卵を500匹産んだ。\n") print("春になり、1個の卵が孵化した。\n") print("翌日は前日の3倍孵化する。\n") print("1日目には、1個の卵が孵化した。\n") print("2日目には、3個の卵が孵化した。\n") print("3日目には、9個の卵が孵化した。\n") print("4日目には、27個の卵が孵化した。\n") print("5日目には、81個の卵が孵化した。\n") print("6日目には、243個の卵が孵化した。\n") print("7日目には、729個の卵が孵化した。\n") print("7日目には、500個を越している。\n") print ("なので、答えは7日かかる。\n") print文を用いて、(" ")で、はさまれた文字列が表示される。 ちなみに、\nは改行の意味である。 あるカタツムリが卵を500匹産んだ。 春になり、1個の卵が孵化した。 翌日は前日の3倍孵化する。 1日目には、1個の卵が孵化した。 2日目には、3個の卵が孵化した。 3日目には、9個の卵が孵化した。 4日目には、27個の卵が孵化した。 5日目には、81個の卵が孵化した。 6日目には、243個の卵が孵化した。 7日目には、729個の卵が孵化した。 7日目には、500個を越している。 なので、答えは7日かかる。 このように結果が出た。 計算結果は次の通りである。 pan{c111003}% bc -l [~/Ruby] 1*3 3 3*3 9 9*3 27 27*3 81 81*3 243 243*3 729 2.B.ある日、外車を100台入荷した。翌日に、販売したところ1台売れた。次の日 は、前日の2倍売れた。全て売れるのに、何日かかるか。 これを計算してみた。 1台売れた次の日には、2倍の数が売れたとあるので、2倍して、足せば、結果 が出てくる。 1日目 1台 2日目 1*2=2台 3日目 2*2=4台 4日目 4*2=8台 5日目 8*2=16台 6日目 16*2=32台 7日目 32*2=64台 この合計を足すと 1+2+4+8+16+32+64=127台 なので、100台売れるのに7日かかる。 <制作したプログラム> #!/usr/koeki/bin/ruby #coding: euc-jp day = 0 #車が売れた日 snail=snail0=1 #1日目に売れた数 snail=100 #入荷した数 while snail< = snailmax #売れた車も数が入荷した車の数を越えたらとめる。 printf("%d 日後\t%d {台}\n",day +=1 , snail=2) #入荷した車の数を表示する。1日ごとに2倍売れる設定。 end # whileと合わせて最大値を越えたらとめる役割。 printf("%d 日後には 100{台} を %d {台}超えます。\n", day, snail - 100) #何日後に入荷した車を売れた車が越えてしまう計算になるか表示する。 <計算結果> pan{ASANUMA Yuka}% bc -l [~/Ruby] 1*2 2 #2日目 2*2 4 #3日目 4*2 8 #4日目 8*2 16 #5日目 16*2 32 #6日目 32*2 64 #7日目 2+4+8+16+32+64 126 #7日目までの合計 3 自分で問題を作り、解くのがとても難しかった。ファイルを作って、結果を ktermに表示する際に失敗してしまったので、確認してから表示作業をしたい。 また、早く操作になれるために、復習や予習をしっかりやりたい。