08/01/13 07:05:00
詰め込みすぎた
今は反省している
3:デフォルトの名無しさん
08/01/13 18:01:26
乙
4:デフォルトの名無しさん
08/01/13 23:17:57
>>1
乙
5:デフォルトの名無しさん
08/01/14 21:01:58
スレリンク(tech板:8番)
スレリンク(tech板:9番)
スレリンク(tech板:12番)
スレリンク(tech板:22番)
6:デフォルトの名無しさん
08/01/22 23:07:44
宿題まだぁ?
7:デフォルトの名無しさん
08/01/23 10:39:24
ちんちん
8:デフォルトの名無しさん
08/01/23 23:19:14
[1] 授業単元: ネットワークコンピューティング概論
[2] 問題文(含コード&リンク):Google Pagesのようなコンテンツ管理システムを作成しなさい。
[3] 環境
[3.1] OS:GNU/Linux
[3.2] バージョン: Ruby 1.8.6、Rails 1.2.5
[3.3] 言語: Ruby
[4] 期限: 2008年3月20日
[5] その他の制限: Railsの基礎(ActiveRecord、ActionController、ActionView)は習いました。
9:デフォルトの名無しさん
08/01/23 23:28:11
ええええええええええええええええええええええええええ
それ宿題っていうか試験のレベルなのでは…
GooglePagesでできることはやたら多岐にわたるぞ
ユーザーからファイルアップロードとHTML入力を許して
「ユーザー名.サービス.com」なサイトを作らせるシステムを作れってことなのかな
10:デフォルトの名無しさん
08/01/24 00:11:38
金くれるならやるレベル
11:デフォルトの名無しさん
08/01/24 00:23:12
CMSのごく単純なのを作れってことでは。
例としてGooglePagesが挙げられているだけで。
12:デフォルトの名無しさん
08/01/24 00:52:06
>>10
そこをなんとかお願いいたします。m(__)m
>>11
その通りです。Google Pagesはあくまで例とのことです。
言葉足らずで申し訳ありません。
まったく手も足もでない状況です・・・
丸投げで申し訳ありませんが、よろしくお願いいたします。m(__)m
13:デフォルトの名無しさん
08/01/24 01:35:42
ちなみにワンライナーでお願いします
14:デフォルトの名無しさん
08/01/24 02:07:08
デンライナーで勘弁してください
15:デフォルトの名無しさん
08/01/24 20:19:10
とっとりライナーでお願いします
16:デフォルトの名無しさん
08/01/24 21:07:57
ワンライナーで勘弁してください
17:デフォルトの名無しさん
08/01/25 19:12:34
ワカランナイナー
18:デフォルトの名無しさん
08/01/25 21:49:54
やってもいいけど、君はどこ大学?
話はそれからだ。
19:デフォルトの名無しさん
08/01/25 22:14:32
レイルズ使ったこと無いから答えられない
20:8
08/01/26 11:35:03
>>19
じゃあ答えなくて良いです。
他の方よろしくお願いいたします。m(__)m
21:デフォルトの名無しさん
08/01/26 12:18:50
了解
22:デフォルトの名無しさん
08/01/27 14:06:48
URLリンク(rubricks.org)
こいつでいいんじゃね?
23:デフォルトの名無しさん
08/01/27 17:18:38
解決ね。
はい、次の宿題どぞー
24:デフォルトの名無しさん
08/01/28 03:03:18
>>1乙
前スレいつの間に落ちたんだ
>>9
ワロタ
25:デフォルトの名無しさん
08/01/28 03:11:37
Rails tutorial CMSで検索しても以外にない
参考になりそうなところ
Ruby on Rails based CMS in Ruby on Rails
URLリンク(wiki.rubyonrails.org)
26:デフォルトの名無しさん
08/01/28 03:15:33
wikiのtutorialならあるから、それを参考にするのhどう?
wikiもCMSの一種だし
pylori*style: RailsでWikiクローンを作る
URLリンク(tam.qmix.org)
Japan.internet.com デベロッパー - RailsでWikiシステムを作成する
URLリンク(japan.internet.com)
その他参考サイト
RoRのサンプルまとめ - plus ultra blog
URLリンク(ultra.boy.jp)
27:デフォルトの名無しさん
08/01/28 20:03:06
>>8
「金くれたらやるよ」でOK
教授にもう少し勉強しなさいって言っておけ
28:28 ◆B/rqf88wwo
08/01/28 23:57:40
【質問テンプレ】
[1] 授業単元:リダイレクト、正規表現など
[2] 問題文(含コード&リンク):(URLリンク(kansai2channeler.hp.infoseek.co.jp))
[3] 環境
[3.1] OS: (Windows)
[3.2] バージョン: (詳しくは分かりませんが最新のものだと思われます)
[3.3] 言語: (Ruby)
[4] 期限: ([2008年1月30日17:00まで])
[5] その他の制限: (とりあえず正規表現あたりまで)
レポートの期限が明後日に迫って神にもすがる思いです・・・
どなたかお願いします_ _
29:デフォルトの名無しさん
08/01/29 00:07:21
ISBN関連は作ったことあるから回答の半分以上はコピペで済むけど
で、自力ではどこまでできたんだよ
レポートに説明書かないといけないんだから方向くらいは示してくれ
30:デフォルトの名無しさん
08/01/29 00:15:27
とりあえずバージョンの見方ぐらいは覚えておこうな。
ruby -v
31:28 ◆B/rqf88wwo
08/01/29 00:20:38
>>29
「入力が終わりに達するまで1行ずつ読み込む」→while line = gets
「1行分のデータをタイトルと旧ISBN規格のコードを代入する」→split(/,/)
「タイトルをキーとするハッシュをソートする」→.sort!
おそらくこの辺りを使うと思うんですが、全体的な構成が全然見えなくて…
あと「while line = gets」を実行すると「Bad file descriptor」というエラーが出てきてどうも上手くいかないみたいなんです。
32:28 ◆B/rqf88wwo
08/01/29 00:23:29
>>30
これは初めて知りました!
実行してみたら「ruby 1.8.5」と出ました。
33:28 ◆B/rqf88wwo
08/01/29 00:26:08
>>31
正しくは
「1行分のデータをタイトルと旧ISBN規格のコードに分割」→split(/,/)
です
34:デフォルトの名無しさん
08/01/29 00:27:46
ぐぐったら色々出てきた
コーディング規約とか書いてあったけど自分で修正するの?
35:28 ◆B/rqf88wwo
08/01/29 00:52:02
>あと「while line = gets」を実行すると「Bad file descriptor」というエラーが出てきてどうも上手くいかないみたいなんです。
これは自己解決しました!
リダイレクト実行の場合、先頭に「ruby」を付けないとこんなエラーが出るみたいです
36:デフォルトの名無しさん
08/01/29 00:56:13
#! ruby -Ks
# filename : script.rb
# Usage : ruby script.rb < rep1-data.txt
book = Hash.new
while ARGF.gets
title, isbn = $_.strip.chomp.split(",")
isbn = isbn.split(/[\s-]/)
book[title] = isbn
end
p book
ほれハッシュに放り込むとこまで作ったぞ
37:デフォルトの名無しさん
08/01/29 01:01:25
def get_checkdigit13(body)
i = ('978' + body).split(//).map{|v| v.to_i}
checksum = (i[0]+i[2]+i[4]+i[6]+i[8]+i[10])*1 # ISBNの1,3,5,7...桁
checksum = checksum+(i[1]+i[3]+i[5]+i[7]+i[9]+i[11])*3 # ISBNの2,4,6,8...桁
return (10 - checksum.to_s[-1,1].to_i).to_s
end
def get_grouptag(code)
case code
when 0,1 ; return '英語圏'
when 2 ; return 'フランス語圏'
when 3 ; return 'ドイツ語圏'
when 4 ; return '日本'
when 5 ; return 'ロシア'
else return 'その他'
end
end
38:37
08/01/29 01:01:54
list = {}
while line = gets do # run as: ruby report1.rb rep1-data.txt
pair = line.split(/,/)
list[pair[0]] = pair[1]
end
list.keys.sort!.each do |title|
isbn = list[title].split(/\s|-/)
isbn10 = isbn.join('-')
checkdigit13 = get_checkdigit13(isbn[0]+isbn[1]+isbn[2])
isbn13 = "978-#{isbn[1]}-#{isbn[2]}-#{checkdigit13}"
grouptag = get_grouptag(isbn[0].to_i)
puts "#{title.downcase.capitalize},#{isbn10},#{grouptag},#{isbn[1]},#{isbn[2]\
},#{isbn[3]},#{checkdigit13},#{isbn13}"
end
39:デフォルトの名無しさん
08/01/29 01:02:59
>>37-38の実行結果
$ ruby syukudai.rb rep1-data.txt
Idea factory,4-89583-115-9,日本,89583,115,9,4,978-89583-115-4
In the blink of an eye,0-7432-5733-2,英語圏,7432,5733,2,6,978-7432-5733-6
Neko to saru,4-19-850077-0,日本,19,850077,0,1,978-19-850077-1
Probabilidade,2-5216-0294-9,フランス語圏,5216,0294,9,9,978-5216-0294-9
Random variables,98-486-0107-4,その他,486,0107,4,5,978-486-0107-5
Reaction kinetics,4-8079-0532-5,日本,8079,0532,5,4,978-8079-0532-4
Second nature,0-300-12039-7,英語圏,300,12039,7,4,978-300-12039-4
40:37
08/01/29 01:06:21
あ、Emacsからコピペしたときに変なことに
putsのとこは1行で書いてね
そういえばチェックディジットの計算にはmod使えって書いてあったんだっけ
「下1桁を文字列として取る」とか数学的な計算を思いっきり無視してるなスマン
41:デフォルトの名無しさん
08/01/29 01:12:20
ちょwwwww
同じ学類wwwww
そんくらい自分でやれよ!
単位取れても使えなきゃ意味無いぞ!
42:デフォルトの名無しさん
08/01/29 01:18:19
ちなみにワンライナーでお願いします
43:デフォルトの名無しさん
08/01/29 01:21:04
>>41
使わなけりゃ問題はなかんべ
44:デフォルトの名無しさん
08/01/29 01:23:40
学類ってうちの大学かな・・・
45:デフォルトの名無しさん
08/01/29 01:32:56
他に学群学類なんて分け方をしてる大学があったら教えてくれよ。
…まあ、Rubyの産みの親だしな…
46:デフォルトの名無しさん
08/01/29 01:34:12
担当の教官の人がruby-listに投稿したような形跡はあるから、案外ここも見てるかもね
>>44
Tくば大学のハルヒキャンパスだそうな
いや意表ついて本当にハルヒって読むんだったらぼかしにも何にもなってなくてスマンが
47:デフォルトの名無しさん
08/01/29 01:38:26
自力で解説つけろという指定はコピペ可能な提出物の扱いに慣れてる感じがしてさすがに安定感があるな
他の大学でしょぼいとこは真似っこしてみるといいと思う
48:デフォルトの名無しさん
08/01/29 01:44:30
>>46
安心しろ、読み方違うから。
でもしょっちゅうネタになってる…orz
しかし俺の書いたのの半分くらいで作られると、自分の技量の無さがいやと言うほど判って悲しくなってくるぜ
49:デフォルトの名無しさん
08/01/29 01:48:27
def cd(c);(10-[0,2,4,6,8,10].inject{|v,i|v+c.split(//).map{|e|e.to_i}[i]}+3*[1,3,5,7,9,11].inject{|v,i|v+c.split(//).map{|e|e.to_i}[i]}%10)%10;end
p cd('897'<<'0743257332') #=>6
よっしゃー^^;
どんなもんじゃー!
50:デフォルトの名無しさん
08/01/29 01:54:59
>>48
調べながら書いたので技量はたいしたことない
whileとgetsの使い方なんてエラー出たからマニュアル見て書き換えたくらいで全く覚えてないぞ
51:デフォルトの名無しさん
08/01/29 01:55:43
課題曰く、「可読性も採点対象」だそうな
52:デフォルトの名無しさん
08/01/29 03:22:11
日日な俺も暇だから作ってみたぜ
def check_digit(dig)
dig = dig.to_s.scan(/\d/).map{|c| c.to_i}
n = (0 .. 5).inject(0){|x, y| x += dig[y*2] + 3 * dig[y*2+1] }
return (10 - n % 10) % 10
end
def group_name(group)
Hash[0, '英語圏', 1, '英語圏', 2, 'フランス語圏', 3, 'ドイツ語圏', 4, '日本', 5, 'ロシア'][group[0, 1].to_i] or 'その他'
end
ARGF.each do |line|
title, isbn = line.strip.split(',')
title = title.split(' ').map{|w| w.capitalize}.join(' ')
isbn = isbn.gsub(' ', '-')
group, pub, book, cd = isbn.split(/[-]/)
cd2 = check_digit('978' + group + pub + book)
isbn2 = ['978', group, pub, book, cd2].join('-')
puts [title, isbn, group_name(group), pub, book, cd, cd2, isbn2].join(',')
end
53:デフォルトの名無しさん
08/01/29 03:25:27
アルファベット順にソートすんのわすれたけど面倒くさいからもういいぜ
54:デフォルトの名無しさん
08/01/29 03:27:55
最後らへんのputsを削除して
ARGF.each do ... end を puts ARGF.map do ... end.sort
にするだけな気がするけど面倒くさいから試さないぜ
55:デフォルトの名無しさん
08/01/29 11:47:07
>>47
>>37-38をコピペしたら「本当はわかってない」のが丸わかりだろうな
コメントや解説の強制はなかなか効果的だ
56:28 ◆B/rqf88wwo
08/01/29 11:48:04
>>36-39
>>52
みなさんありがとうございます!
大変助かりました。
大いに参考にさせていただきます!
57:デフォルトの名無しさん
08/01/29 12:10:05
>>55
でもまあ動作するスクリプトが目の前にあれば自力ででも作りやすいだろ
コピペで済ますのも自由だしな
58:デフォルトの名無しさん
08/01/29 14:42:24
教えて欲しい問題があります!
データベースに登録した同じ次元のベクトルをコサイン尺度によって類似度を求めたいのですが,
コサイン尺度のプログラムが書けなくて困ってます!
以下がコサイン尺度の数式です.
cos(dj,q)
=(Σ_[i=1, m] dij*qi)/(√(Σ_[i=1, m] dij^2)^(1/2)) * (√(Σ_[i=1, m] qi^2)^(1/2))
※q=検索質問ベクトル,dj=各文書ベクトル
となっています.
また,dj*q はベクトル間の内積を表していて,
dj*q = Σ_[i=1, m] dij*qi
となってます.
少し複雑な計算式ですが,とりあえず書いてみました.
Railsのスレで質問したのですがこのスレの方が良いと言われたので書き込みました.
どなたかRubyになおしてもらえるならお願いします(×_×)
59:デフォルトの名無しさん
08/01/29 18:00:30
おらすうがくっちゅーもんがかいもくわからんですたい。
60:デフォルトの名無しさん
08/01/30 03:13:17
どこが分らんのか分らん。単なるベクトルの計算を地道にやればいいんじゃないの?
require'matrix'してVectorクラス使ってみれば。あとはmathnとか必要に応じて
dj*qは(dj.covector*q)[0]くらいでいけるんじゃね
61:デフォルトの名無しさん
08/01/30 03:27:39
ああ内積のメソッドあったわ・・・
dj*q=dj.inner_product(q)
絶対値もあったわ・・・
(Σ_[i=1, m] dij^2)^(1/2)=dj.r
62:デフォルトの名無しさん
08/02/01 22:52:41
質問テンプレ】
[1] 授業単元:クラス、正規表現、ファイル入出力
[2] 問題文(含コード&リンク):
現在の年月日を取得し「2008年02月02日」のように
表示しテキストファイルAに出力しなさい。
コマンドラインから日時を入力し、
テキストファイルAをスキャンして
マッチした一行をテキストファイルBに出力。
また自分の生年月日をコマンドラインに出力し、
現在の日時から生年月日を引いたものも表示しなさい。
[3] 環境
[3.1] OS: (unix)
[3.2] バージョン: (Ruby 1.8.6 )
[3.3] 言語: (Ruby)
[4] 期限: [2008年02月02日07:00まで]
[5] その他の制限:クラスを利用。
:出来るだけ簡単なクラス、メソッドの利用
コマンドライン表示 例
ーーーーーーーーーーーーーーーー
現在時刻 2008年02月02日
生年月日 2000年01月01日
生きてる年数 8年01月01日間
ーーーーーーーーーーーーーーーー
時間の取得とファイル入出力はできるのですが,
クラスでメソッドを定義しファイル入出力をしようとすると
上手く行きません.見本をどなたかお願いします,
初心者の質問でもうしわけないのです,よろしくお願いします,
63:デフォルトの名無しさん
08/02/02 00:05:56
問題がよくわからない。
「2008年02月02日」をテキストファイルAに出力し、
コマンドラインから「2008年02月02日」とか入力して、
テキストファイルAに「2008年02月02日」という行があったら
それをテキストファイルBにコピーするという意味か?
どういう処理なんだかよくわからない。
あと何がうまくいかないんだかよくわからないから
うまくいかないソースを提示したらどうだ。
丸投げで全部書いてくれってのはよくない。
64:デフォルトの名無しさん
08/02/02 00:41:28
ハルヒキャンパスでこのスレ一番上にくるwwwwwワロス
>>49すげえw
65:デフォルトの名無しさん
08/02/02 00:51:09
ていうかハルヒキャンパスなんて名称を聞くと
時代だなあ・・・って思ってしまう
俺のいたころ(つっても数年前だが)には
まだハルヒとかなかったもんな
66:デフォルトの名無しさん
08/02/02 06:57:38
>>63
いや、そのまんまの処理だと思うが…
たった1行書き出してたった1行読み込んでたった1行マッチさせてたった1行を再書き出し
もっと実利に即したわかりやすい課題にしろよとは思うが適当に課題出せばこんなもんだろ
>>62
クラスとメソッドを自力で定義してよいという課題な時点で回答は無限に存在する
ぜんぜん理解できないスゴい代物が返ってくる可能性があるので、
どの部分をクラスにしてどの部分をメソッドにする気なのか口頭でいいから教えてちょ
67:デフォルトの名無しさん
08/02/02 07:03:00
って、期限過ぎちゃったのか
68:デフォルトの名無しさん
08/02/02 07:30:00
てか、ギリギリしぎだろw
69:デフォルトの名無しさん
08/02/02 07:58:30
こりゃ課題出した先生が悪い
だってつまんないんだもん^^;
70:デフォルトの名無しさん
08/02/06 17:12:21
>>66
ありがとうございます。
初心者ですみません><
どの部分をクラス、メソッドにすれば一番理解しやすいものに
なるのでしょうか。解説つけることも課題の内なので、理解しやすいもので
お願いします。
「どの部分をクラスにしてどの部分をメソッド」というのにすごく驚きました。
そんなに無限にできるのですか?@@
71:デフォルトの名無しさん
08/02/06 20:26:05
>>70
ひとつポリシーの質問なんだが
2000年6月15日に生まれて、今日が
2001年9月20日だった場合、生きてる期間は1年と3月と5日だよな
じゃあ今日が
2001年3月14日だった場合は何年と何月と何日だと思う?
72:デフォルトの名無しさん
08/02/06 22:01:44
年月日の引き算は意外とめんどい
そのぶん、普段頭の中でやってる計算をプログラムとして書き下すという訓練には適してるけど
73:デフォルトの名無しさん
08/02/06 22:06:09
閏年とか計算するともうね。
74:デフォルトの名無しさん
08/02/07 10:17:58
>>71
すみません。
うるう年とか、31日とかは気にせず、30日で
計算で大丈夫です。
75:sage
08/02/07 10:42:29
de = nil ←1
while true
begin
case de
when nil
de = gets
next
when 'l' then puts "X"
end
rescue
puts $!
end
de = nil ←2
end
今いろいろなソースを読んでいるのですが、
上記の1と2がわかりません。説明をお願いします。
また、
76:デフォルトの名無しさん
08/02/07 11:01:34
1は、その代入で、de というローカル変数が存在するようにしている、
2は、de が指している文字列オブジェクトが参照されなくなるようにしている、
のだと思う。
77:デフォルトの名無しさん
08/02/07 12:22:19
>>75
begin
while de = gets do
puts 'X' if de == 'l'
end
rescue
puts $!
end
たぶんこういう標準入力ループをやりたかったのだろうと推測
while trueを使うことはRubyではあまりない
nilの理解はしてるかな
Rubyで偽を表す特別な値だ
値の一度も入ってないローカル変数を参照することはできないから、
「仮に」nilを入れておくということをRubyではよくやる
それが1なんだが、「エラーが出たから書きました」的投げやり感が…
78:デフォルトの名無しさん
08/02/07 13:02:36
>>74
require 'date'
class Date
def to_s
return self.strftime("%Y年%m月%d日")
end
def passed_from(base)
d = self.day - base.day
if d < 0 then
d = d + 30; sage_m = 1 # 本当は30とは限らない
else
sage_m = 0
end
m = self.month - base.month - sage_m
if m < 0 then
m = m + 12; sage_y = 1
else
sage_y = 0
end
y = self.year - base.year - sage_y
if y < 0
puts 'エラー!:生年月日が今日より先です'
exit
end
return "#{y}年#{m}月#{d}日"
end
end
79:デフォルトの名無しさん
08/02/07 13:03:05
class MyFile
def initialize(filename)
@file = filename
end
def save(text)
File.open(@file,'w'){|f| f.puts(text)}
end
def grep(text)
matched = Array.new
File.open(@file,'r').each{|line|
matched.push(line) if line.chomp =~ Regexp.new(text)
}
return matched
end
end
80:デフォルトの名無しさん
08/02/07 13:03:59
file_a = MyFile.new('A.txt')
file_b = MyFile.new('B.txt')
today = Date.today
my_birthday = Date.new(1995,7,7)
puts "現在時刻\t#{today}"
file_a.save(today)
file_b.save(file_a.grep(ARGV[0]))
puts "生年月日\t#{my_birthday}"
puts "生まれてから\t#{today.passed_from(my_birthday)}"
81:デフォルトの名無しさん
08/02/07 13:07:23
>>78-80をくっつけて実行
$ ruby kadai.rb 2008年02月07日
現在時刻 2008年02月07日
生年月日 1995年07月07日
生まれてから 12年7月0日
$ cat A.txt
2008年02月07日
$ cat B.txt
2008年02月07日
暇な人がもっと簡単にしてくれるはず
sage_mはmonthの繰り下がり、sage_yはyearの繰り下がり
82:デフォルトの名無しさん
08/02/07 16:26:11
よしじゃあ俺も・・・
class Time
def to_s; strftime('%Y年%m月%d日'); end
end
class Days
def initialize(sec)
mo, d, h, m, s = 12, 30, 24, 60, 60
@y = (sec / s / m / h / d / mo).to_i
@m = (sec / s / m / h / d ).to_i % mo
@d = (sec / s / m / h ).to_i % d
end
def to_s; sprintf('%d年%02d月%02d日間', @y, @m, @d); end
end
83:デフォルトの名無しさん
08/02/07 16:26:33
today = Time.now
puts '現在時刻 ' + today.to_s
open('a.txt', 'w'){|fp| fp.puts today}
open('b.txt', 'w'){|fp| fp.puts File.readlines('a.txt').grep(gets)}
birthday = Time.local(2000, 1, 1)
age = Days.new(today - birthday)
puts '生年月日 ' + birthday.to_s
puts '生きてる年数 ' + age.to_s
84:デフォルトの名無しさん
08/02/07 16:28:41
$ ruby kadai.rb
現在時刻 2008年02月07日
2008年02月07日
生年月日 2000年01月01日
生きてる年数 8年02月19日間
二行目が入力するとこね
あと年数計算は一月30日、一年360日で適当だからな
85:デフォルトの名無しさん
08/02/07 18:15:47
で、fpって何の意味?
86:デフォルトの名無しさん
08/02/07 18:42:14
File.open('a.txt', 'w'){|f| f.puts today}
と f で書く癖をつけておくと後々幸せになれるかと思われ
87:デフォルトの名無しさん
08/02/07 19:02:47
Rubyだとファイルポインタじゃなくてファイルオブジェクトだからfが妥当な気がすま
88:デフォルトの名無しさん
08/02/07 22:31:18
fp は FILE *fp のことかと。 C言語のころのクセなんだろう
Rubyでは意味的に >>87でいいと思われる
89:デフォルトの名無しさん
08/02/08 07:55:15
ifp と ofp みたいにした場合、単に f にしてると if でかぶるから、
fp にしてるのって俺だけ?
90:デフォルトの名無しさん
08/02/08 08:23:14
俺はその辺わけてるわ。
>>86みたいに使い捨ての場合は f、
inとoutがあるばあいは、input、outputとちゃんと書く
91:デフォルトの名無しさん
08/02/08 11:32:09
>>77
ありがとうございます。
これをいくつかに分岐させるとしたら。
while de = gets do
if de == 'l'
puts 'X'
else de =='V'
puts 'Y'
end
てな感じでよいのでしょうか?
92:デフォルトの名無しさん
08/02/08 11:39:46
>>89
inとoutでいいじゃん
IOっぽいし長くても3文字だし
inやoutをデータ変数名に使ってて紛らわしくなるとか口走ったら百叩きで
>>91
Rubyにおいてはif文の連結はelisfを使う
あるいはcaseを使ってもいい
いちいち聞いてると埒あかないから適当なRuby入門サイトでも見て勉強するといい
93:デフォルトの名無しさん
08/02/08 13:32:54
>>92
はい。
elisf調べてみます。
94:デフォルトの名無しさん
08/02/08 16:05:16
今ごろ泣いてそうだが elsif な
初心者用解説サイトくらい見ながらやったほうが時間の節約にもなるというのは同意
必要なくなったら忘れりゃいいんだし
95:デフォルトの名無しさん
08/02/08 18:25:07
>>92
> inやoutをデータ変数名に使ってて紛らわしくなるとか口走ったら百叩きで
紛らわしいどころか、inは予約語だよ。
96:デフォルトの名無しさん
08/02/08 21:49:45
for i in (1..3) do puts "inは予約語だお" end
97:デフォルトの名無しさん
08/02/11 17:08:01
プログラム(アルゴリズム)の性能評価をしたいんですが、
Rubyのコード内でメモリ消費量やステップ数の計算・表示はできるんでしょうか?
また普通どういう方法でおこなうのでしょうか?
98:デフォルトの名無しさん
08/02/11 17:28:15
それはできません
99:デフォルトの名無しさん
08/02/11 19:16:24
>>97 プロファイリングを使う
100:デフォルトの名無しさん
08/02/11 19:42:40
メモリ消費量やステップ数の表示ってできたか?
101:デフォルトの名無しさん
08/02/11 19:48:57
URLリンク(builder.japan.zdnet.com)
これ?
102:デフォルトの名無しさん
08/02/11 20:01:33
お、なんぞこれ、と思ったがgem提供か
gem install なんとか で
Bulk updating Gem source index for: URLリンク(gems.rubyforge.org)
と表示して数分止まるのはどうにかならんもんかね
っていうかこのとき何してるんだ
103:デフォルトの名無しさん
08/02/11 21:04:53
>>102
gem遅いよねえ
たぶん、毎回、URLリンク(gems.rubyforge.org) からYAMLまるごともってきてるからだと思う。
gems鯖側でDBにしてクエリーなげればいいんだろうけどな
104:デフォルトの名無しさん
08/02/11 21:08:35
> URLリンク(gems.rubyforge.org)
スゲエ
スクロールしてもスクロールしても先が見えねえ
105:デフォルトの名無しさん
08/02/11 21:24:37
せめて圧縮するとか
106:デフォルトの名無しさん
08/02/11 21:45:48
$ wget -S --spider URLリンク(gems.rubyforge.org)
--21:43:05-- URLリンク(gems.rubyforge.org)
=> `yaml'
gems.rubyforge.org をDNSに問いあわせています... 205.234.109.19
gems.rubyforge.org[205.234.109.19]:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています...
1 HTTP/1.1 200 OK
2 Date: Mon, 11 Feb 2008 12:43:08 GMT
3 Server: Apache
4 Last-Modified: Mon, 11 Feb 2008 10:24:05 GMT
5 ETag: "698ba3-f43fad-445df56e95b40"
6 Accept-Ranges: bytes
7 Content-Length: 16007085
8 Keep-Alive: timeout=3, max=100
9 Connection: Keep-Alive
10 Content-Type: text/plain
200 OK
むっちゃプレーンめっちゃプレーン
プレーン以外の選択肢がない…えーと、じ、16MB…?
107:デフォルトの名無しさん
08/02/11 22:04:09
>>104
ワロス
どっかの円周率のサイト思い出した
108:デフォルトの名無しさん
08/02/12 00:47:18
gemが数十ていどだったときは良かったんだけどね。
そろそろgentooのportageみたいに細かく分ける方式にしたほうがいいね。
109:デフォルトの名無しさん
08/02/12 20:53:12
>>104
HAHAHA!
こいつはクレイジーだぜ!
開いただけでfirefoxが112MBもメモリ喰ってる
110:デフォルトの名無しさん
08/02/14 09:52:31
>107
円周率のサイトは無限に続いてたんだっけ?
111:デフォルトの名無しさん
08/02/14 09:58:25
現在の記録、確か1兆桁越えてたっけ?
無限じゃないにしろ、ふつう表示しきれない。
112:デフォルトの名無しさん
08/02/15 01:54:15
宿題かもーん。
113:デフォルトの名無しさん
08/02/15 13:49:30
せっかくだし初学者にもためになるゲームでも作りながら待機しようぜ
114:デフォルトの名無しさん
08/02/15 14:22:44
じゃんけんは前スレで作ったな
○×ゲームも作った覚えがある
3分タイマーとかも作ったっけか
115:デフォルトの名無しさん
08/02/15 17:18:33
オセロとか?
116:デフォルトの名無しさん
08/02/15 18:10:29
Matz並べ
117:デフォルトの名無しさん
08/02/16 03:03:06
やっぱまだまだRubyを教材に使う学校は少ないのかねぇ。
118:デフォルトの名無しさん
08/02/16 03:19:25
鳥取大学もプログラミングの講義の1つにRubyを使ってたけどカリキュラム変更で無くなった><;
CGI使ったクライアント<->サーバの実習みたいなのではRuby使ったけど。
119:デフォルトの名無しさん
08/02/16 03:54:13
>>116
先手、Matzで
Ruby│ │
─┿─┿─
│ │
─┿─┿─
│ │
120:デフォルトの名無しさん
08/02/16 04:18:27
Ruby│Rutile │
─┿──┿─
│ │
─┿──┿─
│ │
121:デフォルトの名無しさん
08/02/16 13:33:10
Ruby│Rutile │
─┿──┿─
│Ruby │
─┿──┿─
│ │
122:デフォルトの名無しさん
08/02/16 13:35:07
Ruby│Rutile │
─┿──┿─
│Ruby │
─┿──┿─
│ │ Ruby
123:デフォルトの名無しさん
08/02/16 13:36:14
Ruby│Rutile │
─┿──┿─
│Rutile │
─┿──┿─
│Rutile │
124:デフォルトの名無しさん
08/02/16 14:19:13
URLリンク(ruby-sapporo.org)
125:デフォルトの名無しさん
08/02/16 16:20:38
>>124 thx
126:デフォルトの名無しさん
08/02/16 18:19:24
Hi all.
What is Rutile??
I don't know.
127:デフォルトの名無しさん
08/02/18 02:23:54
>126
ルビーもルチルも宝石名かつBL誌名
128:デフォルトの名無しさん
08/02/19 07:13:52
>>127
Thanks. I like BL too.
u r a best friend.
129:デフォルトの名無しさん
08/02/20 00:06:31
宿題かもーん。
130:デフォルトの名無しさん
08/02/23 18:49:39
[1] 授業単元:2chの書き込み(よくわからないけどこれでいいのかな)
[2] 問題文(含コード&リンク):net/httpで2chに書き込むソースを作ってください。こちらも作っていますが日付関連でうまくいきません。
cookieが expires=Friday, 01-Jan-2010 00:00:00 GMT; ですごいおかしいです。
[3] 環境
[3.1] OS:Mac,Bash
[3.2] バージョン:Ruby1.8.2
[3.3] 言語: Ruby
[4] 期限:無期限。できれば日曜まで
[5] その他の制限: net/httpを使ってください、コメントありで,UTF8。kconvを使って変換してください。
131:デフォルトの名無しさん
08/02/23 18:55:37
>>130
そんな2ch的に危なっかしいものこっちからホイホイ出せるか(w
あと、Cookieとか2chとかに関する勉強が足りないように見える
それのどこがそんなにおかしいのかさっぱりわからない
132:デフォルトの名無しさん
08/02/23 19:01:18
>>131
ERROR:ブラウザを立ち上げ直してみてください。
とりあえず,
Set-CookiesをそのまんまCookiesヘッダにセットしないで、
Datを取得したときのDateヘッダーをexpiresにセットしても同じで、
expiresを消去しても無効。
どうすればいいんだろうか
133:デフォルトの名無しさん
08/02/23 19:29:46
>>132
> とりあえず
なんでそんなこと場当たり的に試す必要があるんだよ
2chへの書き込み方法はきちんと形式が決まってるだろ
134:デフォルトの名無しさん
08/02/23 19:49:37
1.8.2って何かバグあったっけ?
書き込むがShiftJISでないのに一票
135:デフォルトの名無しさん
08/02/23 20:15:39
>>130
> [1] 授業単元:2chの書き込み(よくわからないけどこれでいいのかな)
この問題は、自力で解決できないやつは質問不可。
136:デフォルトの名無しさん
08/02/23 20:29:33
できたです。
Cookieじゃなくて、POSTのtimeがおかしかった模様。
すいません><
ちなみにKConv.tosjisつかってます
最初はURL間違ってたとかで初歩的だった。
それをなおしたらこれだったんだけど。
Rubyでlocaltimeというの?microtimeだっけ?取得するのはどうやるんだろう
137:デフォルトの名無しさん
08/02/23 21:09:16
>>30
2chブラウザ開発資料
URLリンク(info.2ch.net)
2ちゃんねるの仕様
URLリンク(www.monazilla.org)
Rubyで書かれた2chブラウザ(古いので鼻捥げには未対応と思われ)
URLリンク(www.unixuser.org)
138:デフォルトの名無しさん
08/02/24 06:04:08
2chブラウザでも作ってるっていうんだろうが、
スクリプトで2ch書き込みって時点で危なっかしくて答えられねえよw
139:デフォルトの名無しさん
08/02/24 06:31:39
GoRuaってRubyの2ちゃんブラウザのコードを読んでみれば?
140:140 ◆.DxfZ0s0HA
08/02/26 20:20:04
【質問テンプレ】
[1] 授業単元:GUI等
[2] 問題文(含コード&リンク):(URLリンク(www.dotup.org))
[3] 環境
[3.1] OS: (Windows)
[3.2] バージョン: (1.8.5)
[3.3] 言語: (Ruby)
[4] 期限: ([2008年2月29日17:00まで])
[5] その他の制限: (必ずGUIを用いる)
途中できたところまでのソースも入れてあります。
どうしてもGUIを用いる段階で引っかかっています。
よろしくお願いします。
141:28 ◆B/rqf88wwo
08/02/26 20:20:42
ちなみに>>140のDLパスは「rep」です。
142:デフォルトの名無しさん
08/02/26 20:29:50
tk使うんじゃねか
143:デフォルトの名無しさん
08/02/26 20:33:10
ま
た
○
く
ば
の
ハ
ルヒか
授業見てねーからGUIに何使ってるかわからんので答えられないぞ
しかし微妙にレベルがハイで面白そうな演習してるな
144:140 ◆.DxfZ0s0HA
08/02/26 20:45:19
>>142-143
GUIにtk使うことは確実なんですが…
上手く動作しませんがフォーマットだけはなんとか作れました。
あとはこれで動作するようになればいいのですが…
URLリンク(www.dotup.org)
DLパス:rep
145:デフォルトの名無しさん
08/02/26 23:58:09
これ自分で書いたコード?
見栄えはきっちり書いてるみたいなのにチグハグなところがいっぱいあるんだけど。
146:140 ◆.DxfZ0s0HA
08/02/27 00:10:49
>>145
前に自分で書いた2つの別のコードを組み合わせて作りました。
一部整合性つけるために直した(defの部分など)つもりなんですが…
あとどこを直せば上手く動くのかが見当つかなくて…
147:デフォルトの名無しさん
08/02/27 00:45:33
URLリンク(www2.uploda.org)
定義した関数が
in:標準入力
out:標準出力
のままじゃん
in: 検索語
out: 検索結果
に変更汁
148:デフォルトの名無しさん
08/02/27 00:52:15
ていうかGUIは一旦忘れたほうがいい
引数を受け取って結果を返すメソッドとか作れ
メソッドを作った後にボタン押すと引数が入って結果が画面に表示されるように切り替えればいい
そんな丁寧にやってたら間に合わないかもしれないけれど
149:デフォルトの名無しさん
08/02/27 09:31:30
>>140
# 1/2 : GUI 構築
require 'tk'
label = TkLabel.new(nil,:text=>'検索文字列入力')
label.pack(:side=>:top,:fill=>:x)
$entry = TkEntry.new(nil)
$entry.value = '検索文字列を入力'
$entry.pack(:side=>:top,:fill=>:x)
meta = TkButton.new(nil,:text=>'メタデータから検索')
meta.pack(:side=>:top)
text = TkButton.new(nil,:text=>'本文全体から検索')
text.pack(:side=>:top)
view = TkButton.new(nil,:text=>'ファイルの中身を表示')
view.pack(:side=>:top)
scr = TkScrollbar.new(nil)
$text = TkText.new(nil)
scr.command = '%s yview'%$text.path
$text.yscroll = '%s set'%scr.path
scr.pack(:side=>:left,:fill=>:y)
$text.pack(:side=>:left,:fill=>:both)
# 後半へ続く
150:デフォルトの名無しさん
08/02/27 09:33:10
>>140
# 2/2 真ん中のボタンの処理 : メインループ
text.command = proc {
$text.delete('1.0',:end)
pattern = $entry.value
re = Regexp.new(pattern)
Dir.glob('*.txt') do |filename|
file = File.read(filename)
if file =~ re
meta = file.split("\r\n")[0,2]
meta << filename
$text.insert(:end,meta.join(','))
$text.insert(:end,"\n")
end
end
}
# 上下のボタンは自分で作れるだろ?
meta.command = nil
view.command = nil
#
Dir.chdir('/tmp/aozora')
Tk.mainloop
# 以上
151:149-150
08/02/27 11:22:58
いくつか訂正
・Tk---.new(nil,...) の nil を削除(あっても問題ないけど)
・テキストとスクロールバーを同期させる部分
scr.command $text.yscroll -> $text.yscrollbar(scr)
・実害はないけど被ってる変数名(metaとか)は適当に変更
あと青空文庫からテキスト落してみたけど、作品によって題名、
著者名(、原題、副題、翻訳者等)の並びが違う
検索結果が期待した表示にならないケースが結構あると思う
152:その1/2 Viewクラス(ユーザーインターフェースの役割)
08/02/27 11:45:22
#!ruby -Ks
require "tk"
class View
def initialize
TkRoot.new(:title=>"宿題")
@briefLabel = TkLabel.new(:text=>"検索文字列入力")
@InputEntry = TkEntry.new(:textvariable=>"検索文字列を入力")
@searchMetaButton = TkButton.new(:text=>"メタデータから検索")
@searchBodyButton = TkButton.new(:text=>"本文全体から検索")
@displayFileButton = TkButton.new(:text=>"ファイルの中身を表示")
@scrollbar = TkScrollbar.new
@resultTextArea = TkText.new
@resultTextArea.yscrollbar(@scrollbar)
@resultTextArea.font = TkFont.new({:family=>"MS Pゴシック", :size=>12})
self.pack
return self
end
def pack
@briefLabel.pack( :side=>:top, :fill=>:x)
@InputEntry.pack( :side=>:top, :fill=>:x)
@searchMetaButton.pack( :side=>:top, :fill=>:x)
@searchBodyButton.pack( :side=>:top, :fill=>:x)
@displayFileButton.pack(:side=>:top, :fill=>:x)
@scrollbar.pack( :side=>:right, :fill=>:y)
@resultTextArea.pack( :side=>:bottom, :fill=>:both, :expand=>true)
end
def connect(outlet, action)
outlet.command = proc{method(action).call}
end
end
153:その2/2 Controllerクラス(UIと手続きの関連付け)
08/02/27 11:46:57
class Controller < View
def initialize
super
connect(@searchMetaButton, :searchMeta)
connect(@searchBodyButton, :searchBody)
connect(@displayFileButton, :displayFile)
end
def searchMeta
pattern = @InputEntry.textvariable.value
result = ""
Dir.glob("**.rb"){|filename|
io = File.open(filename)
title = io.gets.chomp; author = io.gets.chomp
io.close
result << "#{title} #{author} #{filename}\n" if author.include?(pattern)
}
@resultTextArea.value = result
end
def searchBody
puts "ここに処理を書くよ"
@resultTextArea.value = "ここに処理を書くよ"
end
def displayFile
filename = @InputEntry.textvariable.value
text = File.open(filename){|io|io.read} if FileTest.exist?(filename)
@resultTextArea.value = text
end
end
# メイン処理
Controller.new
Tk.mainloop
154:デフォルトの名無しさん
08/02/27 13:39:56
なるほど、「乗っかってる」ようなイメージで継承使ってるのね
Tk部品部分と内部検索処理部分でどうやってデータ受け渡そうかとか悩むのが軽減される
155:140 ◆.DxfZ0s0HA
08/02/27 17:32:44
>>147-153
皆さん本当にありがとうございます!
ところで>>149-150は最初のdefの後に続ければいいのでしょうか?
156:149-
08/02/27 18:13:30
>>155
>>149 と >>150 を連結して ruby -Ks 149+150.rb で実行できるはず
最初の def てのは r2-1.rb の fileread のことかな?
適当に書き換えて「メタデータで検索」の中身に使うといいよ
>>153
Controller 内のメソッドは文字列を返すだけにして
connect で定義する proc を
{
input_string = @InputEntry.textvariable.value
@resultTextArea.value = method(action).call(input_string)
}
にすれば tk を分離できるね
157:140 ◆.DxfZ0s0HA
08/02/27 20:33:54
>>156
とりあえず、>>149と>>150を連結してそのまま実行してみたんですが「本文全体検索」は問題なく実行できました。
ただ、「メタデータから検索」ができないんですけどどのようにすればよいのでしょうか…?
あと
>・テキストとスクロールバーを同期させる部分
>scr.command $text.yscroll -> $text.yscrollbar(scr)
の部分はどこに挿入すればいいのでしょうか?
158:デフォルトの名無しさん
08/02/27 21:00:07
少しは自分で考えとかないと、これからの課題の負担が膨大になるぞ
俺たちは授業受けてないんだから、自分からテンプレートくらい出せないと
「明らかに授業と違うプログラム」を提出し続ける羽目になる
それがどう評価されるかは自明だ
てか、改造する心の余裕くらいは持ってほしい所存
159:デフォルトの名無しさん
08/02/27 21:03:10
Ruby/Tkは同じ処理で書き方が山のようにあるから、授業で受けた形式に整えておかないと不審
>>157
それぞれがどういう処理してるかは読める?
160:140 ◆.DxfZ0s0HA
08/02/27 21:10:33
>>159
はい、なんとなくは…
meta.command(上のボタンの処理)とview.command(下のボタンの処理)に付け加える
必要があることは分かります。
ただそのままここでdefを使用しても動作しないみたいで…
161:デフォルトの名無しさん
08/02/27 21:18:36
Ruby/Tkの部品に対する動作、commandはProcオブジェクトである必要がある
defで定義したメソッド名をそのまま指定しても動作しない
Proc.new{ }の中身はいわゆるふつーのRubyスクリプトでよい
変数は「その場」で有効なスコープの変数が使える
どうでもいいけど$entryとか$textとかはグローバル変数でなくてもいいような希ガス
meta.command = Proc.new{ metasearch($entry.value) }
...
def metasearch(search_str)
# search_strをてきとうにけんさく
end
162:デフォルトの名無しさん
08/02/27 21:31:12
てか、metasearchを実行するたびに全ファイルを読み込むのは非常にアレだな
課題として可能なら起動時に@databaseとかにメタデータ部分を保管しておくといいのかもしれん
163:140 ◆.DxfZ0s0HA
08/02/27 22:00:12
>>161
def search(pattern)
result = ""
Dir.glob("//kikyo/home1/saka/pub/data/aozora-portion/*_*_*.txt){|filename|
io = File.open(filename)
title = io.gets.chomp
author = io.gets.chomp
io.close
result << "#{title} #{author} #{filename}\n" if author.include?(pattern)
}
return result
end
meta.command = Proc.new{search($entry.value)
pattern = $entry.value
label.text(pattern)
text.value = search(pattern)
}
これを>>149-150に新たに付け加えてみたのですが上手く動作しません…
どこがおかしいのでしょうか?
164:デフォルトの名無しさん
08/02/27 22:32:26
>どうでもいいけど$entryとか$textとかはグローバル変数でなくてもいいような希ガス
あれ?ほんとだ、なに勘違いしてたんだろ
>>163
saerch を二回呼んでるのは御愛嬌として
・Tk.mainloop 以下の記述は無効(未処理)
・ファイル名が glob のワイルドカードと一致していない
・文字コードが sjis に統一されていない
・副題、原題等がある時 search は正しく動作しない
くらいかな
165:140 ◆.DxfZ0s0HA
08/02/27 22:49:46
>>164
やっぱりここでdefは使わない方がいいのでしょうか…?
混乱してきましたw
166:140 ◆.DxfZ0s0HA
08/02/27 23:04:13
>>158
ちなみに普段の授業ではこういう形式で習っています。
以下はプログラムの1例です。
#! ruby -Ks
require("tk")
def fileread(filename)
io = open(filename, "r")
str = ""
while line = io.gets
str.concat(line)
end
io.close
return str
end
label = TkLabel.new
label.text("ここにファイル名が表示されます")
label.fg("black")
label.pack("fill"=>"x")
button.text("ファイル読み出し")
……
……
……
button.command{
filename = entry.value
label.text(filename)
text.value = fileread(filename)
}
Tk.mainloop
167:デフォルトの名無しさん
08/02/27 23:10:08
defはそのメソッドの使用前の部分にまとめておけ
Tkのパーツに対する初期的指示はTkナントカ.newから.packの間に書いておけ
あと、メソッド単体でも動作するようにしてからTkに組み込め
どこでエラーが発生してるのかわけがわからなくなるから
それと、手を抜くためにも授業は受けておけ
授業を受けておけば授業込みで3時間くらいでパクれるものが、授業を聞かないがために1日以上掛かる
168:デフォルトの名無しさん
08/02/27 23:13:35
授業って言っても、ほとんど自習みたいなもんなんだけどね
テキストが与えられて、10個くらいの課題をこなす。
そのうち1つが必須になっていて、そこまでできたら見せに行く。
教授とTAがいるから、わからない部分があれば質問できる。
2コマなんだが、さっさと終わらせて1コマ目で出て行くやつも多いし。
169:140 ◆.DxfZ0s0HA
08/02/27 23:17:11
>>167
授業は受けてるんですけど今回のプログラミングの教師があんまり説明をしてくれないもので。。
ほとんど自学状態なんですよ…
ほんとに初心者ですいません。
残りの上のボタンの処理(メタデータから検索)と下のボタンの処理(ファイルの中身を表示)もご教授お願いしますm(_ _)m
170:デフォルトの名無しさん
08/02/27 23:25:35
>>163のsearchはこれで一応メタデータの検索できねーか
glob先のファイルパスの先頭に//が2つあるのが若干謎だが
あ、そうか、これじゃエラーで動かねえな
Dir.globの引数はglobな文字が入った文字列だがこれじゃ文字列になってない
実行エラーの見かたとか習ってないん? 行数が表示されるからそのへんがおかしいとか
どこがおかしいのか見当もつかないようではちょっとミスっただけで延々全部検証する羽目になるぞ
171:デフォルトの名無しさん
08/02/27 23:32:55
>>163 の内容をソースの最後に追加してないか?
Tk.mainloop 以下の記述はウインドウ閉じるまでは実行されないぞ
あと、ファイルの表示はまんま >>166 だろ
172:その2/2 Controllerクラス(UIと手続きの関連付け)
08/02/28 03:53:05
#!ruby -Ks
require "tk"
#やりかた多すぎ
# インスタンス生成時に引数で与える方法
btn1=TkButton.new(:command=>proc{puts "hoge"}).pack(:fill=>:x)
# configureメソッドで後から変更する方法
btn2=TkButton.new.pack(:fill=>:x)
btn2.configure(:command=>proc{puts "fuga"})
# メソッドでProcオブジェクトを与える方法
btn3=TkButton.new.pack(:fill=>:x)
btn3.command=proc{
puts "piyo"
}
# メソッドでブロックを与える方法
btn4=TkButton.new.pack(:fill=>:x)
btn4.command{
puts "poko"
}
TkButton.new{
command(proc{puts "Foo"})
pack(:fill=>:x)
}
TkButton.new{|btn|
btn.command(proc{puts "Bar"})
btn.pack(:fill=>:x)
}
TkButton.new{
self.command = proc{puts "Baz"}
self.pack(:fill=>:x)
}
Tk.mainloop
173:140 ◆.DxfZ0s0HA
08/02/28 12:28:32
>>170
>Dir.globの引数はglobな文字が入った文字列だがこれじゃ文字列になってない
これはどういうことなのでしょうか…?
>>171
もちろん最後に追加してるわけじゃないです。
174:デフォルトの名無しさん
08/02/28 12:56:09
>>170
> glob先のファイルパスの先頭に//が2つあるのが若干謎だが
WindowsだからUNCだろ。
>>173
> >Dir.globの引数はglobな文字が入った文字列だがこれじゃ文字列になってない
> これはどういうことなのでしょうか…?
文字列が閉じてないということだろうが、ちゃんとコピペするように。
というか、File.openはブロックつきで使え。
filereadもIO#read使えばwhileなんて必要ない。
ちょっとリファレンスくらい読んどけ。
というかこのくらいも説明しない授業ならとる必要ない。
175:デフォルトの名無しさん
08/02/28 13:33:18
その講義のWebサイト読んでみたんだがC言語をせずにいきなりRubyからやってる感じだな
Ruby特有の記述をバリバリ使うんじゃなくて、どの言語でも通用するような書き方で書いてる雰囲気が漂ってくる
だから#eachとか使わずwhileで回したりしてるとおもふ
176:140 ◆.DxfZ0s0HA
08/02/28 13:34:41
>>174
すいません!
文字列閉じはここに書き写すときに抜け落ちました。
実際はあるんですが、それでも上手く動作しないんです。
あとブロックつきとか何のことか分からないです…
177:140 ◆.DxfZ0s0HA
08/02/28 13:41:29
URLリンク(www.dotup.org)
DL Pass:rep
とりあえず現段階のプログラムリストをアップいたします。
どこかおかしい所があれば修正お願いいたします。
178:デフォルトの名無しさん
08/02/28 16:03:02
>>175
感じも何も、いきなりRubyだ
初めての言語がRubyってどうなんだろうな
179:デフォルトの名無しさん
08/02/28 16:14:39
Cの知識の上にRubyがこないとギクシャクすると思う。
180:デフォルトの名無しさん
08/02/28 16:30:02
>>178
別に問題はない
きちんとRubyとして教えられてさえいれば
CやBASICのようにRubyを教えるというのは最悪な使われ方
流行のスクリプト言語以外に移ったときには確実に戸惑うが、そんなのはどの言語でも同じだしな
>>177
とりあえず、変数の意味を考えれ
正確なRubyとは違うが
$entry = TkEntry.new()
とnewで定義されてる$entryは「特定のTkの部品TkEntry」を指している
だから、$entry.valueというのはこのTkEntry(一行入力欄)のvalue(テキスト的内容の値)を指している
で、Tkのややこしいとこはデータの取得と再指定が同じ書き方だということだ
entry.value = 'ここが入力欄だよ!'
と書けばentryの入力欄に「ここが入力欄だよ!」と表示されるし
input_text = entry.value
と書けば変数input_textに「現在entryに表示されてる文字列」が入る
で、何が言いたいかというと、36行目の「text.value」でエラーが起きてる
text.valueはtextで示されるTk部品の内容を指してるが、textというTk部品はTkButtonだ
とりあえず、ボタンはボタンらしい変数名にしたほうがいいぞ
metasearch_button = TkButton.new(:text=>'メタデータから検索')
とかいう書き方にすれば、変数の名前見ただけでボタンだってわかるし、
ボタンのvalueにsearch(pattern)の結果を渡すというのがそもそも変だってわかるだろ
181:デフォルトの名無しさん
08/02/28 17:10:09
require 'tk'
label = TkLabel.new(:text=>'検索文字列入力')
label.pack(:side=>:top,:fill=>:x)
entry = TkEntry.new()
entry.value = '検索文字列を入力'
entry.pack(:side=>:top,:fill=>:x)
metasearch_button = TkButton.new(:text=>'メタデータから検索')
metasearch_button.pack(:side=>:top)
textsearch_button = TkButton.new(:text=>'本文全体から検索')
textsearch_button.pack(:side=>:top)
view_button =TkButton.new(:text=>'ファイルの中身を表示')
view_button.pack(:side=>:top)
scrollbar = TkScrollbar.new()
textfield = TkText.new()
scrollbar.command ='%s yview'%textfield.path
textfield.yscroll = '%s set'%scrollbar.path
scrollbar.pack(:side=>:left,:fill=>:y)
textfield.pack(:side=>:left,:fill=>:both)
def metasearch(pattern)
result = Array.new
# Dir.glob("//kikyo/home1/saka/pub/data/aozora-portion/*_*_*.txt"){|filename|
Dir.glob("data/*_*_*.txt"){|filename|
io = File.open(filename)
title = io.gets.chomp
author = io.gets.chomp
io.close
result << "#{title} #{author} #{filename}" if author.include?(pattern)
}
return result
end
182:デフォルトの名無しさん
08/02/28 17:10:51
metasearch_button.command = Proc.new{
pattern = entry.value
searchresult = metasearch(pattern)
# searchresult's format is [ "title1 author1 filename1", "title2 author2 filename2", ...]
textfield.value = searchresult.join("\n")
label.text = "#{pattern} は #{searchresult.size}件見つかりました"
}
def textsearch(pattern)
result = Array.new
# Dir.glob("//kikyo/home1/saka/pub/data/aozora-portion/*_*_*.txt"){|filename|
Dir.glob("data/*_*_*.txt"){|filename|
io = File.open(filename)
title = io.gets.chomp
author = io.gets.chomp
file = io.read # 最初の2行はio.gets×2で通り過ぎたあとなのでfileの中身に注意
io.close
puts file
result << "#{title} #{author} #{filename}" if file.include?(pattern)
}
return result
end
textsearch_button.command = Proc.new {
textfield.delete('1.0',:end)
pattern = entry.value
searchresult = textsearch(pattern)
textfield.value = searchresult.join("\n")
label.text = "#{pattern} は #{searchresult.size}件見つかりました"
}
#Dir.chdir('//kikyo/home1/saka/pub/data/aozora-portion')
Tk.mainloop
183:デフォルトの名無しさん
08/02/28 17:30:17
どんどんレベルが落ちていくな(w
クラスとメソッドとかの授業はしてないのかしら
ブロックつきメソッドとか
184:140 ◆.DxfZ0s0HA
08/02/28 20:22:25
>>180-182
ご丁寧にありがとうございますm(_ _)m
ようやく全ての機能を満たしたプログラムの完成にこぎつけられました。
ちなみにmetasearchのメソッドのところではタイトルと著者名両方から検索しろとのことだったので
「||」を使ったのですがそれで問題ないみたいです。
とにかく変数がやたらと出てきたのがまず混乱の元だったと思います。。
def部分とその他は分けて考えたほうが良さそうですね・・・
185:デフォルトの名無しさん
08/02/29 00:08:12
なにはともあれ、お疲れさん。
186:デフォルトの名無しさん
08/03/01 00:34:43
宿題かもーん。
187:デフォルトの名無しさん
08/03/01 23:12:32
ファイル読み込みの一番簡単な方法は、
s = IO.read "foobar.txt"
でいいですよね。
書き込みも一発でできないのかな?
これくらい?
open("foobar.txt", "w") {|f| f.write s}
188:デフォルトの名無しさん
08/03/01 23:18:12
ruby unko.rb > foobar.txt
189:デフォルトの名無しさん
08/03/01 23:52:40
まあ、あっても面白いとは思うけどね
そんなこと言ったらread()という関数的メソッドがあってもいいし
190:デフォルトの名無しさん
08/03/02 13:26:35
cat foobar.txt > unko.rb
191:デフォルトの名無しさん
08/03/23 16:53:38
>>188
日本語でおk
192:デフォルトの名無しさん
08/03/23 17:06:50
ルビー う○こ ぽち るび だいなり なんたら ぽち テキスト
193:デフォルトの名無しさん
08/03/30 13:16:29
過疎
194:デフォルトの名無しさん
08/03/31 17:12:10
オブジェクト指向の講義するならRubyなんかよりC++の方がいいんでないの?
教育や学習に限ると、生産性の高さとか全く不要だと思うんだがー
195:デフォルトの名無しさん
08/03/31 17:41:59
オブジェクト指向の授業をするのにRubyを用いる理由がゼロだというなら、C++を使う理由はマイナスだぜ
何が悲しくてオブジェクト指向の理解にC覚えなきゃいかんのよ
196:デフォルトの名無しさん
08/03/31 18:04:09
メモリの使い方とか理解するのにいいと思います
197:デフォルトの名無しさん
08/03/31 18:07:08
Cも覚えられるなら一石二鳥じゃん!
198:デフォルトの名無しさん
08/03/31 21:14:39
宿題かもーん。
199:デフォルトの名無しさん
08/04/02 00:27:51
Rubyで書かれたソースを解析し、
クラス継承図を描くプログラムを完成させなさい。
200:デフォルトの名無しさん
08/04/02 00:55:25
Rubyあんま関係ないな
201:デフォルトの名無しさん
08/04/03 20:48:37
1 から 100 までの数字を出力するプログラム
ただし、
3 の倍数のときは数字の変わりに Aho
5 の倍数のときは数字の変わりに Buzz
3 と 5 の倍数のときは数字の変わりに FizzBuzz
8 の倍数のときには数字の変わりに Ahe
を出力するプログラムを作成してください。
202:デフォルトの名無しさん
08/04/03 20:50:10
訂正
誤
3 の倍数のときは数字の変わりに Aho
正
3 の倍数と 3 が付く数のときは数字の変わりに Aho
203:デフォルトの名無しさん
08/04/03 20:55:18
ワンライナーでお願いします
204:デフォルトの名無しさん
08/04/03 21:21:46
>>201
URLリンク(d.hatena.ne.jp)
205:デフォルトの名無しさん
08/04/03 21:23:52
p '1 2 Aho 4 Buzz Aho 7 Ahe Aho Buzz 11 Aho Aho 14 AhoBuzz Ahe 17 Aho 19 Buzz
Aho 22 Aho AhoAhe Buzz 26 Aho 28 29 AhoFizzBuzz Aho AhoAhe Aho Aho AhoBuzz Aho Aho Aho Aho Buzz 41 Aho Aho 44 AhoBuzz 46 47 AhoAhe 49 Buzz
206:デフォルトの名無しさん
08/04/03 21:26:40
>>201
URLリンク(www.yabooo.org)
207:デフォルトの名無しさん
08/05/12 21:49:36
過疎り杉だろw
208:デフォルトの名無しさん
08/05/12 21:50:22
安心しろ、九月に入ったらまた某大学の一年生が助けを求めてくるから
209:デフォルトの名無しさん
08/05/12 21:53:28
講義担当者は骨のある問題頼むぜ
ワンライナーで書いてやっからw
210:デフォルトの名無しさん
08/06/03 17:33:12
宿題かもーん
211:デフォルトの名無しさん
08/06/05 23:27:43
人いるのかなw いたらお願いします
・英文ファイルを読み込んで、40文字の行(単語が2行にまたがっては駄目)
に分割して出力するスクリプトを作成せよ
212:デフォルトの名無しさん
08/06/06 00:54:12
前スレで同じような質問をみたな
確か答えはこんな感じだったはず
puts ARGF.read.gsub(/\s+/," ").gsub(/(.{0,40})\s/,"\\1\n")
213:デフォルトの名無しさん
08/06/06 01:13:11
毎回思うんだが、この手の課題って「空白をカウントするのかどうか」「改行は文字なのか」って絶対触れられないよな
サンプルのテキストファイルを整形しろ、という課題でないと駄目だと思う
214:デフォルトの名無しさん
08/06/06 01:56:25
禁則処理とかダメダメだが、即興のやつ。
re = /
(\w+)
| (\s+)
| ([^\w\s]+)
/x
ARGF.each do |line|
buf = []
line.scan(re) do
case
when $1 then buf << [$1, :word]
when $2 then buf << [$2, :space]
when $3 then buf << [$3, :else]
else raise Exception, 'must not happen'
end
end
215:デフォルトの名無しさん
08/06/06 01:57:22
until buf.empty?
tmp = ''
while tmp.size <= 40
buf.empty? and break
s, type = buf.shift
unless tmp.size + s.size > 40
tmp << s
else
case type
when :word
buf.unshift [s, type]
when :space
;
else
margin = 40 - tmp.size
margin, rest = s[0, margin], s[margin-1..-1]
tmp << margin
buf.unshift [rest, type]
end
break
end
end #while tmp.size <= 40
puts tmp
end #buf.empty?
end #ARGF.each
216:デフォルトの名無しさん
08/06/06 02:06:12
あ゙ー、やっぱ語にタグつけるのが妥当だよな
あと、みんな存在を忘れるんだが 's は頻発するから無視したら駄目だぞ
217:デフォルトの名無しさん
08/06/06 02:51:36
ふつーのアポストロフィSだったら/\w+(?:'s)?/で取れるけど、
foos' みたいなのが難しい…質問者じゃないが教えてエロいひと。
あと\w使ってるけど、英文で単語繋いだりするときってアンダーバーよりもむしろハイフンだよなぁ。
/[A-Za-z]+(?:-[A-Za-z]+)*/とかのほうがいいんだろうか。
218:211
08/06/06 17:50:27
ありがとうございます
219:デフォルトの名無しさん
08/06/19 19:25:36
[1] 授業単元:データベースと統計処理
[2] 問題文(含コード&リンク):()
[3] 環境
[3.1] OS: Linux
[3.2] バージョン:ruby 1.8.6 (2007-06-07 patchlevel 36) [i486-linux]
[3.3] 言語: Ruby
[4] 期限: 今月中
[5] その他の制限: なし
ファイルが2つあります。
key.txt:インデックス(キー)となるファイル、名前が羅列してあります。
Mr.A
Mr.B
Mr.C
Mrs.D
hoge-hoge san
.
(数百人程度)
data.txt:体重のデータファイル
住所、電話番号、氏名(キー)、体重(値)
A市,000-111-1111,Mr.A,81.2
B市,111-222-3333,Mr.B,93.2
.
問題
key.txt に載っている人の体重を data.txt から選び出し、体重の少ない方から
並べて、分布の 50%, 95%, 99% の体重を表示してお終い。体重分布の比較をしたい。
という宿題です。 以上です。
220:デフォルトの名無しさん
08/06/19 19:32:35
ワンライナーでですか?
221:デフォルトの名無しさん
08/06/19 19:39:46
>key.txt に載っている人の体重を data.txt から選び出し、体重の少ない方から
>並べて、
ここまではやりました><;
File.open("data.txt"){|io|io.read}.split($/).map{|line| line.split(",")}.delete_if{|record| !File.open("key.txt"){|io|io.read}.split($/).include?(record[2])}.sort{|x,y| x[3]<=>y[3]}
222:デフォルトの名無しさん
08/06/19 22:59:50
|io|io が loli に見えて、いい変数使うなあって思った
223:デフォルトの名無しさん
08/06/19 23:28:49
>>221
えっ、えっ、 すごいな、並べるところまでできてしまっているような感じ
ワンライナーでなくても良いんですが。解読するのに1週間くらい
かかりそう。でもすごい。
MS Access で、2つのファイルをテーブルに読み込んで選択クエリー
でつなげばできるんですけど、MS Access も入手できない、poor man
プログラマーは、なんとかしなければならない。でも、すごいな。
224:デフォルトの名無しさん
08/06/19 23:33:22
あ、なんだ、本気だったのね
225:デフォルトの名無しさん
08/06/19 23:41:58
もちろん。
最初に data.txt を読み込んで、次に key.txtを読み込んで、ここにkeyが含まれていない
場合は、そのrecord を削除してしまい、残った record を4番目の項でソートする。
そんな感じでしょうか。 Hash とか使うのかなあと思っていたら、使わなくても良いとは
ちょっと、びっくり。
226:デフォルトの名無しさん
08/06/19 23:51:08
そのへんを素直に処理するとこうだ
# キーを読み込む
indexes = File.readlines('key.txt')
# キーに含まれるデータだけを格納する配列
data = Array.new
# data.txt を1行ごとの配列とし、
File.readlines('data.txt').each do |line|
# 1行をコンマで区切り、
a = line.chomp.split(',')
# 2要素目(3項目目)が keys.txt に含まれていれば data に登録(最後の数字は数値に変換)
data.push([a[0], a[1], a[2], a[3].to_f]) if indexes.include?(a[2])
end
# 3要素目(4項目目、つまり体重の数値)で並び替えたものを sorted_data という配列に
sorted_data = data.sort_by{|a| a[3]}
227:デフォルトの名無しさん
08/06/20 01:55:52
分布忘れちったからソートするところまで自分もやってみる。
>>226みたいに初心者向けっぽい気づかいを忘れてた。Structとかダメ?
#data.txt 一行ぶんの情報を表す構造体クラス
class Record < Struct.new(:address, :telephon, :name, :weight)
def initialize(*args)
args[-1] = Float(args[-1])
super(*args)
end
end
#両ファイルを行ごとの配列にして読み込む
entries, data = ["key.txt", "data.txt"].map{|path|
File.readlines(path).map{|s| s.chomp }
}
#コンマ区切りの情報を分けて、構造体にし、
#key.txtにある名前だけというふるいをかけ、体重の値でソート
records = data.map{|s| Record.new(*s.chomp.split(',')) }.select{|r| entries[r.name] }.sort_by{|r| r.weight }
228:225
08/06/20 08:08:28
寝ている間に宿題ありがとうございました。
>>226
とても分かりやすいです。
data.push([a[0], a[1], a[2], a[3].to_f]) if indexes.include?(a[2])
後半の if indexes.include? という部分の記述は経験がありません。
勉強します。
>>227
クラスというのは、どういう風に使うのだろうと思っていました。
key.txt は、100の整数倍を取ることにしていますので、小さい方から
並び替えて、順番を付け、順番/データ数を計算すれば必ず50%, 95%
99% のデータがあります。というわけで、ソートができれば、ゴールまで
もう少しです。
229:デフォルトの名無しさん
08/06/20 12:50:55
>>226
動いたっぽいです。えーと、
> # キーを読み込む
> indexes = File.readlines('key.txt')
これだと、改行コードが indexes にひっついたままで、data.txt の検索で
引っかかりませんでした。ここは定石にしたがって
i=Files.open("key.txt")
indexes=Array.new
i.each{|key| indexes << key.chomp}
で検索できるようになりました。
230:デフォルトの名無しさん
08/06/20 17:32:26
URLリンク(jp.rubyist.net)
231:デフォルトの名無しさん
08/07/03 10:01:06
はいorいいえの質問に答えてもらって結果を
「はいの数が3つ以上なら~です。」
「はいの数が3つ未満なら~です。」
というように出すプログラムを作りたいのですが
わからなくて…
誰か助けて…
232:デフォルトの名無しさん
08/07/03 10:08:47
授業でどんなことしててどのへんがわからんのかくらいは言え
放っておくと授業で全く触れてないもの使った先生が読めないようなプログラムが回答として返ってくるぞ
小学校の夏休みの算数の宿題に高校数学が使われてたらあからさまに不自然だろ
233:デフォルトの名無しさん
08/07/03 10:26:20
すみません。
授業では基礎的なことしかやっていません。
例えば
gets.chomp
if
printf
STDEER
というようなものを使ったりしています
234:デフォルトの名無しさん
08/07/03 10:27:34
>>232
まったくだ
questions = ['海は死にますか?',
'山は死にますか?',
'風はどうですか?',
'空もそうですか?']
yes = 0
no = 0
puts '質問にyesかnoで答えてください'
questions.each do |q|
puts q
answer = gets
if /^y/i =~ answer then
yes = yes + 1
else
no = no + 1
end
end
puts '結果を発表します'
puts "yes: #{yes} no: #{no}"
if yes < 3 then
puts 'YESが3未満のあなたのさだまさし度はまだまだです'
else
puts 'YESが3以上のあなたのさだまさし度は熱狂的です'
end
235:デフォルトの名無しさん
08/07/03 10:52:18
ありがとうございます!
すみませんがputsというのは習ってないのですが、
どんな意味ですか?
236:デフォルトの名無しさん
08/07/03 11:05:04
questions = ["海は死にますか?\n",
"山は死にますか?\n",
"風はどうですか?\n",
"空もそうですか?\n"]
yes = 0
no = 0
print "質問にyesかnoで答えてください\n"
questions.each do |q|
print q
answer = gets
if /^y/i =~ answer then
yes = yes + 1
else
no = no + 1
end
end
print "結果を発表します\n"
print "yes: #{yes} no: #{no}\n"
if yes < 3 then
print "YESが3未満のあなたのさだまさし度はまだまだです\n"
else
print "YESが3以上のあなたのさだまさし度は熱狂的です\n"
end
237:デフォルトの名無しさん
08/07/03 11:12:07
>>236
あ、これならすべて習っています!
本当にありがとうございます。
助かりました(;_;)
238:デフォルトの名無しさん
08/07/05 05:27:15
>>235
putsは改行も一緒に出力する
239:a ◆Ge868FLoWU
08/07/12 18:37:49
[1] プログラミング言語
[2]パスカルの3角形を印字するプログラムを
書きなさい。ただし、次のプログラムで印字
されるようにプログラムを作成してください。
[3] 環境
[3.1] Vista
[3.2] Ruby 1.8.6-2.6
[3.3] Ruby
[4] 2008/7/14/8:00
[5] 以下のコードを補完すること
print("Enter n: "); n = gets.chomp.to_i
if( n>30 || n<0 ) then
n = 10
end
a = Array.new( n )
a[0] = [1] # 要素が1 の長さ1の配列
# ここでパスカルの3角形を作る
# このとき、a[i]ごとに配列を作る
# そして、印字
(0..a.length-1).each{ |i|
(0..a[i].length-1).each{ |j|
print( " ", a[i][j] )
}
print( "\n" )
}
お願いします。
240:デフォルトの名無しさん
08/07/12 18:45:37
0..a.length-1
まぁこういうのは配列操作のイディオムの知識としては必要なんだろうけど。
(´-ω-`)
241:デフォルトの名無しさん
08/07/12 19:37:25
> (0..a.length-1).each{ |i|
> (0..a[i].length-1).each{ |j|
> print( " ", a[i][j] )
> }
> print( "\n" )
> }
吐いた
むしろ泣いた
メソッド定義…、この授業だと「関数定義」とか呼んでそうだが、
def ナントカ
で使い回しできる機能を自分で作ることは習った?
242:a ◆Ge868FLoWU
08/07/12 19:50:16
>241
「関数定義」という言葉は授業で出てきましたが、よくわかりませんでした。
243:a ◆Ge868FLoWU
08/07/12 20:27:25
print("Enter n: "); n = gets.chomp.to_i
if( n>30 || n<0 ) then
n = 10
end
a = Array.new( n )
a[0] = [1]
i = 0
j = 0
if j = 0 || j = i
then
a[ i ][ j ] = 1
else
a[ i ][ j ] = a[i-1][j-1]+a[i-1][j]
end
(0..a.length-1).each{ |i|
(0..a[i].length-1).each{ |j|
print( " ", a[i][j] )
}
print( "\n" )
}
自分なりに考えてみた結果、こうなったんですが、やはりエラーが出ます↓
Enter n: >Exit code: -1073741510
(´;ω;`)
244:デフォルトの名無しさん
08/07/13 02:39:00
添削:
a.each {|i| i.each{|j| print j, " " }}
puts
inject版とか作ってくれ
245:デフォルトの名無しさん
08/07/13 02:41:29
puts a.flatten.join " "
flatten一発ワロタ
246:デフォルトの名無しさん
08/07/13 02:42:19
ああ、列ごとに改行いるのか(´・ω・`)
>>244 >>245じゃダメだな
247:デフォルトの名無しさん
08/07/13 02:45:29
これで
a.each {|i| puts i.join(" ")}
248:デフォルトの名無しさん
08/07/13 03:07:12
コード補完しれって、 a.each すら使わせたくないんじゃないか?
宿題出した先生は本当はCでやりたいんだと
249:デフォルトの名無しさん
08/07/13 13:44:30
コード補完は単に宿題の採点を楽にする為だと思われ
250:デフォルトの名無しさん
08/07/22 01:08:06
あらかじめ配列 ar に 100個のデータが格納される処理が,プログラムの最初で行われているものとする。その部分については書く必要はない。
ただし,ar に格納されたデータのうち負のものは,誤りを含んだデータなので集計しないようにしたい。
for ループで配列の要素を読み込んでいく,
その要素がゼロ以上の値を持つデータであれば,データの数を数え上げるとともに,データを加算していく。
ループが終了したら,上の例のように出力する。いずれの行の最後にも改行がある。
251:デフォルトの名無しさん
08/07/22 01:11:59
ar = [
4.2,29.8,5.1,19.9,3.4,15.3,11.4,1.1,24.1,28.7,0.0,30.2,-0.0,41.2,8.3,
26.8,27.4,0.5,26.2,35.8,33.7,2.0,9.4,36.8,33.2,7.8,21.6,42.7,31.4,9.3,
16.9,9.4,39.6,-0.7,40.4,43.8,26.6,16.1,38.7,4.5,14.1,4.1,7.8,10.5,26.1,
44.9,26.7,17.6,34.2,10.9,33.6,34.2,28.1,40.6,13.7,5.4,13.2,15.8,22.5,36.5,
2.0,13.1,11.2,-1.7,7.4,39.6,29.5,19.7,21.7,16.3,12.3,41.5,-2.8,13.5,40.9,
-1.7,26.9,6.7,0.7,43.8,43.0,17.4,6.9,35.4,36.2,27.6,10.6,39.8,6.4,31.3,
13.7,0.9,20.2,6.4,36.0,31.9,36.4,-1.3,-3.2,-3.2]
# 以下の部分を適当に補って作成して,下のフォームに記入しなさい。
count = 0
sum = 0.0
for i in ????
# このループの中で if 構文を使ってデータを判定して集計する。
end
print ??????
print ??????
あらかじめ配列 ar に 100個のデータが格納される処理が,プログラムの最初で行われているものとする。その部分については書く必要はない。
ただし,ar に格納されたデータのうち負のものは,誤りを含んだデータなので集計しないようにしたい。
for ループで配列の要素を読み込んでいく,
その要素がゼロ以上の値を持つデータであれば,データの数を数え上げるとともに,データを加算していく。
ループが終了したら,上の例のように出力する。いずれの行の最後にも改行がある。
例 有効なデータの数 = 13
平均値 = 23
252:デフォルトの名無しさん
08/07/22 02:13:05
ひとつ問題がある。データ1行目の後ろのほうに -0.0 という値が入ってる。
これをカウントすべきかどうかで平均値が変わる。
計測器によっては -0.0 は 0 から -0.1 を含まない領域の値を示していることがある。
題意からすると、これは負で取り除くべきデータということになる。
しかし、Ruby は 0 も 0.0 も -0.0 も同じゼロとして扱うから、特別に判断処理を入れない限り区別できない。
以下、区別しないスクリプト。
区別したい場合は if のとこを if i >= 0 && i.to_s != '-0.0' then に書き換える。
ar = [
4.2,29.8,5.1,19.9,3.4,15.3,11.4,1.1,24.1,28.7,0.0,30.2,-0.0,41.2,8.3,
26.8,27.4,0.5,26.2,35.8,33.7,2.0,9.4,36.8,33.2,7.8,21.6,42.7,31.4,9.3,
16.9,9.4,39.6,-0.7,40.4,43.8,26.6,16.1,38.7,4.5,14.1,4.1,7.8,10.5,26.1,
44.9,26.7,17.6,34.2,10.9,33.6,34.2,28.1,40.6,13.7,5.4,13.2,15.8,22.5,36.5,
2.0,13.1,11.2,-1.7,7.4,39.6,29.5,19.7,21.7,16.3,12.3,41.5,-2.8,13.5,40.9,
-1.7,26.9,6.7,0.7,43.8,43.0,17.4,6.9,35.4,36.2,27.6,10.6,39.8,6.4,31.3,
13.7,0.9,20.2,6.4,36.0,31.9,36.4,-1.3,-3.2,-3.2]
# 以下の部分を適当に補って作成して,下のフォームに記入しなさい。
count = 0
sum = 0.0
for i in ar
if i >= 0 then
count = count + 1
sum = sum + i
end
end
print "有効なデータの数:#{count}\n"
print "平均値:#{sum / count}\n"
253:デフォルトの名無しさん
08/07/22 10:03:23
> -0
=> 0
> (-0).to_s
=> "0"
254:デフォルトの名無しさん
08/07/22 12:07:59
>>253
irb> ar.all?{|e| e.is_a?(Float)}
true
255:デフォルトの名無しさん
08/07/22 12:26:52
揚げ足とってるだけかしらんけど、それがどうしたんだ?
256:デフォルトの名無しさん
08/07/22 12:36:31
・ データは全て Float だから Integer の話をしても意味がない
・ -0.0 を to_s すると "-0.0" だから指摘に関連性を見出せない
・ トリビアごっこは他の場所でどうぞ
257:デフォルトの名無しさん
08/07/22 12:53:50
なるほど、mswin32版では挙動が違うようだ
ごめんね
258:デフォルトの名無しさん
08/07/22 13:50:23
>>252さんありがとうございす。
このプログラムは,次の数列の和が, i がいくつになったときに,与えられた数を超えるのかを調べている。
sum = a1 + a2 + a3 + ... + ai + ...
ただしここで,ai は次の式で与えられる数である。
ai = i 3 - 4 * i 2
この計算を行うプログラムの不完全なリストが下にある。次の方針にもとづいて完成させなさい。
引数をコマンドライン引数として受け取り limit という整数に代入する(これはすでに書き込まれている)。
数列の和は sum という変数に加算されていくものとする。
i はループのなかで1ずつ増加するようにする。for ループと違って, iはループ変数でなく,したがって自動的に増加することはないことに注意すること(これをうっかりすると無限ループに陥る!)。
while 文を使って,sum が limit よりも小さい間 ループが回るようにする。
ループを抜けたら,結果を印刷する(これもすでに書きこまれている) 。
limit = ARGV[0].to_i
sum = 0
i = 0
while ?????
????
????
end
print "i が", i, "のときに sum は ", limit, " を超えました。\n"
259:デフォルトの名無しさん
08/07/22 13:55:16
>>258
どうでもいいが、それができないとこれからの課題の全てを全部他人が書かないといけなくなるぞ
小学校2年で九九を全く覚えなかった小学生のように窮地に陥る
260:デフォルトの名無しさん
08/07/22 13:59:49
わたしは情報系の学部ではないのでできなくても問題ありません。
ただ単位だけ欲しいんです(><)
261:デフォルトの名無しさん
08/07/22 14:02:03
うん、だから、期限までに誰も助けてくれなかったらどうするの?
262:デフォルトの名無しさん
08/07/22 14:05:27
ここは宿題を教えてもらう場ですよね?
263:デフォルトの名無しさん
08/07/22 14:07:23
ワンライナーにさせてもらえないからみんな苛立ってるんだよw
264:デフォルトの名無しさん
08/07/22 14:09:34
まあそのへんはなんでもいいけど>>258では回答は来ないだろうな
265:デフォルトの名無しさん
08/07/23 00:39:10
せめて問題文を理解して間違いなく写して下さい
266:デフォルトの名無しさん
08/07/23 01:14:19
>>265さん
わかりにくくてごめんなさい。
でも問題文はこれですべてです。コピペしてあるので・・・
267:デフォルトの名無しさん
08/07/23 05:19:11
>>266
そういうことじゃなくて朝鮮語で書けってことじゃないか?
俺はRubyは全くわからないが出題の意図は理解出来たぞ。
268:デフォルトの名無しさん
08/07/23 06:54:20
>>258
要するに課題出した側はwhileを使ってほしいんだろうが、
if文でbreakでもいいのでは
限界より計算結果が大きくなったらbreakするプログラムで
式はsum+=100として
limitとsumをしっかり初期化すればおk
そっちの方がちょっと簡単そう、それを直せば出来る
エラーで困ってるならそれで
endや条件式の等号が==じゃなくて代入=になってないかとか
確認して、
#if・・・
if 1+1==2とかバグがありそうな行をコメントにして、代わりを書いて実行する
バックアップとりまくってアンドゥは1万回でも出来るような環境を利用する
警告出たっけ
269:デフォルトの名無しさん
08/07/23 10:51:03
初心者の俺が作ってみた
limit = ARGV[0].to_i
sum = 0
i = 0
while sum <= limit
i += 1
sum += i**3 - 4*i**2
end
print "i が", i, "のときに sum は ", limit, " を超えました。\n"
270:269
08/10/10 21:37:16
せっかく解いたのにお礼がこないね (´・ω・`)
271:デフォルトの名無しさん
08/10/11 16:05:24
お礼が言えるようなまともな奴なら、
そもそも宿題を人に聞いたりはしない。
俺らは粛々と利用されておけば良い。
272:デフォルトの名無しさん
08/10/12 20:29:21
お返事遅くなりまして大変申し訳ありません
ありがとうございました
273:デフォルトの名無しさん
08/10/20 13:12:25
rubyの知識が皆無なのに課題だされて途方にくれています。
誰か教えていただけると幸いです><
WikipediaAPIをrubyで使いたいのですが(実はこの意味もわかってないです
URLリンク(wikipedia.simpleapi.net)
上記のページでも紹介されている
URLリンク(d.hatena.ne.jp)
を参照し、コピペして実行すると
c:/ruby/lib
ruby/site_ruby/1.8/rubygems/custom_requre.rb:27:in'gem_original_require':
no such file to load --sinple_wikipedia_api(LoadError)
fro c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_requre.rb:27:in'reqire'
というエラーが出てきます。
きっと根本的なことが間違っているんですが…どうすれば使えるようになるので
しょうか?
何かインストールしたりする必要があるんですかね。
正直参照したページも色々理解できてません。馬鹿ですみません。
274:デフォルトの名無しさん
08/10/20 16:08:51
>>273
課題の資料読め
275:デフォルトの名無しさん
08/10/20 19:35:48
課題に資料ないんですよ。
WikipediaAPIをrubyで使えれるようにするといわれただけなので…
276:デフォルトの名無しさん
08/10/20 19:55:17
>275
エラーメッセージよく読め。
スペルミスしてないか?
277:デフォルトの名無しさん
08/10/21 09:06:06
sinple_wikipedia_api www
278:デフォルトの名無しさん
08/10/21 19:36:03
この課題、よそのライブラリとか使ってもいいの?
ライブラリ作るのが課題なんじゃないの?
279:デフォルトの名無しさん
08/10/21 19:39:26
課題本文を見ないことにはなんともな
280:デフォルトの名無しさん
08/10/22 00:07:11
質問者の意図は放置してシンプルなのを作ってみた
require 'kconv'
require 'uri'
require 'net/http'
def wikipedia(keyword,query={})
query[:keyword] = URI.escape(keyword.toutf8)
uri = URI('URLリンク(wikipedia.simpleapi.net)')
uri.query = query.to_a.map{|a| a.join('=')}.join('&')
Net::HTTP.get(uri)
end
puts wikipedia('ギコ猫',:output=>:html).toeuc # tosjis,etc
281:デフォルトの名無しさん
08/10/22 19:40:34
>>276
エラーメッセージみても意味不明だったんで聞きました
>>276
コピペなんで何がどう間違えてるかわかりませんでした
>>277
PCから書き込めず携帯で打って間違えましたw
>>278
ライブラリ…?とりあえずできればよそのでも!
>>279
課題というか口頭命令でして…
>>280
動きました!ありがとうございます!!!
本当に感謝です。でもなんでこんなにシンプル…凄いです…
282:デフォルトの名無しさん
08/10/22 20:06:17
・ Rubyに興味はなく、それをやれば終わり
・ それはRubyに関わる始まりに過ぎない
どっちなのかによって回答が大幅に違うと思われる
283:デフォルトの名無しさん
08/10/22 21:19:07
あと半年ほどやらないと卒業できないんです
なので後者ですかね…実際会って教えていただきたいものです
284:デフォルトの名無しさん
08/10/22 21:31:53
あーそりゃ色々な意味で無理だ、今年は諦めて来年に回せ
というか、このタイミングで
・ 勝手ライブラリの WikipediaAPI 使え
・ 使ったことのない Ruby 使え
という指示が出るというのは研究はいったい何なんだろう
285:デフォルトの名無しさん
08/10/22 21:36:57
必修のコンピュータ使用の授業なんじゃないかなあ
その割にはいろいろヘンだが…
とりあえず、Rubyの入門を適当に学ぶしかないな
286:デフォルトの名無しさん
08/10/22 21:39:39
無理ですか><
来年社会人なるのでRubyは多分使いませんww
研究は詳しくは言えないのですが涙目です…;;
287:デフォルトの名無しさん
08/10/22 21:51:57
>>286
「話せない」のなら無理だ
君は自分のやることを理解していない
教官もこんなのが残ってて困ってることだろう
288:デフォルトの名無しさん
08/10/22 22:09:26
おっしゃる通りです…全く迷惑だと痛感してます
何をしたいか概略は話せますがこれを見られ特定されるのは痛いので…
先行研究の技術的な部分で教授に言われることをしている感じなんです
289:デフォルトの名無しさん
08/10/22 22:28:45
あのあれだ、
「○○の××を用いた場合の△△手法開発における基礎的研究」とか
ものすごい注釈つきまくった浅い卒論になる奴だな
3年から本気でやらないからそんな題名レベルで異常に恥ずかしい俺何もやってませんでした的なものになる
履歴書に卒論題名書いたことでむしろ落とされるというレアな経験をお前も体験するんだ
とりあえず、本当はRuby関係ないんじゃね?
欲しいのはWikipediaのデータなんじゃないかと
290:デフォルトの名無しさん
08/10/22 22:41:04
就職先はすでに決まりました
ついでに女です
291:デフォルトの名無しさん
08/10/22 22:48:45
小出し君に構うと損するぞ
292:デフォルトの名無しさん
08/11/01 23:39:41
最近記憶が飛ぶんです
293:デフォルトの名無しさん
08/11/06 15:18:56
質問なんですが
windowsではプロセスってつかえないっすか?
294:デフォルトの名無しさん
08/11/06 15:28:47
使えますが。
Process クラスの使い勝手は Unix と違ってくるかもしれん。
295:デフォルトの名無しさん
08/11/06 21:55:11
ありがとうございます。よく調べてみます!
296:デフォルトの名無しさん
08/11/08 23:05:21
URLリンク(upload.fam.cx)
297:デフォルトの名無しさん
08/12/24 14:58:22
test
298:デフォルトの名無しさん
08/12/30 03:01:09
>>272
もういないだろうけど小●先生はきっとここ見てると思うよ
299:デフォルトの名無しさん
09/01/01 11:48:51
299
300:デフォルトの名無しさん
09/01/01 11:49:35
300
301: 【小吉】 【1044円】
09/01/01 11:52:07
○
/⌒\ (__)
\●/(__)/⌒\
∩ ( ・ω・ )\●/ あけましておめでとうございます
Y  ̄ ||y||  ̄`''φ
Lノ /ニ|| ! ソ >
乂/ノ ハ ヽー´
`ー-、__|
ことしもよろしくね☆
302:デフォルトの名無しさん
09/01/04 23:07:19
100マス計算をするプログラムを書いてください。
プログラムがランダムに出題し、人間が100個の
マスに回答を入力し、確認ボタンを押すと
全問正解なら回答にかかった時間を表示して終了。
間違った場合は間違った場所にカーソルが止まり、
別の値が入力されるまで待ちます。
横10個、縦10個の数字は各々11~99までの乱数、
演算は +,-,x のみでよいです。
よろしくおねがいします。
303:デフォルトの名無しさん
09/01/05 00:33:25
>>302
全然宿題じゃないだろこれw
仕事頼むなら金出せよ
304:デフォルトの名無しさん
09/01/05 01:13:00
>>302
URLリンク(www.imymode.com)
作成方法について
作り方を公開する予定は今のところないのですが、実際プログラムは驚くほど簡単です。
10×10のマスにランダムに数字を入れて、それを計算と会っているかどうかチェックするだけです。プログラムを始めたばかりの方の勉強として作るにはちょうどいいかもしれません。
がんばってくださいね。
305:デフォルトの名無しさん
09/01/05 01:14:09
おまいらそんなレスでお茶を濁していていいのか
Python宿題スレでも見て来い
306:デフォルトの名無しさん
09/01/05 01:19:34
この百マス計算で、わが娘はギュウギュウ絞られ、はじめは7分とか8分かかって指折り数えながら問題を解いていましたが、この紙を200枚近く消化することで最近は3分あまりで問題を解くようになりました。
自分の小学生時代を思い起こせば、無駄な労力と思います。こんなことをしなくても足し算の答えなんて変わらないのだから、その分少しでも余分に遊んで暮らしたいと小学生なら思うことでしょう。
ところが大人になって、九九の答えより足し算の答えのほうが出しにくいことを悟ってからは、人間多少はこんな理不尽な労働もしておく必要があったことを少しはわかりました。
第一の試練は、人生最大の難関だった就職試験に「クレペリン検査」が含まれていたことです。
10分ほどの時間を限られて、数字の列をただ足していくテストですが、私は1分で50ほどしか足し算ができず、本当は正答数より仕事上のムラや能率を調べるテストなはずですが、自分の能力の低さを改めて思い知らされることになりました。
それに追い討ちをかけるように、検査の間の休息時間に試験官がこんなことを言い出したのです。
「この検査ねえ。私は長年やっているけれども一人だけ、いたね。1分間で百問全部できる人が。傾向も何もわかったものじゃない。まあ、能力が高いといえばそれまでなんだけどね。」
試験中にそんなことを言い出す試験官もけっこう珍しいとは思います。
その後、私の受験勉強にクレペリン検査対策が含まれたのは言うまでもありません。ちょっとやっておけば少なくともうろたえないで済みます。
第二の試練は、「脳を鍛える大人のDSトレーニング」の登場です。
私も鍛えられなければボケる歳になってしまいました。
307:デフォルトの名無しさん
09/01/05 08:24:08
URLリンク(ja.wikipedia.org)
いじめとかそういう思い出がいつのまにか美化されるようなのと似た話だな。
308:デフォルトの名無しさん
09/01/05 08:33:29
URLリンク(ja.wikipedia.org)
老人にボケが発生するのは
死を待つ苦しみを和らげるためらしい
309:デフォルトの名無しさん
09/01/05 10:19:00
require 'tk'
class Drill100
PACKOPT = {:side=>:left,:fill=>:both,:expand=>true}
PACKOPTF = {:side=>:top,:fill=>:both,:expand=>true}
CELLOPT = {:width=>3}
def initialize(root)
@root = root
@root.title = '100マス計算'
@size,@min,@max = ( $test ? [2,0,9] : [10,11,99] )
@column,@row,@cells = [],[],[]
f = TkFrame.new(@root).pack(PACKOPTF)
@reset = TkButton.new(f,:text=>'切替',:command=>proc{init}).pack(:side=>:left)
@start = TkButton.new(f,:text=>'開始',:command=>proc{start}).pack(:side=>:left)
f = TkFrame.new(@root).pack(PACKOPTF)
@op = TkLabel.new(f,CELLOPT).pack(PACKOPT)
@size.times {|i| @column << TkLabel.new(f,CELLOPT).pack(PACKOPT) }
@size.times do |i|
f = TkFrame.new(@root).pack(PACKOPTF)
@row << TkLabel.new(f,CELLOPT).pack(PACKOPT)
@cells << []
@size.times {|j| @cells[i] << TkEntry.new(f,CELLOPT).pack(PACKOPT) }
end
end
def init
@reset.state = :normal
@start.configure(:text=>'開始',:command=>proc{start})
@op.text = {'+'=>'-','-'=>'*','*'=>'+'}[@op.text] || '+'
[@column,@row].each {|labels| labels.each {|l| l.text = random(@min,@max).to_s }}
@cells.each {|line| line.each {|cell| cell.state = :disabled }}
end
# つづく
310:デフォルトの名無しさん
09/01/05 10:20:05
# つづき
def start
@reset.state = :disabled
@start.configure(:text=>'確認',:command=>proc{check})
@cells.each {|line| line.each {|cell| cell.state = :normal ; cell.value = '' }}
@cells[0][0].focus
@starttime = Time.now
end
def check
@endtime = Time.now
@cells.each_with_index do |line,r|
line.each_with_index do |cell,c|
y,x = @row[r].text.to_i,@column[c].text.to_i
case @op.text
when '+' then answer = y + x
when '-' then answer = y - x
when '*' then answer = y * x
end
( cell.focus ; Tk.bell ; return ) if answer != cell.value.to_i
end
end
time = @endtime - @starttime
TkDialog.new(@root,:buttons=>[:OK],:message=>"#{time.to_i}秒かかりました")
init
end
def random(min,max) ; rand(max - min + 1) + min ; end
def run ; init ; Tk.mainloop ; end
end
# $test = true
Drill100.new(Tk.root).run
311:デフォルトの名無しさん
09/01/05 10:52:54
# 修正
# >>309 initialize の中ほど
@reset = TkButton.new(f,:text=>'切替',:command=>proc{init}).pack(PACKOPT)
@start = TkButton.new(f,:text=>'開始',:command=>proc{start}).pack(PACKOPT)
# >>310
def check
time = Time.now - @starttime
op = {'+'=>proc{|y,x| y+x},'-'=>proc{|y,x| y-x},'*'=>proc{|y,x| y*x}}[@op.text]
@cells.each_with_index do |line,r|
line.each_with_index do |cell,c|
answer = op.call(@row[r].text.to_i,@column[c].text.to_i)
( cell.focus ; Tk.bell ; return ) if answer != cell.value.to_i
end
end
TkDialog.new(@root,:title=>'全問正解',:buttons=>[:OK],:message=>"#{time.to_i}秒かかりました")
init
end
312:デフォルトの名無しさん
09/01/05 11:12:45
もしかして減算は上の値から左の値を引くのかな
だったらcheckメソッド内の '-'=>proc{|y,x| y-x} を {|y,x| x-y} に修正
313:デフォルトの名無しさん
09/01/06 02:37:04
生きるだけなら人の一生は長い。
しかしそれ以外するには時間が足りない。
うまくなりたいなら毎日やる。
ひとつだけならまだしも
二つとなるとハードルは一気に上がる。
そしてそのことを悩むとなれば三つとなりまたあがる。
ならばいっその事悩まずに
やってしまえばいい。
一人今、この体での一度きりの人生。
悔いを残すくらいなら今を生きて
今できることをすればいい。
焦っても仕方のないことだから
歩いていこうどこまでも。
「人生は何かを成し遂げるには短すぎるものだが、何もしないとすれば長すぎる」
孔子
314:デフォルトの名無しさん
09/01/06 20:37:16
>>313
URLリンク(www.iknow.co.jp)
315:デフォルトの名無しさん
09/01/11 02:03:14
RubyでGUIアプリケーションは作成可能でしょうか?
友人からは、GUIアプリケーションは
VC++、VBとかじゃないと無理と聞いたのですが・・・
316:デフォルトの名無しさん
09/01/11 02:07:26
可能か不可能かだけを答えるなら、可能。
317:デフォルトの名無しさん
09/01/11 03:46:03
いろいろあるよ
URLリンク(jp.rubyist.net)
318:デフォルトの名無しさん
09/01/11 07:31:51
ていうか初心者スレでロクに相手されなかったからってマルチはよくねえな
ボタンなんかをくっつけてマウス操作に対応させることはできるが、GUIをメインに作る言語よりは絶対に劣る
ビジュアルなんとかの言語はGUI作成のフォローが半端ないから作るのが簡単
RubyでGUIをやるということは「わざわざ難しいやり方でイマイチなものを手間隙かけて作る」ことに他ならない
319:デフォルトの名無しさん
09/01/11 07:52:21
>>318
馬鹿ですね
わかります
320:デフォルトの名無しさん
09/01/11 09:19:41
>>315
>VC++、VBとかじゃないと無理と聞いたのですが・・・
釣りだろうけど
そんなことはないよ
URLリンク(wxpython.org)
321:デフォルトの名無しさん
09/01/11 09:37:13
「できる」と「やりやすい」の間には深く暗い溝がある
下手に「できる」と言わないほうがいいこともあるのさ
正確であることがいいこととは限らない
322:デフォルトの名無しさん
09/01/11 10:45:16
無理か無理じゃないかの溝のほうがでっかいけどな
323:デフォルトの名無しさん
09/01/11 10:53:29
つか、Aというプログラミング言語で可能なことがBというプログラミング言語で可能かどうかという問いには
多くの場合「そりゃやろうと思えば不可能じゃないけどぉ…」という留保つきの回答がほとんどだろ
324:デフォルトの名無しさん
09/01/11 11:33:38
Pythonは楽だけどRubyではしんどい
VBは楽で良いと思う
C++が楽というのは同意しかねる
C#の間違いじゃないのか
325:デフォルトの名無しさん
09/01/11 11:47:44
他人にやらせるのが一番いいよ
326:デフォルトの名無しさん
09/01/11 20:05:38
URLリンク(japanese.joelonsoftware.com)
327:デフォルトの名無しさん
09/01/17 15:15:14
宿題じゃないですが、これより強いジャンンケン戦略作れます?
URLリンク(www.ceres.dti.ne.jp)
328:デフォルトの名無しさん
09/01/17 16:06:38
/ /::// : : : : : : : i: : : ∧\: : : : :∧: :\ : : : : : : : : : ヽ.: : :|ム: : : : : : : : : : :
/ /://.: : : : : : :i : |: : : : ∧: ヘ: : : :∧: ::ム._: : : : : : : : :.l: : :|ム!: : : : : : : : : :
. / / .|.: : : : : : : |: :ム、: : ∧.ヘ ><´ ̄\ヘ`,ハ: : ム、 ハ: : |ム!: : : : : : : : : :
,'. |: : :i: : :i: : ハ,斗―.、: :∧ ヘ r',ィ==寸ュ、_,ハ: : i: |: : |: : |ム!: : : : : : : : : :
i | :|: i : : i: : :ヘ、〉zュ、\::ヘ. .\ '´ f⌒付ハヘ〉!|: |: |: : 「.ヽ!ム!: : : : : : : : : :
| |: |: i : : i: : : : r{.「⌒ヽ \ヘ. ` .kr'...::i:::::!′|: |: | : fい lム!: : : : : : : : : : :
| .| ∧ヘ: : :ヘ: : : N kr'::ム ヽ Vし'ク;ソ .|: |: |: / .メム!: : : : : : : : : : :
. N ヽ \: :\:`ヽ. Vし! `ー " ノ ル' / |/ Nム: : : : : : : : : : :
. '. \ \: :\∧ゝノ. . |: /.i .|. | Vム: : : : : : : : : :
. \|丶: : ∧. ` __ ,イ レi i. | .| i.Nム: : : : : : : : : :
|: :i: : 「`ヽ. ヽ ) / | i i. | .| i.|. Vム: : : : : : : :
|: :i: : | .,≧、 / | i i. | .| i.| Vム: : : : : : : :
-‐-、j: :i: :i.| / } ` rュ-1´ ,ィ| i i .L__ | i.| Vム: : : : : : :
. { ヽi i.|‐/ .ノ_,ィj .>! r<´ | i i .! `ヽ L__ Vム: : : : : :
`ヾ. └-イ / / ト、_}-{_ァ|. | i i | 、丶ヽy'¨ ̄`Vム__: : : : 受験生の皆さん
/ | `ー-‐'´ ̄ ̄`Y. .〈. ノ≧{:::{≦.、 | i i |. \/ }ム}. 〉 センター試験
. /. |、 、____,斗-!、/.::/:/:/|「|:∧:::〉| i i |、 >' ./ム! / 頑張って下さい
{ | ノ―〈/::/.:||::!:::::V. | i i |/ ./ム! /