第 2 回 なになにといえばこれこれ レポート課題 氏名:樋口貴士 学籍番号:C1101715 語学クラス:中国語3 コース(系):地域共創コース ◎すみません。2のプログラム問題で、作成した番号を記載するのを忘れてしまっ たので、もう一度送信しました。作成した番号はBです。 1.筆記問題 A.アニメの特徴を hash 配列 anime としました。 anime の key と value はそれぞれアニメとその主人公にとりました。 その 1: key 「機動戦士ガンダム」に対して value は「アムロ・レイ」 その 2: key 「ドラゴンボール」に対して「孫悟空」 その 3: key 「スラムダンク」に対して「桜木花道」 その 4: key 「あらいぐまラスカル」に対して「ラスカル」 その 5: key 「アルプスの少女ハイジ」に対して「ハイジ」 となります。 これに対応する Hash の表し方は anime["機動戦士ガンダム"] = "アムロ・レイ" anime["ドラゴンボール"] = "孫悟空" anime["スラムダンク"] = "桜木花道" anime["あらいぐまラスカル"] = "ラスカル" anime["アルプスの少女ハイジ"] = "ハイジ" となります。 また、もう一つの表し方は {"機動戦士ガンダム" => "アムロ・レイ", ... {"ドラゴンボール" => "孫悟空" {"スラムダンク" => "桜木花道" {"あらいぐまラスカル" => "ラスカル" {"アルプスの少女ハイジ" => "ハイジ" となります。 B.計算問題 a.0d 2010 =0x7da 16)2010 …10 …a ----- 16) 125 …13 …d ----- 16) 7 … 7 ----- 0 ◯結果2010を16進数にすると0x7daとなる。 b.0d 2010 =0b11111011010 2)2010 …0 ----- 2)1005 …1 ----- 2) 502 …0 ----- 2) 251 …1 ----- 2) 125 …1 ----- 2) 62 …0 ----- 2) 31 …1 ----- 2) 15 …1 ----- 2) 7 …1 ----- 2) 3 …1 ----- 2) 1 …1 ----- 0 ◯結果2010を2進数にすると0b11111011010となる。 更に16進数に変換 0b11111011010 11111011010 4桁ごとに区切る ●桁に区切った際、先頭は4桁に満たない場合があれば、その際は左側に0を補う。 0111 1101 1010 7 d a ◯結果0b11111011010を16進数にすると7daとなる。 2.プログラム問題 Bの問題をしました。 ○ 考えた設定 このプログラムはプログラムを実行させると泳ぐ種目が表示するので そこから選択肢で選び、泳ぐ距離を入力して、タイムを計測するプログラムで す。 ○作成したプログラム #!/usr/koeki/bin/ruby $KCODE="e" swim = Hash.new #swimがハッシュ変数であることを意味する。 print"泳ぐ種目:数字は50メートルの速さ\n" #泳ぐ種目を表示させる。 print"クロール 40\n" print"平泳ぎ 45\n" print"バタフライ 50\n" print"背泳ぎ 55\n" print"犬かき 70\n" print"けのび 100\n" swim["クロール"] = 40 #keyに対してのvalue。 swim["平泳ぎ"] = 45 swim["バタフライ"] = 50 swim["背泳ぎ"] = 55 swim["犬かき"] = 70 swim["けのび"] = 100 STDERR.print("泳ぐスタイルを入力してください。\n") style = gets.chomp syumoku = swim[style] if swim.key?(style) == false printf("%s はこのプログラムにはありません\n",style) else STDERR.print("泳ぐ距離を入力して下さい。\n") kyori = gets.chomp.to_f byo = swim[style] / 50.0 * kyori #杪(タイム)を求める計算式。 printf("%s\t(%6.1f メートル)\t %d 秒\n",style,kyori, byo) end ○プログラム実行結果 ●正しい選択肢を入力した場合 泳ぐ種目:数字は50メートルの速さ クロール 40 平泳ぎ 45 バタフライ 50 背泳ぎ 55 犬かき 70 けのび 100 泳ぐスタイルを入力してください。 クロール 泳ぐ距離を入力して下さい。 100 クロール ( 100.0 メートル) 80 秒 以下省略 泳ぐスタイルを入力してください。 バタフライ 泳ぐ距離を入力して下さい。 200 バタフライ ( 200.0 メートル) 200 秒 ●選択肢以外を入力した場合 泳ぐ種目:数字は50メートルの速さ クロール 40 平泳ぎ 45 バタフライ 50 背泳ぎ 55 犬かき 70 けのび 100 泳ぐスタイルを入力してください。 自由形 自由形 はこのプログラムにはありません 以下省略 泳ぐスタイルを入力してください。 クロール 泳ぐ距離を入力して下さい。 平泳ぎ クロール ( 0.0 メートル) 0 秒 ◎泳ぐ距離の入力を数字を入力しなければ計算されないで0になる。 3.考察 選んだ種目と入力した距離の計算が正しいことから、作成したプログラムは成功している と思える。 反省点は文字だらけであるので、見やすくはないので、記号などもいれて見やす く、工夫すれば良かったと思う。 4.感想 筆記問題の2進数、10進数、16進数の計算は前期の授業でやったが、解き方を忘 れてしまったので、復習ができて良かった。 まだ、後期のプログラミングが始まったばかりだが、苦戦してしまったので、 しっかりついていけるように頑張りたい。 5.参考文献 神田直弥先生 基礎プログラミング1の第9回 (http://roy/~naoya/ruby/9.html) 共同学習者:及川正倫 西村まどか先生 基礎プログラミング II 第 2 回 「なになにといえ ばこれこれ」 (http://roy/~madoka/2011/r2/02/)