#!/usr/koeki/bin/ruby book = Array.new #新しい配列を作る宣言 i = 0 #お勧めの本をしまう変数はi。0からはじまる。 total = 0 #合計をしまう変数はtotal。 heikin = 0 #平均をしまう変数はheikin book[0]=["嗤う伊衛門", "京極夏彦", "中央出版", "異色時代劇", 580] book[1]=["重力ピエロ", "伊阪幸太郎", "新潮社", "家族とはなにか?", 1575] book[2]=["死神の精度", "伊阪幸太郎", "文春文庫", "切なく暖かい短編集", 550] book[3]=["チルドレン", "伊阪幸太郎", "講談社", "かっこよさって、なに?", 1575] book[4]=["カラフル", "森絵都", "論理社", "よい人生とはなんだろう?", 1575] book[5]=["永遠の出口", "森絵都", "論理社", "大人になるとは?",1575] book[6]=["探偵ガリレオ", "東野圭吾", "文藝春秋", "湯川先生の活躍を描く", 570] book[7]=["空の中", "有川浩", "メディアワークス", "未知の生物を巡る少年成長物語", 1680] book[8]=["西の魔女が死んだ", "梨木香歩", "新潮文庫", "少女の魂の成長を描く", 420] book[9]=["塩狩峠", "三浦綾子", "新潮文庫", "人を救う難しさ", 660] print("お勧めの本を紹介します\n") #内容を説明するプリント文 while i < 10 #繰り返す変数の数を指定。今回は0から9までの5回 printf("お勧めの本 %d \n", i+1) #お勧め本を表示する。番号はi+1で1から始めるように指定。 printf("%sは、%sが書いた本で、%sから出版されています。 \n", book[i][0],book[i][1],book[i][2]) #添字の0と1と2を表示させる。文字なのでsを使う。 printf("一言:%s \n", book[i][3]) #添字の3つめを表示する。 printf("値段は%d円です \n", book[i][4]) #添字の4つめを表示。数字なのでd total += book[i][4] #変数bookの合計を表す。添字の4番目である数字を計算する、の意味。 i += 1 heikin = total / 10 #平均は合計を10で割ると言う意味。 heikin = heikin.to_i #平均は整数で表示されてほしいのでto_iで、文字列を整数に指定 end #while のエンド。 printf("紹介した本を全部読むには、計%d円かかりますね。 \n", total) #紹介した本の合計金額を表示。 printf("紹介した本の平均金額は%d円です \n",heikin) #紹介した本の平均金額を表示。 printf("紹介終了\n\n") #紹介は一反終了。 print("おまけ \n") #おまけを作成してみた。 print("レビューだけじゃ退屈でしょうし、オマケのタイピングを用意してみました。\n") print("Ctrl+で日本語入力に切り替えて下さい \n") #日本語入力を指示するプリント文 omake = ["じゅ", "う", "りょ", "く", "ぴ", "え", "ろ"] #うちこむ文字を指定。 STDERR.print("実は、上で紹介したものの中で、映画化するものがあるんです。それは… \n") STDERR.printf("%s\n",omake) #STDERRで入力をさせる。 hazimari = Time.now.to_i #で現在時刻を取りだす #はじまりを告げる変数はhazimariとした。 i = 0 while i < omake.length printf("\v%s",omake[i]) #\vは縱に隙間を空ける。 input = gets.chomp if input == omake[i] #もし、おまけの条件を満たしていれば次に行くの意味。 owari = Time.now.to_i #終わりの時間を告げる変数owariはとした。 STDERR.print("\t正解 \n") #正解ならこれを表示させる。 i += 1 end end time = hazimari - owari #かかった時間は、はじまりから終わりを引く。 printf("かかった時間:%d杪 \n",time) #かかった時間を表示。l print("これにて終了です。みなさまよい読書を\n") #プログラムの終了を告げるプリント文