第 7 回 専門演習紹介 レポート課題 氏名: 池田 紘平 学籍番号: c1110097 語学クラス: 英語 3 コース: 社会福祉コース 1.A.a 企画書と仕様書書は以下のようになっている。 〜企画書(plan.txt)〜 企画書 日本国憲法(日本語入力 ver.)プログラム 大学のタイピングソフトは英語入力なので、今回は日本語入力のタイピングソ フトを作成した。時間計測もつけ、かつ日本語入力なので、タイピング能力の 向上とともに、憲法の理解にもつながる。 〜仕様書(00readme)〜 -- 取扱説明書 -- ● 憲法マスター 英語の憲法ではなく、日本語の憲法を入力するタイピングソフト ● ダウンロードファイル 下記の3つのファイルをダウンロードして同じディレクトリに保存してください。 00readme # 取扱説明書 saiko.rb # プログラムファイル saiko.dat # データファイル ダウンロードはトップページでおこなってください。 ● ダウンロード方法 1. ダウンロードするファイルの上にマウスを持っていき、右クリックをする。 2. Save Link As というものがあるので、それをクリックする。 3. Places の中に自分の学籍番号があるので、それをクリックする。 4. Save をクリックするとダウンロードが完了する。 ● 使い方 1. kterm で上記で移動させたディレクトリに移動する。 2. chmod +x saiko.rb を行う。 3. ./saiko.rb を入力して実行する。 4. スタート! ● 著作権について このプログラムは東北公益文科大学 池田 紘平 が著作権を保有しています。 プログラムの入手、実行、改変はいずれも無料・自由におこなって構いません。 ただし、このプログラムを使用したことで生じたいかなる問題・結果に対して 著作権者は責任を負いません。 ● 最後に このプログラムに対する感想・助言・要望など大歓迎です。 c111009@g.koeki-u.ac.jp までお送り下さい。 1.A.b < 設定 > 前期で学んだ正規表現を中心に、for 文や def -- end を使ったタイピングソフ トとなっている。 < プログラム saiko.rb > #!/usr/koeki/bin/ruby # coding: euc-jp def jikan(fun) # jikan という method を用意する fun / 60 # fun を 60 秒で割る end # def の end def jikan2(byou) # jikan2 という method を用意する byou % 60 # fun を 60 秒で割ったあまり end # def の end jyo = Array.new # jyobun という配列を用意する title = Array.new # title という配列を用意する naiyo = Array.new # naiyo という配列を用意する syou = Hash.new # syou という Hash 配列を用意する toi = Hash.new # toi という Hash 配列を用意する syou = ["1章","2章","3章","4章","5章","6章","7章","8章","9章","10章","11章"] # 配列 syou に何章まであるかを入れておく toi = [10,2,31,24,11,7,9,4,1,3,4] # それぞれの問題数 print"選択した章の条文を日本語で入力していきます\n\n" # 内容の表示 print"選択できる章は\n" # 選択できる章を for kazu in syou # 配列 syou に入っているものを kazu に入れていく printf("%s ",kazu) # kazu に入っているものを次々表示する end # for の end print"それぞれの問題数は\n" #それぞれの問題数 for kazu2 in toi # 配列 toi に入っているものを kazu2 に入れていく printf("%d問 ",kazu2) # kazu2 に 入っているものを次々表示 end # for の end print"です\n" # 表示 print"\n変換は Shift-スペースです\n" # 変換方法を表示 print"章を選択せよ\n\n" # 章を選択させる print"例: 2章\n\n\n" # 入力例を表示 STDERR.print("章 : ") # 章の入力 pat = STDIN.gets.chomp # 変数 pat に入力されたものを代入 req = Regexp.new(pat,true) # 変数 req に pat を代入 open("saiko.dat","r") do |cand| # データファイルを読みこむ hako = 0 # 変数 hako をからにする seito = 0 # 変数 seito をからにする start = Time.now.to_i # 変数 start に今の時間を代入 while c111009 = cand.gets # c111009 に代入 if req =~ c111009 # もし変数 req が c111009 だったら if /(\S+)\s+(\S+)\s+(\S+)\s+(\S+)/ =~ c111009 # もし c111009 にデータが代入されたら jyo[hako] = $1 # jyo[hako] に データの 1 列目を代入 title[hako] = $2 # yiyle[hako] に データの 2 列目を代入 naiyo[hako] = $3 # naiyo[hako] に データの 3 列目を代入 printf("%s\t%s\n%s\n\n",jyo[hako],title[hako],naiyo[hako]) # hako 番目のものを表示 print"条文を入力せよ\n\n\n" # 入力するものを表示 STDERR.printf("") # 入力 ans = gets.chomp # 変数 ans に入力されたものを代入 if ans == naiyo[hako] # もし ans が naiyo[hako] と同じだったら print"完璧です!\n" # 正解だと表示 seito += 1 # seito を 1 増やす else # じゃなかったら print"残念! 違います\n" # 違うことを表示 end # if , else の end hako += 1 # hako を 1 足す end # if の end end # if の end stop = Time.now.to_i # 変数 stop に今の時間を代入 time = stop - start end # while の end printf("正答数は %d 問中 %d 問でした\n",hako,seito) # かかった時間の表示 printf("かかった時間は %d 分 %d 秒でした\n",jikan(time),jikan2(time)) # jikan と jikan2 が time の時の結果を表示 end # open の end < 実行結果 > pan{c111009}% ./saiko.rb [~/public_html/adv2] 選択した章の条文を日本語で入力していきます 選択できる章は 1章 2章 3章 4章 5章 6章 7章 8章 9章 10章 11章 それぞれの問題数は 10問 2問 51問 36問 15問 17問 11問 5問 2問 4問 5問 です 変換は Shift-スペースです 章を選択せよ 例: 2章 章 : 2章 第九条 戦争の放棄、戦力及び交戦権の否認 日本国民は、正義と秩序を基調とする国際平和を忠実に希求し、国権の発動たる戦争と、武力による威嚇又は武力の行使は、国際扮装を解決する手段としては、永久にこれを放棄する。 条文を入力せよ 日本国民は、正義と秩序を基調とする国際平和を忠実に希求し、国権の発動たる戦争と、武力による威嚇又は武力の行使は、国際扮装を解決する手段としては、永久にこれを放棄する。 完璧です! 第九条 第二項 前項の目的を達するため、陸海空軍その他の戦力は、これを保持しない。国の交戦権は、これを認めない。 完璧です! 正答数は 2 問中 2 問でした かかった時間は 3 分 12 秒でした --------------------------------------------------------------------------- pan{IKEDA Kohei}% ./saiko.rb [~/public_html/adv2] 選択した章の条文を日本語で入力していきます 選択できる章は 1章 2章 3章 4章 5章 6章 7章 8章 9章 10章 11章 それぞれの問題数は 10問 2問 51問 36問 15問 17問 11問 5問 2問 4問 5問 です 変換は Shift-スペースです 章を選択せよ 例: 2章 章 : 9章 第九六条 改正の手続、その公布 この憲法の改正は、各議院の総議員の三分の二以上の賛成で、国会が、これを発議し、国民に提案してその承認を経なければならない。この承認には、特別の国民投票又は国会の定める選挙の際行はれる投票において、その過半数の賛成を必要とする。 条文を入力せよ この憲法の改正は、各議院の総議員の三分の二以上の賛成で、国会が、これを発議し、国民に提案してその承認を経なければならない。この承認には、特別の国民投票又は国会の定める選挙の際行はれる投票において、その過半数の賛成を必要とする。 完璧です! 第九六条 第二項 憲法改正について前項の承認を経たときは、天皇は、国民の名で、この憲法と一体を成すものとして、直ちにこれを公布する。 条文を入力せよ 憲法改正について前項の承認を経たときは、天皇は、国民の名で、この憲法と一体を成すものとして、直ちにこれを交付する。 残念! 違います 正答数は 2 問中 1 問でした かかった時間は 3 分 47 秒でした 「公布」という部分を「交付」と打ち間違えているため間違いとなっている。 < 考察 > 〜すべて間違えた場合〜 pan{c111009}% ./saiko.rb [~/public_html/adv2] 選択した章の条文を日本語で入力していきます 選択できる章は 1章 2章 3章 4章 5章 6章 7章 8章 9章 10章 11章 それぞれの問題数は 10問 2問 51問 36問 15問 17問 11問 5問 2問 4問 5問 です 変換は Shift-スペースです 章を選択せよ 例: 2章 章 : 2章 第九条 戦争の放棄、戦力及び交戦権の否認 日本国民は、正義と秩序を基調とする国際平和を忠実に希求し、国権の発動たる戦争と、武力による威嚇又は武力の行使は、国際扮装を解決する手段としては、永久にこれを放棄する。 条文を入力せよ あああ 残念! 違います 第九条 第二項 前項の目的を達するため、陸海空軍その他の戦力は、これを保持しない。国の交戦権は、これを認めない。 条文を入力せよ あああ 残念! 違います 正答数は 2 問中 0 問でした かかった時間は 0 分 4 秒でした 1.A.d 後期の広告ホームページ http://roy/~c111009/adv2/index.html < 感想 > 2回目の最高傑作の作成となったが、前期よりはデータ数、内容ともに濃いもの となった。前期に曖昧に終わっていた部分が今回の課題作成でしっかりと理解す ることができた。 < 参考文献 > ・日本国憲法 全文 http://kenpo-9.net/constitution/ 追伸:プログラム、企画書、仕様書、データファイル、広告ページを添付します。