Rubyの宿題教えてください。2限目
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
2008/01/13(日) 07:00:47【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう.
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):()
[3] 環境
[3.1] OS: (Windows/Linux/等々)
[3.2] バージョン: (Ruby 1.8.6 等)
[3.3] 言語: (Ruby/JRuby/IronRubyどちらでも可 等)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
前スレ
http://pc11.2ch.net/test/read.cgi/tech/1106572657/
Ruby Home Page
http://www.ruby-lang.org/ja/
Ruby 初心者スレッド Part 16
http://pc11.2ch.net/test/read.cgi/tech/1197120980/
Rubyについて Part 30
http://pc11.2ch.net/test/read.cgi/tech/1200106073/
Ruby on Rails
http://pc11.2ch.net/test/read.cgi/tech/1191381506/
その他 過去スレ・関連スレは >>2-
0002デフォルトの名無しさん
2008/01/13(日) 07:05:00今は反省している
0003デフォルトの名無しさん
2008/01/13(日) 18:01:260004デフォルトの名無しさん
2008/01/13(日) 23:17:57乙
0005デフォルトの名無しさん
2008/01/14(月) 21:01:58http://pc11.2ch.net/test/read.cgi/tech/1200106073/9
http://pc11.2ch.net/test/read.cgi/tech/1200106073/12
http://pc11.2ch.net/test/read.cgi/tech/1200106073/22
0006デフォルトの名無しさん
2008/01/22(火) 23:07:440007デフォルトの名無しさん
2008/01/23(水) 10:39:240008デフォルトの名無しさん
2008/01/23(水) 23:19:14[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)は習いました。
0009デフォルトの名無しさん
2008/01/23(水) 23:28:11それ宿題っていうか試験のレベルなのでは…
GooglePagesでできることはやたら多岐にわたるぞ
ユーザーからファイルアップロードとHTML入力を許して
「ユーザー名.サービス.com」なサイトを作らせるシステムを作れってことなのかな
0010デフォルトの名無しさん
2008/01/24(木) 00:11:380011デフォルトの名無しさん
2008/01/24(木) 00:23:12例としてGooglePagesが挙げられているだけで。
0012デフォルトの名無しさん
2008/01/24(木) 00:52:06そこをなんとかお願いいたします。m(__)m
>>11
その通りです。Google Pagesはあくまで例とのことです。
言葉足らずで申し訳ありません。
まったく手も足もでない状況です・・・
丸投げで申し訳ありませんが、よろしくお願いいたします。m(__)m
0013デフォルトの名無しさん
2008/01/24(木) 01:35:420014デフォルトの名無しさん
2008/01/24(木) 02:07:080015デフォルトの名無しさん
2008/01/24(木) 20:19:100016デフォルトの名無しさん
2008/01/24(木) 21:07:570017デフォルトの名無しさん
2008/01/25(金) 19:12:340018デフォルトの名無しさん
2008/01/25(金) 21:49:54話はそれからだ。
0019デフォルトの名無しさん
2008/01/25(金) 22:14:3200208
2008/01/26(土) 11:35:03じゃあ答えなくて良いです。
他の方よろしくお願いいたします。m(__)m
0021デフォルトの名無しさん
2008/01/26(土) 12:18:500022デフォルトの名無しさん
2008/01/27(日) 14:06:48こいつでいいんじゃね?
0023デフォルトの名無しさん
2008/01/27(日) 17:18:38はい、次の宿題どぞー
0024デフォルトの名無しさん
2008/01/28(月) 03:03:18前スレいつの間に落ちたんだ
>>9
ワロタ
0025デフォルトの名無しさん
2008/01/28(月) 03:11:37参考になりそうなところ
Ruby on Rails based CMS in Ruby on Rails
http://wiki.rubyonrails.org/rails/pages/Ruby+on+Rails+based+CMS
0026デフォルトの名無しさん
2008/01/28(月) 03:15:33wikiもCMSの一種だし
pylori*style: RailsでWikiクローンを作る
http://tam.qmix.org/archives/2005/08/railswiki.html
Japan.internet.com デベロッパー - RailsでWikiシステムを作成する
http://japan.internet.com/developer/20070731/26.html
その他参考サイト
RoRのサンプルまとめ - plus ultra blog
http://ultra.boy.jp/?p=926
0027デフォルトの名無しさん
2008/01/28(月) 20:03:06「金くれたらやるよ」でOK
教授にもう少し勉強しなさいって言っておけ
002828 ◆B/rqf88wwo
2008/01/28(月) 23:57:40[1] 授業単元:リダイレクト、正規表現など
[2] 問題文(含コード&リンク):(http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5932.zip)
[3] 環境
[3.1] OS: (Windows)
[3.2] バージョン: (詳しくは分かりませんが最新のものだと思われます)
[3.3] 言語: (Ruby)
[4] 期限: ([2008年1月30日17:00まで])
[5] その他の制限: (とりあえず正規表現あたりまで)
レポートの期限が明後日に迫って神にもすがる思いです・・・
どなたかお願いします_ _
0029デフォルトの名無しさん
2008/01/29(火) 00:07:21で、自力ではどこまでできたんだよ
レポートに説明書かないといけないんだから方向くらいは示してくれ
0030デフォルトの名無しさん
2008/01/29(火) 00:15:27ruby -v
003128 ◆B/rqf88wwo
2008/01/29(火) 00:20:38「入力が終わりに達するまで1行ずつ読み込む」→while line = gets
「1行分のデータをタイトルと旧ISBN規格のコードを代入する」→split(/,/)
「タイトルをキーとするハッシュをソートする」→.sort!
おそらくこの辺りを使うと思うんですが、全体的な構成が全然見えなくて…
あと「while line = gets」を実行すると「Bad file descriptor」というエラーが出てきてどうも上手くいかないみたいなんです。
003228 ◆B/rqf88wwo
2008/01/29(火) 00:23:29これは初めて知りました!
実行してみたら「ruby 1.8.5」と出ました。
003328 ◆B/rqf88wwo
2008/01/29(火) 00:26:08正しくは
「1行分のデータをタイトルと旧ISBN規格のコードに分割」→split(/,/)
です
0034デフォルトの名無しさん
2008/01/29(火) 00:27:46コーディング規約とか書いてあったけど自分で修正するの?
003528 ◆B/rqf88wwo
2008/01/29(火) 00:52:02これは自己解決しました!
リダイレクト実行の場合、先頭に「ruby」を付けないとこんなエラーが出るみたいです
0036デフォルトの名無しさん
2008/01/29(火) 00:56:13# 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
ほれハッシュに放り込むとこまで作ったぞ
0037デフォルトの名無しさん
2008/01/29(火) 01:01:25i = ('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
003837
2008/01/29(火) 01:01:54while 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
0039デフォルトの名無しさん
2008/01/29(火) 01:02:59$ 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
004037
2008/01/29(火) 01:06:21putsのとこは1行で書いてね
そういえばチェックディジットの計算にはmod使えって書いてあったんだっけ
「下1桁を文字列として取る」とか数学的な計算を思いっきり無視してるなスマン
0041デフォルトの名無しさん
2008/01/29(火) 01:12:20同じ学類wwwww
そんくらい自分でやれよ!
単位取れても使えなきゃ意味無いぞ!
0042デフォルトの名無しさん
2008/01/29(火) 01:18:190043デフォルトの名無しさん
2008/01/29(火) 01:21:04使わなけりゃ問題はなかんべ
0044デフォルトの名無しさん
2008/01/29(火) 01:23:400045デフォルトの名無しさん
2008/01/29(火) 01:32:56…まあ、Rubyの産みの親だしな…
0046デフォルトの名無しさん
2008/01/29(火) 01:34:12>>44
Tくば大学のハルヒキャンパスだそうな
いや意表ついて本当にハルヒって読むんだったらぼかしにも何にもなってなくてスマンが
0047デフォルトの名無しさん
2008/01/29(火) 01:38:26他の大学でしょぼいとこは真似っこしてみるといいと思う
0048デフォルトの名無しさん
2008/01/29(火) 01:44:30安心しろ、読み方違うから。
でもしょっちゅうネタになってる…orz
しかし俺の書いたのの半分くらいで作られると、自分の技量の無さがいやと言うほど判って悲しくなってくるぜ
0049デフォルトの名無しさん
2008/01/29(火) 01:48:27p cd('897'<<'0743257332') #=>6
よっしゃー^^;
どんなもんじゃー!
0050デフォルトの名無しさん
2008/01/29(火) 01:54:59調べながら書いたので技量はたいしたことない
whileとgetsの使い方なんてエラー出たからマニュアル見て書き換えたくらいで全く覚えてないぞ
0051デフォルトの名無しさん
2008/01/29(火) 01:55:430052デフォルトの名無しさん
2008/01/29(火) 03:22:11def 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
0053デフォルトの名無しさん
2008/01/29(火) 03:25:270054デフォルトの名無しさん
2008/01/29(火) 03:27:55ARGF.each do ... end を puts ARGF.map do ... end.sort
にするだけな気がするけど面倒くさいから試さないぜ
0055デフォルトの名無しさん
2008/01/29(火) 11:47:07>>37-38をコピペしたら「本当はわかってない」のが丸わかりだろうな
コメントや解説の強制はなかなか効果的だ
0057デフォルトの名無しさん
2008/01/29(火) 12:10:05でもまあ動作するスクリプトが目の前にあれば自力ででも作りやすいだろ
コピペで済ますのも自由だしな
0058デフォルトの名無しさん
2008/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になおしてもらえるならお願いします(×_×)
0059デフォルトの名無しさん
2008/01/29(火) 18:00:300060デフォルトの名無しさん
2008/01/30(水) 03:13:17require'matrix'してVectorクラス使ってみれば。あとはmathnとか必要に応じて
dj*qは(dj.covector*q)[0]くらいでいけるんじゃね
0061デフォルトの名無しさん
2008/01/30(水) 03:27:39dj*q=dj.inner_product(q)
絶対値もあったわ・・・
(Σ_[i=1, m] dij^2)^(1/2)=dj.r
0062デフォルトの名無しさん
2008/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日間
ーーーーーーーーーーーーーーーー
時間の取得とファイル入出力はできるのですが,
クラスでメソッドを定義しファイル入出力をしようとすると
上手く行きません.見本をどなたかお願いします,
初心者の質問でもうしわけないのです,よろしくお願いします,
0063デフォルトの名無しさん
2008/02/02(土) 00:05:56「2008年02月02日」をテキストファイルAに出力し、
コマンドラインから「2008年02月02日」とか入力して、
テキストファイルAに「2008年02月02日」という行があったら
それをテキストファイルBにコピーするという意味か?
どういう処理なんだかよくわからない。
あと何がうまくいかないんだかよくわからないから
うまくいかないソースを提示したらどうだ。
丸投げで全部書いてくれってのはよくない。
0064デフォルトの名無しさん
2008/02/02(土) 00:41:28>>49すげえw
0065デフォルトの名無しさん
2008/02/02(土) 00:51:09時代だなあ・・・って思ってしまう
俺のいたころ(つっても数年前だが)には
まだハルヒとかなかったもんな
0066デフォルトの名無しさん
2008/02/02(土) 06:57:38いや、そのまんまの処理だと思うが…
たった1行書き出してたった1行読み込んでたった1行マッチさせてたった1行を再書き出し
もっと実利に即したわかりやすい課題にしろよとは思うが適当に課題出せばこんなもんだろ
>>62
クラスとメソッドを自力で定義してよいという課題な時点で回答は無限に存在する
ぜんぜん理解できないスゴい代物が返ってくる可能性があるので、
どの部分をクラスにしてどの部分をメソッドにする気なのか口頭でいいから教えてちょ
0067デフォルトの名無しさん
2008/02/02(土) 07:03:000068デフォルトの名無しさん
2008/02/02(土) 07:30:000069デフォルトの名無しさん
2008/02/02(土) 07:58:30だってつまんないんだもん^^;
0070デフォルトの名無しさん
2008/02/06(水) 17:12:21ありがとうございます。
初心者ですみません><
どの部分をクラス、メソッドにすれば一番理解しやすいものに
なるのでしょうか。解説つけることも課題の内なので、理解しやすいもので
お願いします。
「どの部分をクラスにしてどの部分をメソッド」というのにすごく驚きました。
そんなに無限にできるのですか?@@
0071デフォルトの名無しさん
2008/02/06(水) 20:26:05ひとつポリシーの質問なんだが
2000年6月15日に生まれて、今日が
2001年9月20日だった場合、生きてる期間は1年と3月と5日だよな
じゃあ今日が
2001年3月14日だった場合は何年と何月と何日だと思う?
0072デフォルトの名無しさん
2008/02/06(水) 22:01:44そのぶん、普段頭の中でやってる計算をプログラムとして書き下すという訓練には適してるけど
0073デフォルトの名無しさん
2008/02/06(水) 22:06:090074デフォルトの名無しさん
2008/02/07(木) 10:17:58すみません。
うるう年とか、31日とかは気にせず、30日で
計算で大丈夫です。
0075sage
2008/02/07(木) 10:42:29while true
begin
case de
when nil
de = gets
next
when 'l' then puts "X"
end
rescue
puts $!
end
de = nil ←2
end
今いろいろなソースを読んでいるのですが、
上記の1と2がわかりません。説明をお願いします。
また、
0076デフォルトの名無しさん
2008/02/07(木) 11:01:342は、de が指している文字列オブジェクトが参照されなくなるようにしている、
のだと思う。
0077デフォルトの名無しさん
2008/02/07(木) 12:22:19begin
while de = gets do
puts 'X' if de == 'l'
end
rescue
puts $!
end
たぶんこういう標準入力ループをやりたかったのだろうと推測
while trueを使うことはRubyではあまりない
nilの理解はしてるかな
Rubyで偽を表す特別な値だ
値の一度も入ってないローカル変数を参照することはできないから、
「仮に」nilを入れておくということをRubyではよくやる
それが1なんだが、「エラーが出たから書きました」的投げやり感が…
0078デフォルトの名無しさん
2008/02/07(木) 13:02:36require '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
0079デフォルトの名無しさん
2008/02/07(木) 13:03:05def 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
0080デフォルトの名無しさん
2008/02/07(木) 13:03:59file_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)}"
0081デフォルトの名無しさん
2008/02/07(木) 13:07:23$ 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の繰り下がり
0082デフォルトの名無しさん
2008/02/07(木) 16:26:11class 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
0083デフォルトの名無しさん
2008/02/07(木) 16:26:33puts '現在時刻 ' + 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
0084デフォルトの名無しさん
2008/02/07(木) 16:28:41現在時刻 2008年02月07日
2008年02月07日
生年月日 2000年01月01日
生きてる年数 8年02月19日間
二行目が入力するとこね
あと年数計算は一月30日、一年360日で適当だからな
0085デフォルトの名無しさん
2008/02/07(木) 18:15:470086デフォルトの名無しさん
2008/02/07(木) 18:42:14と f で書く癖をつけておくと後々幸せになれるかと思われ
0087デフォルトの名無しさん
2008/02/07(木) 19:02:470088デフォルトの名無しさん
2008/02/07(木) 22:31:18Rubyでは意味的に >>87でいいと思われる
0089デフォルトの名無しさん
2008/02/08(金) 07:55:15fp にしてるのって俺だけ?
0090デフォルトの名無しさん
2008/02/08(金) 08:23:14>>86みたいに使い捨ての場合は f、
inとoutがあるばあいは、input、outputとちゃんと書く
0091デフォルトの名無しさん
2008/02/08(金) 11:32:09ありがとうございます。
これをいくつかに分岐させるとしたら。
while de = gets do
if de == 'l'
puts 'X'
else de =='V'
puts 'Y'
end
てな感じでよいのでしょうか?
0092デフォルトの名無しさん
2008/02/08(金) 11:39:46inとoutでいいじゃん
IOっぽいし長くても3文字だし
inやoutをデータ変数名に使ってて紛らわしくなるとか口走ったら百叩きで
>>91
Rubyにおいてはif文の連結はelisfを使う
あるいはcaseを使ってもいい
いちいち聞いてると埒あかないから適当なRuby入門サイトでも見て勉強するといい
0093デフォルトの名無しさん
2008/02/08(金) 13:32:54はい。
elisf調べてみます。
0094デフォルトの名無しさん
2008/02/08(金) 16:05:16初心者用解説サイトくらい見ながらやったほうが時間の節約にもなるというのは同意
必要なくなったら忘れりゃいいんだし
0095デフォルトの名無しさん
2008/02/08(金) 18:25:07> inやoutをデータ変数名に使ってて紛らわしくなるとか口走ったら百叩きで
紛らわしいどころか、inは予約語だよ。
0096デフォルトの名無しさん
2008/02/08(金) 21:49:450097デフォルトの名無しさん
2008/02/11(月) 17:08:01Rubyのコード内でメモリ消費量やステップ数の計算・表示はできるんでしょうか?
また普通どういう方法でおこなうのでしょうか?
0098デフォルトの名無しさん
2008/02/11(月) 17:28:150099デフォルトの名無しさん
2008/02/11(月) 19:16:240100デフォルトの名無しさん
2008/02/11(月) 19:42:400101デフォルトの名無しさん
2008/02/11(月) 19:48:57これ?
0102デフォルトの名無しさん
2008/02/11(月) 20:01:33gem install なんとか で
Bulk updating Gem source index for: http://gems.rubyforge.org
と表示して数分止まるのはどうにかならんもんかね
っていうかこのとき何してるんだ
0103デフォルトの名無しさん
2008/02/11(月) 21:04:53gem遅いよねえ
たぶん、毎回、http://gems.rubyforge.org/yaml からYAMLまるごともってきてるからだと思う。
gems鯖側でDBにしてクエリーなげればいいんだろうけどな
0104デフォルトの名無しさん
2008/02/11(月) 21:08:35スゲエ
スクロールしてもスクロールしても先が見えねえ
0105デフォルトの名無しさん
2008/02/11(月) 21:24:370106デフォルトの名無しさん
2008/02/11(月) 21:45:48--21:43:05-- http://gems.rubyforge.org/yaml
=> `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…?
0107デフォルトの名無しさん
2008/02/11(月) 22:04:09ワロス
どっかの円周率のサイト思い出した
0108デフォルトの名無しさん
2008/02/12(火) 00:47:18そろそろgentooのportageみたいに細かく分ける方式にしたほうがいいね。
0109デフォルトの名無しさん
2008/02/12(火) 20:53:12HAHAHA!
こいつはクレイジーだぜ!
開いただけでfirefoxが112MBもメモリ喰ってる
0110デフォルトの名無しさん
2008/02/14(木) 09:52:31円周率のサイトは無限に続いてたんだっけ?
0111デフォルトの名無しさん
2008/02/14(木) 09:58:25無限じゃないにしろ、ふつう表示しきれない。
0112デフォルトの名無しさん
2008/02/15(金) 01:54:150113デフォルトの名無しさん
2008/02/15(金) 13:49:300114デフォルトの名無しさん
2008/02/15(金) 14:22:44○×ゲームも作った覚えがある
3分タイマーとかも作ったっけか
0115デフォルトの名無しさん
2008/02/15(金) 17:18:330116デフォルトの名無しさん
2008/02/15(金) 18:10:290117デフォルトの名無しさん
2008/02/16(土) 03:03:060118デフォルトの名無しさん
2008/02/16(土) 03:19:25CGI使ったクライアント<->サーバの実習みたいなのではRuby使ったけど。
0119デフォルトの名無しさん
2008/02/16(土) 03:54:13先手、Matzで
Ruby│ │
──┿──┿──
│ │
──┿──┿──
│ │
0120デフォルトの名無しさん
2008/02/16(土) 04:18:27──┿───┿──
│ │
──┿───┿──
│ │
0121デフォルトの名無しさん
2008/02/16(土) 13:33:10──┿───┿──
│Ruby │
──┿───┿──
│ │
0122デフォルトの名無しさん
2008/02/16(土) 13:35:07──┿───┿──
│Ruby │
──┿───┿──
│ │ Ruby
0123デフォルトの名無しさん
2008/02/16(土) 13:36:14──┿───┿──
│Rutile │
──┿───┿──
│Rutile │
0124デフォルトの名無しさん
2008/02/16(土) 14:19:130125デフォルトの名無しさん
2008/02/16(土) 16:20:380126デフォルトの名無しさん
2008/02/16(土) 18:19:24What is Rutile??
I don't know.
0127デフォルトの名無しさん
2008/02/18(月) 02:23:54ルビーもルチルも宝石名かつBL誌名
0128デフォルトの名無しさん
2008/02/19(火) 07:13:52Thanks. I like BL too.
u r a best friend.
0129デフォルトの名無しさん
2008/02/20(水) 00:06:310130デフォルトの名無しさん
2008/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を使って変換してください。
0131デフォルトの名無しさん
2008/02/23(土) 18:55:37そんな2ch的に危なっかしいものこっちからホイホイ出せるか(w
あと、Cookieとか2chとかに関する勉強が足りないように見える
それのどこがそんなにおかしいのかさっぱりわからない
0132デフォルトの名無しさん
2008/02/23(土) 19:01:18ERROR:ブラウザを立ち上げ直してみてください。
とりあえず,
Set-CookiesをそのまんまCookiesヘッダにセットしないで、
Datを取得したときのDateヘッダーをexpiresにセットしても同じで、
expiresを消去しても無効。
どうすればいいんだろうか
0133デフォルトの名無しさん
2008/02/23(土) 19:29:46> とりあえず
なんでそんなこと場当たり的に試す必要があるんだよ
2chへの書き込み方法はきちんと形式が決まってるだろ
0134デフォルトの名無しさん
2008/02/23(土) 19:49:37書き込むがShiftJISでないのに一票
0135デフォルトの名無しさん
2008/02/23(土) 20:15:39> [1] 授業単元:2chの書き込み(よくわからないけどこれでいいのかな)
この問題は、自力で解決できないやつは質問不可。
0136デフォルトの名無しさん
2008/02/23(土) 20:29:33Cookieじゃなくて、POSTのtimeがおかしかった模様。
すいません><
ちなみにKConv.tosjisつかってます
最初はURL間違ってたとかで初歩的だった。
それをなおしたらこれだったんだけど。
Rubyでlocaltimeというの?microtimeだっけ?取得するのはどうやるんだろう
0137デフォルトの名無しさん
2008/02/23(土) 21:09:162chブラウザ開発資料
http://info.2ch.net/wiki/index.php?monazilla%2Fdevelop
2ちゃんねるの仕様
ttp://www.monazilla.org/document/
Rubyで書かれた2chブラウザ(古いので鼻捥げには未対応と思われ)
ttp://www.unixuser.org/~haruyama/software/goRua/
0138デフォルトの名無しさん
2008/02/24(日) 06:04:08スクリプトで2ch書き込みって時点で危なっかしくて答えられねえよw
0139デフォルトの名無しさん
2008/02/24(日) 06:31:390140140 ◆.DxfZ0s0HA
2008/02/26(火) 20:20:04[1] 授業単元:GUI等
[2] 問題文(含コード&リンク):(http://www.dotup.org/uploda/www.dotup.org2551.zip.html)
[3] 環境
[3.1] OS: (Windows)
[3.2] バージョン: (1.8.5)
[3.3] 言語: (Ruby)
[4] 期限: ([2008年2月29日17:00まで])
[5] その他の制限: (必ずGUIを用いる)
途中できたところまでのソースも入れてあります。
どうしてもGUIを用いる段階で引っかかっています。
よろしくお願いします。
014128 ◆B/rqf88wwo
2008/02/26(火) 20:20:420142デフォルトの名無しさん
2008/02/26(火) 20:29:500143デフォルトの名無しさん
2008/02/26(火) 20:33:10た
○
く
ば
の
ハ
ルヒか
授業見てねーからGUIに何使ってるかわからんので答えられないぞ
しかし微妙にレベルがハイで面白そうな演習してるな
0144140 ◆.DxfZ0s0HA
2008/02/26(火) 20:45:19GUIにtk使うことは確実なんですが…
上手く動作しませんがフォーマットだけはなんとか作れました。
あとはこれで動作するようになればいいのですが…
http://www.dotup.org/uploda/www.dotup.org2565.zip.html
DLパス:rep
0145デフォルトの名無しさん
2008/02/26(火) 23:58:09見栄えはきっちり書いてるみたいなのにチグハグなところがいっぱいあるんだけど。
0146140 ◆.DxfZ0s0HA
2008/02/27(水) 00:10:49前に自分で書いた2つの別のコードを組み合わせて作りました。
一部整合性つけるために直した(defの部分など)つもりなんですが…
あとどこを直せば上手く動くのかが見当つかなくて…
0147デフォルトの名無しさん
2008/02/27(水) 00:45:33定義した関数が
in:標準入力
out:標準出力
のままじゃん
in: 検索語
out: 検索結果
に変更汁
0148デフォルトの名無しさん
2008/02/27(水) 00:52:15引数を受け取って結果を返すメソッドとか作れ
メソッドを作った後にボタン押すと引数が入って結果が画面に表示されるように切り替えればいい
そんな丁寧にやってたら間に合わないかもしれないけれど
0149デフォルトの名無しさん
2008/02/27(水) 09:31:30# 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)
# 後半へ続く
0150デフォルトの名無しさん
2008/02/27(水) 09:33:10# 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
# 以上
0151149-150
2008/02/27(水) 11:22:58・Tk---.new(nil,...) の nil を削除(あっても問題ないけど)
・テキストとスクロールバーを同期させる部分
scr.command $text.yscroll -> $text.yscrollbar(scr)
・実害はないけど被ってる変数名(metaとか)は適当に変更
あと青空文庫からテキスト落してみたけど、作品によって題名、
著者名(、原題、副題、翻訳者等)の並びが違う
検索結果が期待した表示にならないケースが結構あると思う
0152その1/2 Viewクラス(ユーザーインターフェースの役割)
2008/02/27(水) 11:45:22require "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
0153その2/2 Controllerクラス(UIと手続きの関連付け)
2008/02/27(水) 11:46:57def 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
0154デフォルトの名無しさん
2008/02/27(水) 13:39:56Tk部品部分と内部検索処理部分でどうやってデータ受け渡そうかとか悩むのが軽減される
0155140 ◆.DxfZ0s0HA
2008/02/27(水) 17:32:44皆さん本当にありがとうございます!
ところで>>149-150は最初のdefの後に続ければいいのでしょうか?
0156149-
2008/02/27(水) 18:13:30>>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 を分離できるね
0157140 ◆.DxfZ0s0HA
2008/02/27(水) 20:33:54とりあえず、>>149と>>150を連結してそのまま実行してみたんですが「本文全体検索」は問題なく実行できました。
ただ、「メタデータから検索」ができないんですけどどのようにすればよいのでしょうか…?
あと
>・テキストとスクロールバーを同期させる部分
>scr.command $text.yscroll -> $text.yscrollbar(scr)
の部分はどこに挿入すればいいのでしょうか?
0158デフォルトの名無しさん
2008/02/27(水) 21:00:07俺たちは授業受けてないんだから、自分からテンプレートくらい出せないと
「明らかに授業と違うプログラム」を提出し続ける羽目になる
それがどう評価されるかは自明だ
てか、改造する心の余裕くらいは持ってほしい所存
0159デフォルトの名無しさん
2008/02/27(水) 21:03:10>>157
それぞれがどういう処理してるかは読める?
0160140 ◆.DxfZ0s0HA
2008/02/27(水) 21:10:33はい、なんとなくは…
meta.command(上のボタンの処理)とview.command(下のボタンの処理)に付け加える
必要があることは分かります。
ただそのままここでdefを使用しても動作しないみたいで…
0161デフォルトの名無しさん
2008/02/27(水) 21:18:36defで定義したメソッド名をそのまま指定しても動作しない
Proc.new{ }の中身はいわゆるふつーのRubyスクリプトでよい
変数は「その場」で有効なスコープの変数が使える
どうでもいいけど$entryとか$textとかはグローバル変数でなくてもいいような希ガス
meta.command = Proc.new{ metasearch($entry.value) }
...
def metasearch(search_str)
# search_strをてきとうにけんさく
end
0162デフォルトの名無しさん
2008/02/27(水) 21:31:12課題として可能なら起動時に@databaseとかにメタデータ部分を保管しておくといいのかもしれん
0163140 ◆.DxfZ0s0HA
2008/02/27(水) 22:00:12def 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に新たに付け加えてみたのですが上手く動作しません…
どこがおかしいのでしょうか?
0164デフォルトの名無しさん
2008/02/27(水) 22:32:26あれ?ほんとだ、なに勘違いしてたんだろ
>>163
saerch を二回呼んでるのは御愛嬌として
・Tk.mainloop 以下の記述は無効(未処理)
・ファイル名が glob のワイルドカードと一致していない
・文字コードが sjis に統一されていない
・副題、原題等がある時 search は正しく動作しない
くらいかな
0165140 ◆.DxfZ0s0HA
2008/02/27(水) 22:49:46やっぱりここでdefは使わない方がいいのでしょうか…?
混乱してきましたw
0166140 ◆.DxfZ0s0HA
2008/02/27(水) 23:04:13ちなみに普段の授業ではこういう形式で習っています。
以下はプログラムの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
0167デフォルトの名無しさん
2008/02/27(水) 23:10:08Tkのパーツに対する初期的指示はTkナントカ.newから.packの間に書いておけ
あと、メソッド単体でも動作するようにしてからTkに組み込め
どこでエラーが発生してるのかわけがわからなくなるから
それと、手を抜くためにも授業は受けておけ
授業を受けておけば授業込みで3時間くらいでパクれるものが、授業を聞かないがために1日以上掛かる
0168デフォルトの名無しさん
2008/02/27(水) 23:13:35テキストが与えられて、10個くらいの課題をこなす。
そのうち1つが必須になっていて、そこまでできたら見せに行く。
教授とTAがいるから、わからない部分があれば質問できる。
2コマなんだが、さっさと終わらせて1コマ目で出て行くやつも多いし。
0169140 ◆.DxfZ0s0HA
2008/02/27(水) 23:17:11授業は受けてるんですけど今回のプログラミングの教師があんまり説明をしてくれないもので。。
ほとんど自学状態なんですよ…
ほんとに初心者ですいません。
残りの上のボタンの処理(メタデータから検索)と下のボタンの処理(ファイルの中身を表示)もご教授お願いしますm(_ _)m
0170デフォルトの名無しさん
2008/02/27(水) 23:25:35glob先のファイルパスの先頭に//が2つあるのが若干謎だが
あ、そうか、これじゃエラーで動かねえな
Dir.globの引数はglobな文字が入った文字列だがこれじゃ文字列になってない
実行エラーの見かたとか習ってないん? 行数が表示されるからそのへんがおかしいとか
どこがおかしいのか見当もつかないようではちょっとミスっただけで延々全部検証する羽目になるぞ
0171デフォルトの名無しさん
2008/02/27(水) 23:32:55Tk.mainloop 以下の記述はウインドウ閉じるまでは実行されないぞ
あと、ファイルの表示はまんま >>166 だろ
0172その2/2 Controllerクラス(UIと手続きの関連付け)
2008/02/28(木) 03:53:05require "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
0173140 ◆.DxfZ0s0HA
2008/02/28(木) 12:28:32>Dir.globの引数はglobな文字が入った文字列だがこれじゃ文字列になってない
これはどういうことなのでしょうか…?
>>171
もちろん最後に追加してるわけじゃないです。
0174デフォルトの名無しさん
2008/02/28(木) 12:56:09> glob先のファイルパスの先頭に//が2つあるのが若干謎だが
WindowsだからUNCだろ。
>>173
> >Dir.globの引数はglobな文字が入った文字列だがこれじゃ文字列になってない
> これはどういうことなのでしょうか…?
文字列が閉じてないということだろうが、ちゃんとコピペするように。
というか、File.openはブロックつきで使え。
filereadもIO#read使えばwhileなんて必要ない。
ちょっとリファレンスくらい読んどけ。
というかこのくらいも説明しない授業ならとる必要ない。
0175デフォルトの名無しさん
2008/02/28(木) 13:33:18Ruby特有の記述をバリバリ使うんじゃなくて、どの言語でも通用するような書き方で書いてる雰囲気が漂ってくる
だから#eachとか使わずwhileで回したりしてるとおもふ
0176140 ◆.DxfZ0s0HA
2008/02/28(木) 13:34:41すいません!
文字列閉じはここに書き写すときに抜け落ちました。
実際はあるんですが、それでも上手く動作しないんです。
あとブロックつきとか何のことか分からないです…
0177140 ◆.DxfZ0s0HA
2008/02/28(木) 13:41:29DL Pass:rep
とりあえず現段階のプログラムリストをアップいたします。
どこかおかしい所があれば修正お願いいたします。
0178デフォルトの名無しさん
2008/02/28(木) 16:03:02感じも何も、いきなりRubyだ
初めての言語がRubyってどうなんだろうな
0179デフォルトの名無しさん
2008/02/28(木) 16:14:390180デフォルトの名無しさん
2008/02/28(木) 16:30:02別に問題はない
きちんと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)の結果を渡すというのがそもそも変だってわかるだろ
0181デフォルトの名無しさん
2008/02/28(木) 17:10:09label = 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
0182デフォルトの名無しさん
2008/02/28(木) 17:10:51pattern = 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
0183デフォルトの名無しさん
2008/02/28(木) 17:30:17クラスとメソッドとかの授業はしてないのかしら
ブロックつきメソッドとか
0184140 ◆.DxfZ0s0HA
2008/02/28(木) 20:22:25ご丁寧にありがとうございますm(_ _)m
ようやく全ての機能を満たしたプログラムの完成にこぎつけられました。
ちなみにmetasearchのメソッドのところではタイトルと著者名両方から検索しろとのことだったので
「||」を使ったのですがそれで問題ないみたいです。
とにかく変数がやたらと出てきたのがまず混乱の元だったと思います。。
def部分とその他は分けて考えたほうが良さそうですね・・・
0185デフォルトの名無しさん
2008/02/29(金) 00:08:120186デフォルトの名無しさん
2008/03/01(土) 00:34:430187デフォルトの名無しさん
2008/03/01(土) 23:12:32s = IO.read "foobar.txt"
でいいですよね。
書き込みも一発でできないのかな?
これくらい?
open("foobar.txt", "w") {|f| f.write s}
0188デフォルトの名無しさん
2008/03/01(土) 23:18:120189デフォルトの名無しさん
2008/03/01(土) 23:52:40そんなこと言ったらread()という関数的メソッドがあってもいいし
0190デフォルトの名無しさん
2008/03/02(日) 13:26:350191デフォルトの名無しさん
2008/03/23(日) 16:53:38日本語でおk
0192デフォルトの名無しさん
2008/03/23(日) 17:06:500193デフォルトの名無しさん
2008/03/30(日) 13:16:290194デフォルトの名無しさん
2008/03/31(月) 17:12:10教育や学習に限ると、生産性の高さとか全く不要だと思うんだがー
0195デフォルトの名無しさん
2008/03/31(月) 17:41:59何が悲しくてオブジェクト指向の理解にC覚えなきゃいかんのよ
0196デフォルトの名無しさん
2008/03/31(月) 18:04:090197デフォルトの名無しさん
2008/03/31(月) 18:07:080198デフォルトの名無しさん
2008/03/31(月) 21:14:390199デフォルトの名無しさん
2008/04/02(水) 00:27:51クラス継承図を描くプログラムを完成させなさい。
0200デフォルトの名無しさん
2008/04/02(水) 00:55:250201デフォルトの名無しさん
2008/04/03(木) 20:48:37ただし、
3 の倍数のときは数字の変わりに Aho
5 の倍数のときは数字の変わりに Buzz
3 と 5 の倍数のときは数字の変わりに FizzBuzz
8 の倍数のときには数字の変わりに Ahe
を出力するプログラムを作成してください。
0202デフォルトの名無しさん
2008/04/03(木) 20:50:10誤
3 の倍数のときは数字の変わりに Aho
正
3 の倍数と 3 が付く数のときは数字の変わりに Aho
0203デフォルトの名無しさん
2008/04/03(木) 20:55:180204デフォルトの名無しさん
2008/04/03(木) 21:21:46http://d.hatena.ne.jp/gom68/20080314/1205471295
0205デフォルトの名無しさん
2008/04/03(木) 21:23:52Aho 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
0206デフォルトの名無しさん
2008/04/03(木) 21:26:40ttp://www.yabooo.org/archives/60
0207デフォルトの名無しさん
2008/05/12(月) 21:49:360208デフォルトの名無しさん
2008/05/12(月) 21:50:220209デフォルトの名無しさん
2008/05/12(月) 21:53:28ワンライナーで書いてやっからw
0210デフォルトの名無しさん
2008/06/03(火) 17:33:120211デフォルトの名無しさん
2008/06/05(木) 23:27:43・英文ファイルを読み込んで、40文字の行(単語が2行にまたがっては駄目)
に分割して出力するスクリプトを作成せよ
0212デフォルトの名無しさん
2008/06/06(金) 00:54:12確か答えはこんな感じだったはず
puts ARGF.read.gsub(/\s+/," ").gsub(/(.{0,40})\s/,"\\1\n")
0213デフォルトの名無しさん
2008/06/06(金) 01:13:11サンプルのテキストファイルを整形しろ、という課題でないと駄目だと思う
0214デフォルトの名無しさん
2008/06/06(金) 01:56:25re = /
(\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
0215デフォルトの名無しさん
2008/06/06(金) 01:57:22tmp = ''
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
0216デフォルトの名無しさん
2008/06/06(金) 02:06:12あと、みんな存在を忘れるんだが 's は頻発するから無視したら駄目だぞ
0217デフォルトの名無しさん
2008/06/06(金) 02:51:36foos' みたいなのが難しい…質問者じゃないが教えてエロいひと。
あと\w使ってるけど、英文で単語繋いだりするときってアンダーバーよりもむしろハイフンだよなぁ。
/[A-Za-z]+(?:-[A-Za-z]+)*/とかのほうがいいんだろうか。
0218211
2008/06/06(金) 17:50:270219デフォルトの名無しさん
2008/06/19(木) 19:25:36[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% の体重を表示してお終い。体重分布の比較をしたい。
という宿題です。 以上です。
0220デフォルトの名無しさん
2008/06/19(木) 19:32:350221デフォルトの名無しさん
2008/06/19(木) 19:39:46>並べて、
ここまではやりました><;
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]}
0222デフォルトの名無しさん
2008/06/19(木) 22:59:500223デフォルトの名無しさん
2008/06/19(木) 23:28:49えっ、えっ、 すごいな、並べるところまでできてしまっているような感じ
ワンライナーでなくても良いんですが。解読するのに1週間くらい
かかりそう。でもすごい。
MS Access で、2つのファイルをテーブルに読み込んで選択クエリー
でつなげばできるんですけど、MS Access も入手できない、poor man
プログラマーは、なんとかしなければならない。でも、すごいな。
0224デフォルトの名無しさん
2008/06/19(木) 23:33:220225デフォルトの名無しさん
2008/06/19(木) 23:41:58最初に data.txt を読み込んで、次に key.txtを読み込んで、ここにkeyが含まれていない
場合は、そのrecord を削除してしまい、残った record を4番目の項でソートする。
そんな感じでしょうか。 Hash とか使うのかなあと思っていたら、使わなくても良いとは
ちょっと、びっくり。
0226デフォルトの名無しさん
2008/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]}
0227デフォルトの名無しさん
2008/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 }
0228225
2008/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% のデータがあります。というわけで、ソートができれば、ゴールまで
もう少しです。
0229デフォルトの名無しさん
2008/06/20(金) 12:50:55動いたっぽいです。えーと、
> # キーを読み込む
> indexes = File.readlines('key.txt')
これだと、改行コードが indexes にひっついたままで、data.txt の検索で
引っかかりませんでした。ここは定石にしたがって
i=Files.open("key.txt")
indexes=Array.new
i.each{|key| indexes << key.chomp}
で検索できるようになりました。
0230デフォルトの名無しさん
2008/06/20(金) 17:32:260231デフォルトの名無しさん
2008/07/03(木) 10:01:06「はいの数が3つ以上なら〜です。」
「はいの数が3つ未満なら〜です。」
というように出すプログラムを作りたいのですが
わからなくて…
誰か助けて…
0232デフォルトの名無しさん
2008/07/03(木) 10:08:47放っておくと授業で全く触れてないもの使った先生が読めないようなプログラムが回答として返ってくるぞ
小学校の夏休みの算数の宿題に高校数学が使われてたらあからさまに不自然だろ
0233デフォルトの名無しさん
2008/07/03(木) 10:26:20授業では基礎的なことしかやっていません。
例えば
gets.chomp
if
printf
STDEER
というようなものを使ったりしています
0234デフォルトの名無しさん
2008/07/03(木) 10:27:34まったくだ
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
0235デフォルトの名無しさん
2008/07/03(木) 10:52:18すみませんがputsというのは習ってないのですが、
どんな意味ですか?
0236デフォルトの名無しさん
2008/07/03(木) 11:05:04"山は死にますか?\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
0237デフォルトの名無しさん
2008/07/03(木) 11:12:07あ、これならすべて習っています!
本当にありがとうございます。
助かりました(;_;)
0238デフォルトの名無しさん
2008/07/05(土) 05:27:15putsは改行も一緒に出力する
0239a ◆Ge868FLoWU
2008/07/12(土) 18:37:49[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" )
}
お願いします。
0240デフォルトの名無しさん
2008/07/12(土) 18:45:37まぁこういうのは配列操作のイディオムの知識としては必要なんだろうけど。
(´-ω-`)
0241デフォルトの名無しさん
2008/07/12(土) 19:37:25> (0..a[i].length-1).each{ |j|
> print( " ", a[i][j] )
> }
> print( "\n" )
> }
吐いた
むしろ泣いた
メソッド定義…、この授業だと「関数定義」とか呼んでそうだが、
def ナントカ
で使い回しできる機能を自分で作ることは習った?
0242a ◆Ge868FLoWU
2008/07/12(土) 19:50:16「関数定義」という言葉は授業で出てきましたが、よくわかりませんでした。
0243a ◆Ge868FLoWU
2008/07/12(土) 20:27:25if( 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
(´;ω;`)
0244デフォルトの名無しさん
2008/07/13(日) 02:39:00a.each {|i| i.each{|j| print j, " " }}
puts
inject版とか作ってくれ
0245デフォルトの名無しさん
2008/07/13(日) 02:41:29flatten一発ワロタ
0247デフォルトの名無しさん
2008/07/13(日) 02:45:29a.each {|i| puts i.join(" ")}
0248デフォルトの名無しさん
2008/07/13(日) 03:07:12宿題出した先生は本当はCでやりたいんだと
0249デフォルトの名無しさん
2008/07/13(日) 13:44:300250デフォルトの名無しさん
2008/07/22(火) 01:08:06ただし,ar に格納されたデータのうち負のものは,誤りを含んだデータなので集計しないようにしたい。
for ループで配列の要素を読み込んでいく,
その要素がゼロ以上の値を持つデータであれば,データの数を数え上げるとともに,データを加算していく。
ループが終了したら,上の例のように出力する。いずれの行の最後にも改行がある。
0251デフォルトの名無しさん
2008/07/22(火) 01:11:594.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
0252デフォルトの名無しさん
2008/07/22(火) 02:13:05これをカウントすべきかどうかで平均値が変わる。
計測器によっては -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"
0253デフォルトの名無しさん
2008/07/22(火) 10:03:23=> 0
> (-0).to_s
=> "0"
0254デフォルトの名無しさん
2008/07/22(火) 12:07:59irb> ar.all?{|e| e.is_a?(Float)}
true
0255デフォルトの名無しさん
2008/07/22(火) 12:26:520256デフォルトの名無しさん
2008/07/22(火) 12:36:31・ データは全て Float だから Integer の話をしても意味がない
・ -0.0 を to_s すると "-0.0" だから指摘に関連性を見出せない
・ トリビアごっこは他の場所でどうぞ
0257デフォルトの名無しさん
2008/07/22(火) 12:53:50ごめんね
0258デフォルトの名無しさん
2008/07/22(火) 13:50:23このプログラムは,次の数列の和が, 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"
0259デフォルトの名無しさん
2008/07/22(火) 13:55:16どうでもいいが、それができないとこれからの課題の全てを全部他人が書かないといけなくなるぞ
小学校2年で九九を全く覚えなかった小学生のように窮地に陥る
0260デフォルトの名無しさん
2008/07/22(火) 13:59:49ただ単位だけ欲しいんです(><)
0261デフォルトの名無しさん
2008/07/22(火) 14:02:030262デフォルトの名無しさん
2008/07/22(火) 14:05:270263デフォルトの名無しさん
2008/07/22(火) 14:07:230264デフォルトの名無しさん
2008/07/22(火) 14:09:340265デフォルトの名無しさん
2008/07/23(水) 00:39:100266デフォルトの名無しさん
2008/07/23(水) 01:14:19わかりにくくてごめんなさい。
でも問題文はこれですべてです。コピペしてあるので・・・
0267デフォルトの名無しさん
2008/07/23(水) 05:19:11そういうことじゃなくて朝鮮語で書けってことじゃないか?
俺はRubyは全くわからないが出題の意図は理解出来たぞ。
0268デフォルトの名無しさん
2008/07/23(水) 06:54:20要するに課題出した側はwhileを使ってほしいんだろうが、
if文でbreakでもいいのでは
限界より計算結果が大きくなったらbreakするプログラムで
式はsum+=100として
limitとsumをしっかり初期化すればおk
そっちの方がちょっと簡単そう、それを直せば出来る
エラーで困ってるならそれで
endや条件式の等号が==じゃなくて代入=になってないかとか
確認して、
#if・・・
if 1+1==2とかバグがありそうな行をコメントにして、代わりを書いて実行する
バックアップとりまくってアンドゥは1万回でも出来るような環境を利用する
警告出たっけ
0269デフォルトの名無しさん
2008/07/23(水) 10:51:03limit = 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"
0270269
2008/10/10(金) 21:37:160271デフォルトの名無しさん
2008/10/11(土) 16:05:24そもそも宿題を人に聞いたりはしない。
俺らは粛々と利用されておけば良い。
0272デフォルトの名無しさん
2008/10/12(日) 20:29:21ありがとうございました
0273デフォルトの名無しさん
2008/10/20(月) 13:12:25誰か教えていただけると幸いです><
WikipediaAPIをrubyで使いたいのですが(実はこの意味もわかってないです
ttp://wikipedia.simpleapi.net/
上記のページでも紹介されている
ttp://d.hatena.ne.jp/ma2/20061026/p1
を参照し、コピペして実行すると
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'
というエラーが出てきます。
きっと根本的なことが間違っているんですが…どうすれば使えるようになるので
しょうか?
何かインストールしたりする必要があるんですかね。
正直参照したページも色々理解できてません。馬鹿ですみません。
0274デフォルトの名無しさん
2008/10/20(月) 16:08:51課題の資料読め
0275デフォルトの名無しさん
2008/10/20(月) 19:35:48WikipediaAPIをrubyで使えれるようにするといわれただけなので…
0276デフォルトの名無しさん
2008/10/20(月) 19:55:17エラーメッセージよく読め。
スペルミスしてないか?
0277デフォルトの名無しさん
2008/10/21(火) 09:06:060278デフォルトの名無しさん
2008/10/21(火) 19:36:03ライブラリ作るのが課題なんじゃないの?
0279デフォルトの名無しさん
2008/10/21(火) 19:39:260280デフォルトの名無しさん
2008/10/22(水) 00:07:11require 'kconv'
require 'uri'
require 'net/http'
def wikipedia(keyword,query={})
query[:keyword] = URI.escape(keyword.toutf8)
uri = URI('http://wikipedia.simpleapi.net/api')
uri.query = query.to_a.map{|a| a.join('=')}.join('&')
Net::HTTP.get(uri)
end
puts wikipedia('ギコ猫',:output=>:html).toeuc # tosjis,etc
0281デフォルトの名無しさん
2008/10/22(水) 19:40:34エラーメッセージみても意味不明だったんで聞きました
>>276
コピペなんで何がどう間違えてるかわかりませんでした
>>277
PCから書き込めず携帯で打って間違えましたw
>>278
ライブラリ…?とりあえずできればよそのでも!
>>279
課題というか口頭命令でして…
>>280
動きました!ありがとうございます!!!
本当に感謝です。でもなんでこんなにシンプル…凄いです…
0282デフォルトの名無しさん
2008/10/22(水) 20:06:17・ Rubyに興味はなく、それをやれば終わり
・ それはRubyに関わる始まりに過ぎない
どっちなのかによって回答が大幅に違うと思われる
0283デフォルトの名無しさん
2008/10/22(水) 21:19:07なので後者ですかね…実際会って教えていただきたいものです
0284デフォルトの名無しさん
2008/10/22(水) 21:31:53というか、このタイミングで
・ 勝手ライブラリの WikipediaAPI 使え
・ 使ったことのない Ruby 使え
という指示が出るというのは研究はいったい何なんだろう
0285デフォルトの名無しさん
2008/10/22(水) 21:36:57その割にはいろいろヘンだが…
とりあえず、Rubyの入門を適当に学ぶしかないな
0286デフォルトの名無しさん
2008/10/22(水) 21:39:39来年社会人なるのでRubyは多分使いませんww
研究は詳しくは言えないのですが涙目です…;;
0287デフォルトの名無しさん
2008/10/22(水) 21:51:57「話せない」のなら無理だ
君は自分のやることを理解していない
教官もこんなのが残ってて困ってることだろう
0288デフォルトの名無しさん
2008/10/22(水) 22:09:26何をしたいか概略は話せますがこれを見られ特定されるのは痛いので…
先行研究の技術的な部分で教授に言われることをしている感じなんです
0289デフォルトの名無しさん
2008/10/22(水) 22:28:45「○○の××を用いた場合の△△手法開発における基礎的研究」とか
ものすごい注釈つきまくった浅い卒論になる奴だな
3年から本気でやらないからそんな題名レベルで異常に恥ずかしい俺何もやってませんでした的なものになる
履歴書に卒論題名書いたことでむしろ落とされるというレアな経験をお前も体験するんだ
とりあえず、本当はRuby関係ないんじゃね?
欲しいのはWikipediaのデータなんじゃないかと
0290デフォルトの名無しさん
2008/10/22(水) 22:41:04ついでに女です
0291デフォルトの名無しさん
2008/10/22(水) 22:48:450292デフォルトの名無しさん
2008/11/01(土) 23:39:410293デフォルトの名無しさん
2008/11/06(木) 15:18:56windowsではプロセスってつかえないっすか?
0294デフォルトの名無しさん
2008/11/06(木) 15:28:47Process クラスの使い勝手は Unix と違ってくるかもしれん。
0295デフォルトの名無しさん
2008/11/06(木) 21:55:110296デフォルトの名無しさん
2008/11/08(土) 23:05:210297デフォルトの名無しさん
2008/12/24(水) 14:58:220298デフォルトの名無しさん
2008/12/30(火) 03:01:09もういないだろうけど小●先生はきっとここ見てると思うよ
0299デフォルトの名無しさん
2009/01/01(木) 11:48:510300デフォルトの名無しさん
2009/01/01(木) 11:49:350301 【小吉】 【1044円】
2009/01/01(木) 11:52:07/⌒\ (__)
\●/(__)/⌒\
∩ ( ・ω・ )\●/ あけましておめでとうございます
Y  ̄ ||y||  ̄`''φ
Lノ /ニ|| ! ソ >
乂/ノ ハ ヽー´
`ー-、__|
ことしもよろしくね☆
0302デフォルトの名無しさん
2009/01/04(日) 23:07:19プログラムがランダムに出題し、人間が100個の
マスに回答を入力し、確認ボタンを押すと
全問正解なら回答にかかった時間を表示して終了。
間違った場合は間違った場所にカーソルが止まり、
別の値が入力されるまで待ちます。
横10個、縦10個の数字は各々11〜99までの乱数、
演算は +,-,x のみでよいです。
よろしくおねがいします。
0303デフォルトの名無しさん
2009/01/05(月) 00:33:25全然宿題じゃないだろこれw
仕事頼むなら金出せよ
0304デフォルトの名無しさん
2009/01/05(月) 01:13:00ttp://www.imymode.com/hp/bbs/index.cgi?mode=view&no=35
作成方法について
作り方を公開する予定は今のところないのですが、実際プログラムは驚くほど簡単です。
10×10のマスにランダムに数字を入れて、それを計算と会っているかどうかチェックするだけです。プログラムを始めたばかりの方の勉強として作るにはちょうどいいかもしれません。
がんばってくださいね。
0305デフォルトの名無しさん
2009/01/05(月) 01:14:09Python宿題スレでも見て来い
0306デフォルトの名無しさん
2009/01/05(月) 01:19:34自分の小学生時代を思い起こせば、無駄な労力と思います。こんなことをしなくても足し算の答えなんて変わらないのだから、その分少しでも余分に遊んで暮らしたいと小学生なら思うことでしょう。
ところが大人になって、九九の答えより足し算の答えのほうが出しにくいことを悟ってからは、人間多少はこんな理不尽な労働もしておく必要があったことを少しはわかりました。
第一の試練は、人生最大の難関だった就職試験に「クレペリン検査」が含まれていたことです。
10分ほどの時間を限られて、数字の列をただ足していくテストですが、私は1分で50ほどしか足し算ができず、本当は正答数より仕事上のムラや能率を調べるテストなはずですが、自分の能力の低さを改めて思い知らされることになりました。
それに追い討ちをかけるように、検査の間の休息時間に試験官がこんなことを言い出したのです。
「この検査ねえ。私は長年やっているけれども一人だけ、いたね。1分間で百問全部できる人が。傾向も何もわかったものじゃない。まあ、能力が高いといえばそれまでなんだけどね。」
試験中にそんなことを言い出す試験官もけっこう珍しいとは思います。
その後、私の受験勉強にクレペリン検査対策が含まれたのは言うまでもありません。ちょっとやっておけば少なくともうろたえないで済みます。
第二の試練は、「脳を鍛える大人のDSトレーニング」の登場です。
私も鍛えられなければボケる歳になってしまいました。
0307デフォルトの名無しさん
2009/01/05(月) 08:24:08いじめとかそういう思い出がいつのまにか美化されるようなのと似た話だな。
0308デフォルトの名無しさん
2009/01/05(月) 08:33:29老人にボケが発生するのは
死を待つ苦しみを和らげるためらしい
0309デフォルトの名無しさん
2009/01/05(月) 10:19:00class 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
# つづく
0310デフォルトの名無しさん
2009/01/05(月) 10:20:05def 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
0311デフォルトの名無しさん
2009/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
0312デフォルトの名無しさん
2009/01/05(月) 11:12:45だったらcheckメソッド内の '-'=>proc{|y,x| y-x} を {|y,x| x-y} に修正
0313デフォルトの名無しさん
2009/01/06(火) 02:37:04しかしそれ以外するには時間が足りない。
うまくなりたいなら毎日やる。
ひとつだけならまだしも
二つとなるとハードルは一気に上がる。
そしてそのことを悩むとなれば三つとなりまたあがる。
ならばいっその事悩まずに
やってしまえばいい。
一人今、この体での一度きりの人生。
悔いを残すくらいなら今を生きて
今できることをすればいい。
焦っても仕方のないことだから
歩いていこうどこまでも。
「人生は何かを成し遂げるには短すぎるものだが、何もしないとすれば長すぎる」
孔子
0314デフォルトの名無しさん
2009/01/06(火) 20:37:16ttp://www.iknow.co.jp/lists/1244
0315デフォルトの名無しさん
2009/01/11(日) 02:03:14友人からは、GUIアプリケーションは
VC++、VBとかじゃないと無理と聞いたのですが・・・
0316デフォルトの名無しさん
2009/01/11(日) 02:07:260317デフォルトの名無しさん
2009/01/11(日) 03:46:03ttp://jp.rubyist.net/magazine/?0001-RubyGUI#l1
0318デフォルトの名無しさん
2009/01/11(日) 07:31:51ボタンなんかをくっつけてマウス操作に対応させることはできるが、GUIをメインに作る言語よりは絶対に劣る
ビジュアルなんとかの言語はGUI作成のフォローが半端ないから作るのが簡単
RubyでGUIをやるということは「わざわざ難しいやり方でイマイチなものを手間隙かけて作る」ことに他ならない
0319デフォルトの名無しさん
2009/01/11(日) 07:52:21馬鹿ですね
わかります
0320デフォルトの名無しさん
2009/01/11(日) 09:19:41>VC++、VBとかじゃないと無理と聞いたのですが・・・
釣りだろうけど
そんなことはないよ
ttp://wxpython.org/screenshots.php
0321デフォルトの名無しさん
2009/01/11(日) 09:37:13下手に「できる」と言わないほうがいいこともあるのさ
正確であることがいいこととは限らない
0322デフォルトの名無しさん
2009/01/11(日) 10:45:160323デフォルトの名無しさん
2009/01/11(日) 10:53:29多くの場合「そりゃやろうと思えば不可能じゃないけどぉ…」という留保つきの回答がほとんどだろ
0324デフォルトの名無しさん
2009/01/11(日) 11:33:38VBは楽で良いと思う
C++が楽というのは同意しかねる
C#の間違いじゃないのか
0325デフォルトの名無しさん
2009/01/11(日) 11:47:440326デフォルトの名無しさん
2009/01/11(日) 20:05:380327デフォルトの名無しさん
2009/01/17(土) 15:15:14http://www.ceres.dti.ne.jp/~kaga/strategy.txt
0328デフォルトの名無しさん
2009/01/17(土) 16:06:38/ /://.: : : : : : :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 |/ ./ム! /
0329デフォルトの名無しさん
2009/01/17(土) 16:17:36これより強い戦略ってどういう意味で言ってるの?
0330デフォルトの名無しさん
2009/01/17(土) 16:30:54よく考えたらじゃんけんで強い戦略なんてないですよね?
class NoStrategy < Strategy
def nextHand
Hand.new.getHand(rand(3))
end
end
として、このNoStrategyに対して常に5割を上回る勝率が出せる戦略ってあるのでしょうか?
さしずめ今回の問題に関しては、WinningStrategyに対してProbStrategyより高い勝率で勝てる
戦略って感じでしょうか。
0331デフォルトの名無しさん
2009/01/17(土) 16:38:32ランダムに出す
0332デフォルトの名無しさん
2009/01/17(土) 21:18:560333デフォルトの名無しさん
2009/01/17(土) 21:19:540334デフォルトの名無しさん
2009/01/18(日) 09:24:33人間がじゃんけんに出す手はランダムとは限らない。つまり、繰り返す場合は出してくる
手をバイグラムとかで分析して対応すれば期待値以上いく可能性はある。
というかざっと見た感じ、historyってのでなんかそれらしいことやってるね。
0335デフォルトの名無しさん
2009/01/18(日) 10:01:16その次がパー
意識して出さないと出ないのがチョキ
0336デフォルトの名無しさん
2009/01/18(日) 10:09:080337デフォルトの名無しさん
2009/01/18(日) 10:51:37「グーで負けた。グーで負けるというのは、保守的なために敗北したかのような、苦い後悔が残るものだ。 」
0338デフォルトの名無しさん
2009/01/18(日) 11:26:54グー 282回
チョキ 308回
パー 283回
(1991-2009)
これ豆知識な
0339デフォルトの名無しさん
2009/01/20(火) 20:08:26を作りました。コードと出力が美しくありません。
require 'date'
day=Date.new(2009,1,18)
for i in 1..5000
day=day.next
case day.wday
when 0
then printf("%s","日,")
when 1
then printf("%s","月,")
when 2
then printf("%s","火,")
# 中略
end
puts day.strftime("%Y%m%d,%Y,%b,%m月,%d,%a,%w,%W")
end
day.wday から月、火を出力するコードが冗長です。rubyらしくしたい。
月や日の表示がいつも2桁になります。01月ではなく1月にしたい。以上です。
0340デフォルトの名無しさん
2009/01/20(火) 20:11:450341デフォルトの名無しさん
2009/01/20(火) 20:20:01> day.wday から月、火を出力するコードが冗長です。
そういうときは、たとえばHashを使う
今回に限っては配列でもいいけれど
require 'date'
weekdays = {0 => '日', 1 => '月', 2 => '火',3 => '水', 4 => '木', 5 => '金', 6 => '土' }
puts weekdays[Date.today.wday]
0342デフォルトの名無しさん
2009/01/20(火) 20:44:16require 'date'
day = Date.new(2009,1,18)
last = Date.new(day.year+1, day.month, day.mday)
weekdays = {0 => '日', 1 => '月', 2 => '火', 3 => '水', 4 => '木', 5 => '金', 6 => '土'}
while day < last do
wday = weekdays[day.wday]
puts day.strftime("%Y%m%d,%Y,%b,%-m月,%-d,#{wday},%w,%W")
day = day.next
end
もしかしたら、%-m や %-d は動作しないかもしれない
0343デフォルトの名無しさん
2009/01/20(火) 20:46:02そうですね。 5000.times とかで書けるのでしょうか。
0344デフォルトの名無しさん
2009/01/20(火) 20:56:54動きました。ちゃあんと1桁表示、2桁表示、自動的に変わります。
あ、ありがとうございました。なんというスピード。驚きました。
0345デフォルトの名無しさん
2009/01/20(火) 22:00:52が何回もだもんなぁ。
0346デフォルトの名無しさん
2009/01/20(火) 22:30:55たぶんソースが2バイトにならないエンコード(UTF-8とか)だとだめ
0347デフォルトの名無しさん
2009/01/20(火) 22:32:15測定可能な負荷または速度の差は発生しないか、たぶんハッシュのほうが誤差レベルで速い
0348デフォルトの名無しさん
2009/01/20(火) 22:41:20これでよくねえ?ハッシュにする意味がわからんw
いやまあ結果的に全然問題ないし、もっと一般的な話なんだろうけど
puts %w[日 月 火 水 木 金 土][Date.today.wday]
0349デフォルトの名無しさん
2009/01/20(火) 22:45:35Date#uptoがあるとさっき知ったもので。
require 'date'
y, m, d = 2009, 1, 18
weekdays = {0 => '日', 1 => '月', 2 => '火', 3 => '水', 4 => '木', 5 => '金', 6 => '土'}
Date.new(y, m, d).upto Date.new(y.succ, m, d.pred) do |day|
puts day.strftime("%Y%m%d,%Y,%b,%-m月,%-d,#{weekdays[day.wday]},%w,%W")
end
0350デフォルトの名無しさん
2009/01/20(火) 22:49:56自分が書き捨てるなら配列を使う
ただ、これは「たまたま」 Date#wday の返り値が0から始まって抜けなく6まで連続していたから可能な
きわめて特殊な事例に過ぎないと考える
「case文が単純なルックアップしかしないのになんか冗長」という人に教えるのは
{条件 => 値} の Hashであるべきだと思うよ
0351デフォルトの名無しさん
2009/01/20(火) 22:53:460352デフォルトの名無しさん
2009/01/20(火) 22:59:07うんにゃ、Integerクラスのオブジェクト、つまりただの整数
RubyのHashのキーは、あらゆるオブジェクトを指定できる
文字列しか指定できないようなイメージがどうしても付きまとうが、本当は何でもいい
あとで変化してしまうようなものを指定するとキー名では取り出せなくなるけどな
0353デフォルトの名無しさん
2009/01/20(火) 23:19:25Cの構造体「struct tm」がベース、配列を使う事を前提に0からの連番になってる
こればどの言語でもほぼ共通してるからフツーは>>348風の記述になる
0354デフォルトの名無しさん
2009/01/20(火) 23:21:33ここで配列じゃツブシが利かんわけで、宿題スレにはいまいち不向き
0355デフォルトの名無しさん
2009/01/20(火) 23:26:110356デフォルトの名無しさん
2009/01/20(火) 23:57:20あいにく、rubyの標準実装ではハードコーディングされているので�_
0357デフォルトの名無しさん
2009/01/21(水) 00:07:37めんどくさいデバッグの経験があると、ロケールに頼る出力は嫌がるね
0358デフォルトの名無しさん
2009/01/25(日) 18:16:41プログラミングの基本要素が含まれていればどんなものでも構いません。
ただし、20行以上の長さである事と、口頭試問によるプログラムの説明
をしてもらいます。
という課題が今日でたのですが、期限が明日までです。。。
誰か助けてください。
0359デフォルトの名無しさん
2009/01/25(日) 18:18:22うひゅ
まあどんなものでもいいというのなら、何かかんたんなゲームでも作ればいいんじゃね
説明もしやすかろう
0360デフォルトの名無しさん
2009/01/25(日) 18:21:16>口頭試問によるプログラムの説明
こっちは助けられないぜ?
課題は簡単だから、とりあえずチュートリアル読んで自分で理解しないと
口頭試問はパスできないと思う。
http://www1.tf.chiba-u.jp/~shin/tutorial/index.rb
0361デフォルトの名無しさん
2009/01/25(日) 18:26:52意外とめんどいのでじゃんけんはやめたほうがいいとアドバイスはしておく
自作の場合は「これなんでここをこういうふうにしたの?」に答えられないとかありえないからな
他人が作ったのではどうにもなるまい
0362デフォルトの名無しさん
2009/01/25(日) 18:31:210363デフォルトの名無しさん
2009/01/25(日) 18:34:51ファイル4つくらいでダウンローダー作ってくる空気読めない昔の俺みたいなのが混じるからな
1日でちっちゃいの適当に作れというのは妥当だ
てか、授業受けてて「あーじゃあこれでこういうプログラム作るとこんな動きするんだなー」とか思わなかったのかね
思わないんだとしたらどんなもの作ろうかさっぱり思いつかない可能性はあるな
0364デフォルトの名無しさん
2009/01/25(日) 18:41:13ってどうやって見るんですか?文字化けしてわけが分かりません。。
質問ばかりで申し訳ない
0365デフォルトの名無しさん
2009/01/25(日) 18:42:22use firefox
0366デフォルトの名無しさん
2009/01/25(日) 18:43:480367デフォルトの名無しさん
2009/01/25(日) 18:44:5920行以上になるかな?
0368デフォルトの名無しさん
2009/01/25(日) 18:47:58とりあえず授業で出てきた関数/メソッド/構文を使うほうがいいぞ
そうでないと授業受けてないのがバレてツッコミが厳しくなることは容易に想像できる
0369デフォルトの名無しさん
2009/01/25(日) 18:48:59どのブラウザか知らないが、
大抵は[表示]-[エンコード]みたいなメニューがあるから、そこでエンコードをUnicode(UTF-8)にする
ってかIE7、Firefox3、Opera9全部で正常に表示されたが
0370デフォルトの名無しさん
2009/01/25(日) 19:27:46関数って何ですか?
0371デフォルトの名無しさん
2009/01/25(日) 19:41:190372デフォルトの名無しさん
2009/01/25(日) 19:53:45hage("test");
↑
この hage って奴が関数
puts 1234.to_s
↑
これも関数だけどRubyでは
この . の後のつくのはメソッドという
0373デフォルトの名無しさん
2009/01/25(日) 20:04:42Rubyには関数は存在できない
0374デフォルトの名無しさん
2009/01/25(日) 20:09:09それを許さず関数とか言った途端に怒り出すのは狂信者
0375デフォルトの名無しさん
2009/01/25(日) 20:12:290376デフォルトの名無しさん
2009/01/25(日) 20:14:270377デフォルトの名無しさん
2009/01/25(日) 20:20:320378デフォルトの名無しさん
2009/01/25(日) 20:25:500379デフォルトの名無しさん
2009/01/25(日) 20:26:210380デフォルトの名無しさん
2009/01/25(日) 20:41:20また、途中で分からなくなったらよろしくお願いします。
0381デフォルトの名無しさん
2009/01/25(日) 21:33:28プログラミングの基本要素が含まれていればどんなものでも構いません。
ただし、20行以上の長さである事と、口頭試問によるプログラムの説明
をしてもらいます。
という課題が今日でたのですが、期限が明日までです。。。
誰か助けてください。
0382デフォルトの名無しさん
2009/01/25(日) 21:46:28数あてゲームや簡単なフィルタ(ファイルからのキーワード検索や大文字小文字変換とか)
でいいんじゃないの?
丸ごと考えろというならこんなところで聞いてないで適当にググって見つけた
ソースをコピベしたほうが早い
0383デフォルトの名無しさん
2009/01/25(日) 22:26:590384デフォルトの名無しさん
2009/01/25(日) 23:51:57[2] 問題文:curses及びファイル等機能拡張を実装したLifegameを作成しなさい。
[3] 環境
[3.1] OS:Mac OS X Leopard
[3.2] バージョン: Ruby 1.8.6
[3.3] 言語: Ruby
[4] 期限: 2009年01月27日21:00まで
[5] その他の制限: 特になし
0385デフォルトの名無しさん
2009/01/25(日) 23:53:00s = WIN32OLE.new('SAPI.SpVoice')
vs = s.GetVoices
naoko = nil
(0 .. vs.Count-1).each do |i|
id = vs.Item(i).Id
puts id
if (id.match(/LHNAOKO/))
naoko = vs.Item(i)
end
end
s.Voice = naoko
s.Rate = 5
s.Speak('課題が思いつかないなら', 2)
s.Speak('数あてゲームや簡単なフィルタ', 2)
s.Speak('(ファイルからのキーワード検索や大文字小文字変換とか)', 2)
s.Speak('でいいんじゃないの?', 2)
s.Speak('丸ごと考えろというなら', 2)
s.Speak('こんなところで聞いてないで', 2)
s.Speak('適当にググって見つけた', 2)
s.Speak('ソースをコピベしたほうが早い', 2)
0386デフォルトの名無しさん
2009/01/26(月) 00:45:460387デフォルトの名無しさん
2009/01/26(月) 00:57:07機能拡張前のLifegameのソースよこせ
0388デフォルトの名無しさん
2009/01/26(月) 01:11:470389デフォルトの名無しさん
2009/01/26(月) 01:49:08授業で作ったベースのものがないと頓珍漢なクオリティのしかできあがらないな
0390384 ◆tu89IYB51k
2009/01/26(月) 03:40:37遅くなってすいませんベースです、どうもCursesのほうは実装されているようにも見えるのですが
恥ずかしながら授業にほとんど出てなかったため内容がほとんど理解できてません・・・
本当に申し訳ありませんがそれも含めてどうかお願いします
0391デフォルトの名無しさん
2009/01/26(月) 03:52:420392デフォルトの名無しさん
2009/01/26(月) 04:21:25これだけ読んでも、何作りゃいいのかさっぱりわからんのだが
ファイルをどうすりゃいいの?
0393デフォルトの名無しさん
2009/01/26(月) 04:42:07# 初期盤面
#
def init()
$field=[
[1,0,0,0,0,0,1,0,0,0],
[1,0,0,1,0,0,0,0,1,0],
[0,0,1,1,0,0,1,0,0,0],
[0,0,0,1,0,1,0,0,0,0],
[0,0,0,1,0,0,0,1,0,0],
[0,0,0,0,0,0,0,0,1,0],
[0,0,0,0,0,0,0,0,1,0],
[0,0,0,0,1,1,0,0,1,0],
[0,1,0,0,1,0,0,0,0,0],
[0,0,0,0,1,0,0,0,1,0]]
# 盤面の大きさの設定(H=行数、W=幅)
$H=$field.size
$W=$field[0].size
$FP=open("lifegame.log","w")
end
0394デフォルトの名無しさん
2009/01/26(月) 04:42:56for line in 0..$H-1
for col in 0..$W-1
$FP.print($field[line][col]==1?"o":"_")
end
$FP.print("\n")
end
end
##############
#
# MAIN
#
init()
createtmp()
init_screen() # curses 画面初期化
begin
crmode # リターンキーなしで文字入力を許す
for generation in 1..20
printfield()
$FP.print("Generation:",generation,"\n")
savefield()
nextgeneration()
copynext()
c=getch()
printf("[%x,%c]",c,c)
if( c==97 || c==0x1B )then; break; end
end
ensure
close_screen() # 画面を閉じる
$FP.close
end
0395デフォルトの名無しさん
2009/01/26(月) 04:46:34正直、この書き方は気持ち悪くて仕方ない
Rubyでなくてもいい書き方をRubyでやる意味って確かにないよな
元のファイルの最初の init()…end を>>393で置き換えて、
最後の
##############
#
#
# MAIN
#
のとこを>>394で置き換える
##############
の前にdef savefield()…endがある状態
0396384 ◆tu89IYB51k
2009/01/26(月) 16:41:46ruby: invalid option -1 (-h will show valid options) (RuntimeError)
とエラーが出て実行できません。たびたび申し訳ありませんがこのエラーの解決方法を教えてもらえませんか?
どうかよろしくお願いします
0397デフォルトの名無しさん
2009/01/26(月) 16:50:46ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8737.txt
0398384 ◆tu89IYB51k
2009/01/26(月) 17:53:38ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8736.txt
あと>>397さんのを試したところエラーは表示されなくなりましたが
Lifegameが表示されなくなってしまいました
0399デフォルトの名無しさん
2009/01/27(火) 14:01:03ご両親はお前のために命を削って働いて
決して安くない授業料を捻出しているのに、
お前ときたら……。
0400デフォルトの名無しさん
2009/01/27(火) 14:42:460401デフォルトの名無しさん
2009/01/27(火) 14:48:070402デフォルトの名無しさん
2009/01/29(木) 04:23:491.「スリザーリンク」を解くプログラムを書いてください
2.適当な難易度で問題を出題するプログラムを書いてください
0403デフォルトの名無しさん
2009/01/29(木) 08:15:040404デフォルトの名無しさん
2009/01/29(木) 08:49:580405デフォルトの名無しさん
2009/01/29(木) 08:53:060406デフォルトの名無しさん
2009/01/29(木) 09:13:38> 751 名前:デフォルトの名無しさん [sage] 投稿日:2009/01/27(火) 18:46:14
> ttp://www.nikoli.co.jp/ja/puzzles/slitherlink/
> 1.「スリザーリンク」を解くプログラムを書いてください
> 2.適当な難易度で問題を出題するプログラムを書いてください
0407デフォルトの名無しさん
2009/01/29(木) 09:47:040408デフォルトの名無しさん
2009/01/29(木) 19:23:55起点への一本道をランダムに作るのはいいとして、どの程度ヒントを出すかが難しいな。
3と0だけ全部表示しちまって、あとは適当にランダムで表示する枠選べば適当な難易度になるかな?
面白い課題だけど実装案出すだけでもキツそうだなw
0409デフォルトの名無しさん
2009/01/29(木) 21:52:020410デフォルトの名無しさん
2009/01/29(木) 22:03:13Perlスレで聞け
0411デフォルトの名無しさん
2009/01/29(木) 22:04:530412デフォルトの名無しさん
2009/01/29(木) 22:11:46っていうか、Perlはバージョンによってアホみたいに内容が違うからPerlから攻めたほうが吉
0413デフォルトの名無しさん
2009/01/29(木) 22:43:210414デフォルトの名無しさん
2009/01/29(木) 22:47:22http://pc11.2ch.net/test/read.cgi/tech/1232206156/
0415デフォルトの名無しさん
2009/01/29(木) 22:56:37ヒントの出し方が悪いと答えが二通り以上考えられたりするんだよね
0416デフォルトの名無しさん
2009/01/29(木) 22:59:53スリザーリンクは回答は1通りです
0417デフォルトの名無しさん
2009/01/29(木) 23:28:33一通りにならないダメ問題が生成されるってことでしょ
0418デフォルトの名無しさん
2009/01/30(金) 00:54:540419デフォルトの名無しさん
2009/01/30(金) 01:06:051だけ書いてみた
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8784.txt
2は知らん
0420デフォルトの名無しさん
2009/01/30(金) 04:17:42どれもあんまり新しい記事じじゃないが
matzがPythonについて語ってるの
http://jp.rubyist.net/magazine/?0008-Legwork
ラリーウォールがRubyについても一部語っている
http://slashdot.jp/developers/article.pl?sid=03/03/06/1041206
その後に企画されたmatzへのインタビュー
http://slashdot.jp/developers/article.pl?sid=03/03/14/0258247
0421デフォルトの名無しさん
2009/01/30(金) 09:12:42狼!ありがとうございます!!
Pythonスレより先に解答が出るとは思いませんでした!!!
0422デフォルトの名無しさん
2009/01/30(金) 10:59:450423デフォルトの名無しさん
2009/01/31(土) 02:02:44死ぬの?
0424デフォルトの名無しさん
2009/01/31(土) 04:50:430425デフォルトの名無しさん
2009/01/31(土) 23:02:020426デフォルトの名無しさん
2009/02/02(月) 00:37:30色んな意味で読みにくいんだが、面白いな。
Walls にちょっと感動したよ。
0427デフォルトの名無しさん
2009/02/02(月) 00:43:280428デフォルトの名無しさん
2009/02/02(月) 00:50:00なんとなくJavaっぽい雰囲気
printf() なんて久しぶりに見た
0429デフォルトの名無しさん
2009/02/02(月) 00:55:40それは分かってる。自分用に読みやすく書き換えたコードからは、
とりあえずInteger#times()を追放した。
そろそろクラスの構成が変わるかも。
0430デフォルトの名無しさん
2009/02/02(月) 18:53:53前回は、1日1行でしたが、今回は、1週を1行にしたいのですが...
require 'date'
day = Date.new(2009,2,2)
last = Date.new(day.year+10, day.month, day.mday)
weekdays = {0 => '日', 1 => '月', 2 => '火', 3 => '水', 4 => '木', 5 => '金', 6 => '土'}
while day < last do
wday = weekdays[day.wday]
puts day.strftime("%Y%W,%Y,%b,%-m月,%-d,#{wday},%a,%w,%W")
day = day+7
end
で出力に、月曜日から日曜日までの出力を一行に出力したいですが
どうすれば良いでしょうか?
0431デフォルトの名無しさん
2009/02/02(月) 19:29:56print で月曜から改行なしで日付だけ表示して日曜日が終わったときに改行するようにしたいとか
日付の文字を月曜から7個追加していって1週間をヨコ長の文字列にして表示するのがよさそうとか
なんかプランとかないん?
0432デフォルトの名無しさん
2009/02/02(月) 19:51:10だんな、お見通しですな。
0433デフォルトの名無しさん
2009/02/02(月) 20:53:58require 'date'
day = Date.new(2009,2,2)
last = Date.new(day.year, day.month+1, day.mday)
weekdays = {0 => '日', 1 => '月', 2 => '火', 3 => '水', 4 => '木', 5 => '金', 6 => '土'}
while day < last do
print day.strftime("%Y%W,%Y,%W,")
dayday=day
while dayday < day+7 do
wday = weekdays[dayday.wday]
print dayday.strftime("%b,%-m月,%-d,#{wday},%a,%w,")
dayday= dayday+1
end
print "\n"
day = day+7
end
0434デフォルトの名無しさん
2009/02/02(月) 21:35:020435デフォルトの名無しさん
2009/02/02(月) 22:06:090436デフォルトの名無しさん
2009/02/02(月) 22:35:17日付部は日付部だけにして、カンマは別なとこで表示するようにしとけ
そうしたほうがシンプルだ
月曜表示
カンマ
火曜表示
カンマ
水曜表示
カンマ
木曜表示
カンマ
金曜表示
カンマ
土曜表示
0437デフォルトの名無しさん
2009/02/02(月) 22:45:00カンマで結合して出力って手もある
a = []
a.push('a')
a.push('b')
a.push('c')
a.join(',')
=> "a,b,c"
0438デフォルトの名無しさん
2009/02/02(月) 22:57:290439デフォルトの名無しさん
2009/02/02(月) 23:18:050440デフォルトの名無しさん
2009/02/02(月) 23:20:160441デフォルトの名無しさん
2009/02/02(月) 23:28:31まるのみしてもらって理解は後から、
というのもありかと
0442デフォルトの名無しさん
2009/02/03(火) 00:42:02そうですか、Java野郎なのバレバレですか
でも、最近は前任者の作ったひどい生jspを力技で
修正するばかりの日々なので、すでにJavaとすらいえないかも
実はRubyも10行以上のプログラムは数年ぶりで、newの構文が
30秒も思い出せなかったのにはびっくりです
コード書くのは面白かったんだけど、
Python, Perlの比較対象にならないソースでごめんなさい
0443デフォルトの名無しさん
2009/02/03(火) 22:30:07教授の趣味らしい
0444デフォルトの名無しさん
2009/02/03(火) 22:40:380445デフォルトの名無しさん
2009/02/03(火) 22:44:520446デフォルトの名無しさん
2009/02/04(水) 00:59:460447デフォルトの名無しさん
2009/02/04(水) 01:54:32授業ごとに切り替わっても実際的な問題はない
0448デフォルトの名無しさん
2009/02/04(水) 03:51:41全部習得したら凄い人材にはなりそうだけど
0449デフォルトの名無しさん
2009/02/04(水) 09:06:160450デフォルトの名無しさん
2009/02/04(水) 13:12:02やっててもな・・・
0451デフォルトの名無しさん
2009/02/07(土) 02:19:19もどうかと思うけどな…。
0452435
2009/02/07(土) 10:31:16require 'date'
day = Date.new(2009,2,9)
last = Date.new(day.year, day.month+2, day.mday)
weekdays = {0 => '日', 1 => '月', 2 => '火', 3 => '水', 4 => '木', 5 => '金', 6 => '土'}
while day < last do
records=Array.new
records.push(day.strftime("%Y%W,%Y,%W"))
dday = day
while dday < day+7 do
wday = weekdays[dday.wday]
records.push(dday.strftime("%b,%-m,%d,%w,#{wday},%a"))
dday = dday+1
end
print records.join(',')
print "\n"
day = day+7
end
0453デフォルトの名無しさん
2009/02/08(日) 14:41:39require 'date'
day = Date.new(2009,2,9)
last = Date.new(day.year, day.month+2, day.mday)
weekdays = "日,月,火,水,木,金,土".split(/,/)
while day < last
records = [day.strftime("%Y%W,%Y,%W")]
7.times{
records << day.strftime("%b,%-m,%d,%w,#{weekdays[day.wday]},%a")
day += 1
}
print records.join(','),"\n"
end
0454デフォルトの名無しさん
2009/02/08(日) 14:48:03> weekdays = "日,月,火,水,木,金,土".split(/,/)
ソースにはこれの実行結果を直に書くべき
毎回文字列から split させるというのは微妙にくどい
というか>>435の欲しいものが微妙につかめない俺
0455デフォルトの名無しさん
2009/02/08(日) 14:57:21weekdays = %w(日 月 火 水 木 金 土)
みたいな書き方でもいいな
0456デフォルトの名無しさん
2009/02/08(日) 15:17:120457デフォルトの名無しさん
2009/02/08(日) 16:29:33きもい
0458デフォルトの名無しさん
2009/02/08(日) 17:05:20「毎回」の意味を具体的に。
0459Calendar君
2009/02/08(日) 18:05:58カレンダーデータを作成したい理由は、所謂、システム手帳の
週間スケジュールのリフィルを作りたい。これが目的です。
従いまして、
1. ruby でカレンダーデータを作成する。
2. カレンダーデータを OOo Base あるいは、MS Access に食わせる。
3. レポート機能を使って求めるリフィルをデザインし印刷する。
という事になります。OOo でレポートを作成するには、Sun Report Builder
という拡張ツールをインストールせねばなりませんが、まあそんな事を
やりたいために、まずは、ruby でカレンダーデータを作成しています。
祝日のデータは今のところ、手動で追加しています。
0460デフォルトの名無しさん
2009/02/08(日) 19:03:25今までのやりとり見てると、プログラムなんか作らずに手帳に直接書いた方がましに思える
0461デフォルトの名無しさん
2009/02/08(日) 19:10:06それのデザインだけ変えりゃいいんじゃねの
まあ、Rubyの勉強も兼ねたいっていうなら別に問題ないけれど
0462デフォルトの名無しさん
2009/02/08(日) 19:20:11リフィルでは用が足りないためこんなことをしています。
データ構造とかは何をおっしゃりたいかよくわかりませんが、勉強のため
作成したデータは、MySQLとかに読ませ、OOo から接続したりとか
遊びのネタの中に、char で読み込むのか integer で読み込むのとか、
リソースを無駄使いしないように何文字にするかとかそれなりに考えて
いますが、答えになっていますか?
1年分を作成しようと思うと、手書きではねえ。それを手書きでいいや
と思えるようであれば、こんなことしていません。
0463デフォルトの名無しさん
2009/02/08(日) 22:56:55calendar.google.com
使ってみてる
意外と良いですよ
0464デフォルトの名無しさん
2009/02/08(日) 23:28:12>>459
OOOとかAccess通すより、RubyのPDF用ライブラリつかって直接印刷できる形式にした方が早そうだが。
趣味ならとめないが
0465デフォルトの名無しさん
2009/02/08(日) 23:29:24祝日はAPI使ったら、楽にとれそうだよ
本を読む 祝日のリストをGoogle Calendar APIを使って作る
http://emasaka.blog65.fc2.com/blog-entry-289.html
0466デフォルトの名無しさん
2009/02/08(日) 23:31:20確か、公式のGoogle Calenderの休日って不完全なんだよね・・・
floatingdays: Google Calendar API で日本の祝日データを取得
http://fdays.blogspot.com/2008/04/google-calendar-gdatakeygdata.html
0467デフォルトの名無しさん
2009/02/08(日) 23:40:26こんなん直接 ["日", "月", "火", "水", "木", "金", "土"] でいいじゃん、という程度の話
0468デフォルトの名無しさん
2009/02/08(日) 23:51:42自分では
"日月火水木金土".split('')
みたいなスタイルが好き
0469デフォルトの名無しさん
2009/02/09(月) 00:00:15http://www.google.com/calendar/feeds/[email protected]/public/full?start-min=2009-01-01&start-max=2009-12-31
0470デフォルトの名無しさん
2009/02/09(月) 19:46:27これ質問しようと思っていたんです。 ruby からいきなり pdf に出力する
やり方があるんですね。これやりたい。次はこれ行ってみます。
0471デフォルトの名無しさん
2009/02/09(月) 19:53:50てか、pdfを直接エディタで開け
それが答えだ
0472デフォルトの名無しさん
2009/02/09(月) 21:05:230473デフォルトの名無しさん
2009/02/09(月) 21:20:28検索したらいくつかあるぞ。
そこまで手取り足取りせなならんのかwww
0474デフォルトの名無しさん
2009/02/09(月) 22:04:15また叱られてしまた。
はい、ぐぐってみましたです。履歴書の出力を説明したサイトを
見つけました。
0475デフォルトの名無しさん
2009/02/10(火) 06:38:220476デフォルトの名無しさん
2009/02/12(木) 16:49:53[2] 問題文(含コード&リンク):
1から9までの数字を縦横方向に同じものが並ばないように下記の例のように並べる
並べ方が全部で何通りあるかとその並びをすべて列挙する
[3] 環境:特になし
[4] 期限: 明日まで
[5] その他の制限:
例
534681297
685293714
948367125
153472869
426538971
261759483
817945632
379126548
792814356
0477デフォルトの名無しさん
2009/02/12(木) 17:02:19鬼だ…
0478デフォルトの名無しさん
2009/02/12(木) 17:09:59http://pc11.2ch.net/test/read.cgi/tech/1153585095/785
C/C++の宿題片付けます 122代目
http://pc11.2ch.net/test/read.cgi/tech/1232029287/542
Rubyの宿題教えてください。2限目
http://pc11.2ch.net/test/read.cgi/tech/1200175247/476
こんなんで数独の掲載料もらえるなら俺だって問題送りたい
っていうか、前にスリザーリンク解かせた奴と同じだろお前
0479デフォルトの名無しさん
2009/02/13(金) 01:10:459 ! = 362 880通りになるねえ。列挙頑張ってね!
0480デフォルトの名無しさん
2009/02/13(金) 01:12:35(9 ! = 362 880) * (9 ! = 362 880)
0481デフォルトの名無しさん
2009/02/14(土) 20:37:06勉強がてら作ってみた。
3×3で12通り
4×4で576通り
5×5で161280通り
合ってるかな?
http://codepad.org/1fdKGZwE
0482デフォルトの名無しさん
2009/02/14(土) 20:51:090483デフォルトの名無しさん
2009/02/14(土) 21:08:12おー、合ってるみたいだ
0484デフォルトの名無しさん
2009/02/14(土) 22:39:16最終セルの判定は calc の前でいいんじゃないの
で、if文の中にnext入れとけば
return if line > @num
の判定も不要
0485デフォルトの名無しさん
2009/02/14(土) 23:03:11なるほど。
少し簡潔になりました。
アドバイス、サンクス。
0486デフォルトの名無しさん
2009/02/23(月) 14:38:510487デフォルトの名無しさん
2009/02/23(月) 14:48:350488デフォルトの名無しさん
2009/03/23(月) 11:08:21[2] 問題文(含コード&リンク): 下の例参照
与えられた数字のみからなる文字列から各桁の数字に分割し、
隣り合う数字の合計の下一桁の値を並べたものを次の文字列とし、
結果が一桁になるまで繰り返しそれぞれの過程の文字列を出力する。
[3] 環境:特になし
[4] 期限: 明日まで
[5] その他の制限: 例
525123214112431
77635535523674
4398088075931
727886872424
99564459666
8410894522
251873974
76950261
3545287
899705
78675
5432
95
4
0489デフォルトの名無しさん
2009/03/23(月) 11:15:22[2] 問題文(含コード&リンク): 課題2
>>488 の出力において(上から1段目だけは入力なので)
上から2段目から最後の段までに現れる0から9数字の
総出現数と各数字毎の出現比率を出力する。
[3] 環境:特になし
[4] 期限: 明日まで
[5] その他の制限:
129個
0: 10回 3%
1: 43回 20%
2: 8回 2%
...
9: 18回 6%
のように出力してください。
おながいします
0490デフォルトの名無しさん
2009/03/23(月) 11:32:14[2] 問題文(含コード&リンク): 課題3
>>489 のスクリプト名を p2.rb とする
その入出力について入力はスクリプトへの標準入力として例えば
echo 525123214112431 | p2.rb
という形で受け取れるようにし、
10, 0.03, 43, 0.20, 8, 0.02, ... 18, 0.06, 129
の様に0から9までの出現数、出現比率(末尾に総数)をカンマ区切りで
出力するように変更し、
さらに新たなスクリプト p3.rb から別プロセスとして p2.rb を起動し、
標準出力を介して 111111111 から 999999999 までの連続する数字を与え、
それぞれの結果を出力する。
[3] 環境:特になし
[4] 期限: 明日まで
[5] その他の制限:
0491デフォルトの名無しさん
2009/03/23(月) 11:41:04[2] 問題文(含コード&リンク): 課題4
>>490 の出力について
111111111 から 999999999 までの連続する数字を与える代わりに
N 桁の全ての数字を与え、N を 2 〜 9 まで変化させたときに
各 N における全ての出現数、出現比率を0から9までの数字毎に合計し、出力する。
[3] 環境:特になし
[4] 期限: 明日まで
[5] その他の制限:
N = 2 のとき 10 〜 99 について
10 -> 1 が 1回
11 -> 2 が 1回
12 -> 3 が 1回
...
99 -> 18, 9 -> 1 が 1回, 8 が 1回, 9 が 1回
の回数の合計として
0から9までの出現数、出現比率(末尾に総数)をカンマ区切りで出力する。
よろしくおねがいします。
0492デフォルトの名無しさん
2009/03/23(月) 11:55:37each_with_index は知っている?
範囲オブジェクト (0..9) は授業で出た?
標準入力のキーワードはいくつかあるけど授業のは何?
0493デフォルトの名無しさん
2009/03/23(月) 11:57:58a = [1,2,3]
b = a.map{|e| e*2}
p b
これが [2, 4, 6] になるやつ
map でも collect でもいい
0494デフォルトの名無しさん
2009/03/23(月) 12:00:18>>490
> さらに新たなスクリプト p3.rb から別プロセスとして p2.rb を起動し
で使うと思われるメソッド(関数)って何?
system とか `` とかあるけどどれ習った?
0495デフォルトの名無しさん
2009/03/23(月) 22:10:59まぁ後は誰かがやってくれるのを期待してみよう
s=gets.chomp.bytes.map{|x|x-?0.ord}
while (s=s.each_cons(2).map{|x,y|(x+y)%10}).any?
$> << s << "\n"
end
0496デフォルトの名無しさん
2009/03/24(火) 02:22:34というか each ばっかでバカみたいに愚直平凡なコード書きまくって疲れたので返事があるまで放置
0497デフォルトの名無しさん
2009/03/27(金) 11:23:100498デフォルトの名無しさん
2009/03/28(土) 07:48:290499デフォルトの名無しさん
2009/03/28(土) 09:11:380500デフォルトの名無しさん
2009/03/28(土) 09:26:39間違ってるよ
コピペされないように大元が間違いを入れてるんだろう
正しいプログラムを作れば、>>488がそもそも間違ってる(数字の個数自体が合わない)
ということに気づけるようになっているのだろう
とか教育的意図を深読みしたときに限って単なる投稿時の書き写しミスだったりするわけだが(w
0501デフォルトの名無しさん
2009/04/06(月) 04:01:100502デフォルトの名無しさん
2009/04/08(水) 01:02:350503デフォルトの名無しさん
2009/04/14(火) 23:19:09(x1、y1)(x2、y2)(x3、y3)を頂点に持つ三角形の面積を計算して、その値を表示するプログラムを作成してください。
・公式:底辺x高さ÷2を使って計算してください。
お願いします!!
0504デフォルトの名無しさん
2009/04/15(水) 03:47:090505デフォルトの名無しさん
2009/04/17(金) 21:36:12あと
def factorial(n)
i = 1
j = 1
while(i <= n)
j = j * i
i = i + 1
end
return j
end
print "Nを入力してください : "
n = gets.to_i
printf("\n%d次のようにして計算します。\n\n", n)
wh = factorial(n)
printf("\n%dの答えは%dです。\n", n, wh)
ってプログラムの「次のようにして計算します。」
の実際の計算過程を表示するにはどう書き直せば良いのでしょうか?
回答お願いします
0506デフォルトの名無しさん
2009/04/17(金) 21:50:46すいませんテンプレ入れるの忘れました
[1] 授業単元:Ruby
[2] 問題文 ホワイトとブラック
[3] 環境:Ruby 1.8.6
[4] 期限:2009年月20日07:00まで
[5] その他の制限: Rubyのことは基本的なことくらいしかわかりません
0507デフォルトの名無しさん
2009/04/17(金) 21:51:57いや、ものすごく純粋に疑問なんだけど
0508デフォルトの名無しさん
2009/04/17(金) 21:59:43変数を代入してその数の階乗を求めなおかつ計算過程を表示するプログラムが乗ってないからです
0509デフォルトの名無しさん
2009/04/17(金) 22:10:20def fact(n)
m = (1 < n ? fact(n-1) : 1)
result = n * m
puts '%d * %d = %d'%[m,n,result]
result
end
0510デフォルトの名無しさん
2009/04/17(金) 23:43:33えっと・・・本当に初歩的なこと聞いて申し訳ないんですが
どこにそれを入れればよいのでしょうか・・・?
0511デフォルトの名無しさん
2009/04/18(土) 00:20:230512デフォルトの名無しさん
2009/04/18(土) 01:08:53ファイル
0513デフォルトの名無しさん
2009/04/18(土) 10:29:27授業で総称してるだけです
ホワイトは普通のNの階乗で
ブラックが再帰を使用した階乗です
>>512さん
言い方がまずかったです
どこの部分を>>509さんの書き込みのように書き直せばいいんですか?
0514デフォルトの名無しさん
2009/04/18(土) 10:43:11手抜くから何時間も無駄にかかる
手元に実行環境があれば適当に実行して試せばわかるんだが難しいか
>>509 は >>505 の factorial を置き換えるものだから、factorial(n) の代わりに fact(n) で呼べばいい
ただ、授業で使ってない方法で書かれてるだろうから、このまま提出したら呼び出し食らって減点対象だぞ
0515デフォルトの名無しさん
2009/04/18(土) 11:22:34申し訳ないです
どうやら勘違いしてたみたいです
>>509さんの書き込んでくれたソースを実際走らせて見たんですが
ファイル名:rb2: Invalid char |201' in expression
ファイル名:rb3: Invalid char |201' in expression
ファイル名:rb4: Invalid char |201' in expression
ファイル名:rb4: syntax error, unexpected tSTRING_BEG, e
xpecting kEND
puts '%d * %d = %d'%[m,n,result]
^
ファイル名:rb5: Invalid char |201' in expression
って出てしまいます
0516デフォルトの名無しさん
2009/04/18(土) 11:29:080517デフォルトの名無しさん
2009/04/18(土) 12:13:060518デフォルトの名無しさん
2009/04/18(土) 12:48:57>>517の言ってる事をもう少し噛み砕くと、
>>509のコードはインデントを表すのに全角空白を使ってる。
だからまず行頭の空白を消すべし。もしインデントが欲しかったら新たに加えなおせ。
def とか end を半角で書かなきゃいかんように、
空白文字はtab, spaceを使わにゃいかんと決まっとる。
0519デフォルトの名無しさん
2009/04/18(土) 14:03:12書き換える必要はない。全角空白は削除する必要はあるけど
0520デフォルトの名無しさん
2009/04/18(土) 23:20:53def fact(n)
m = (1 < n ? fact(n-1) : 1)
result = n * m
puts '%d * %d = %d'%[m,n,result]
result
end
と入力してコマンド プロンプトで起動してみましたが
何も実行されませんでした・・・。
0521デフォルトの名無しさん
2009/04/18(土) 23:53:450522デフォルトの名無しさん
2009/04/19(日) 00:04:35呼び出しは
print "Nを入力してください : "
n = gets.to_i
printf("\n%d次のようにして計算します。\n\n", n)
wh = factorial(n)
printf("\n%dの答えは%dです。\n", n, wh)
で良いんですか?
0523デフォルトの名無しさん
2009/04/19(日) 00:05:19>>514読んでないだろ。
0524デフォルトの名無しさん
2009/04/19(日) 01:00:48def factorial(n)
if n <= 1
1
else
n * factorial(n-1)
end
end
if ARGV[0] == nil
STDERR.puts "数はいくつ?"
exit 0
end
n =ARGV[0].to_i
printf("%dの階乗=%d\n", n , factorial(n))
一応教科書見ながら作ってみたんですが動かないんですが
どこが悪いんでしょうか?
0525デフォルトの名無しさん
2009/04/19(日) 01:35:000526デフォルトの名無しさん
2009/04/19(日) 03:00:150527デフォルトの名無しさん
2009/04/19(日) 08:39:130528デフォルトの名無しさん
2009/04/19(日) 09:37:23なんかえらく勘違いしてました・・・。
ようやくできました
ありがとうございました
どうでもいいですが留学生ではないですよ
0529デフォルトの名無しさん
2009/04/20(月) 17:47:05[1] 授業単元:Ruby
[2] 問題文 ファイル分割
下記は、hoge.csvを均等に4分割して tmp/ 以下に書き込むプログラムである。
ruby split.rb hoge.csv tmp/ 4
出力例
tmp/1out.csv
tmp/2out.csv
tmp/3out.csv
tmp/4out.csv
このプログラムをできるだけ簡潔に書け。
ただし、出力された各csvは hoge.csv の1行目のヘッダーを含むものとする。
[3] 環境:Ruby 1.8.7
[4] 期限:2009年月21日12:00まで
[5] その他の制限: RubyGems等の使用など特に制限はなし。より簡潔に書けた方がよい。
0530デフォルトの名無しさん
2009/04/20(月) 17:48:43o 宿題じゃないようで、宿題なのですがよろしくお願いします。
orz
0531デフォルトの名無しさん
2009/04/20(月) 17:50:18少なくとも行数は四の倍数で入ってるとか?
0532デフォルトの名無しさん
2009/04/20(月) 20:14:01o ネタのようで、ネタなのですがよろしくお願いします。
0533デフォルトの名無しさん
2009/04/20(月) 20:18:53p ARGV[2] . i . "out.csv"
end
0534デフォルトの名無しさん
2009/04/20(月) 20:32:06org_csv, dest_dir, n_split, = ARGV
n_split = Integer(n_split)
rows = CSV.foreach(org_csv).to_a
header = rows.shift
matrix = Array.new((rows.size / Float(n_split)).ceil){ [] }
iter = matrix.cycle
rows.each{|row| iter.next << row }
matrix.transpose.each_with_index do |rows, i|
CSV.open File.join(dest_dir, "#{i + 1}out.csv"), "w" do |w|
w << header
rows.each{|row| w << row }
end
end
0535デフォルトの名無しさん
2009/04/20(月) 20:32:43p ARGV[1]+i+"out.csv"
end
0536デフォルトの名無しさん
2009/04/21(火) 18:13:20つまりゴルフだな?
0537デフォルトの名無しさん
2009/04/21(火) 19:54:56i,d,c=$*;c=c.to_i;a=open i;h=a.gets;f=(1..c).map{|j|open("#{d}#{j}out.csv",'w')<<h};a.map{|l|f[$.%c]<<l}
0539デフォルトの名無しさん
2009/04/22(水) 12:56:44File.open("#{ARGV[1]}#{i+1}out.csv", 'w+'){|f| f.puts v.join }
}
こっから縮めると、
i,d,c=$*;open(i).readlines.each_slice(c.to_i).with_index{|v,n|open("#{d}#{n}output.csv",'w+').puts v.join }
0540デフォルトの名無しさん
2009/04/22(水) 12:57:26i,d,c=$*;open(i).readlines.each_slice(c.to_i).with_index{|v,n|open("#{d}#{n}output.csv",'w+')<<v.join}
動作確認はしてない。
0541デフォルトの名無しさん
2009/04/22(水) 12:57:590542デフォルトの名無しさん
2009/04/22(水) 14:10:090543デフォルトの名無しさん
2009/04/22(水) 14:15:08長いな。動作確認はしてない。
0544デフォルトの名無しさん
2009/04/22(水) 17:22:230545デフォルトの名無しさん
2009/04/22(水) 19:37:150546デフォルトの名無しさん
2009/05/31(日) 09:21:31文字列を与えられた時、アルファベットを大文字小文字区別せずに出現頻度順に小文字で並べた文字列を返すプログラムを作る問題がわかりません。
0547デフォルトの名無しさん
2009/05/31(日) 10:35:02[2] 問題文(含コード&リンク):(文字列を与えられた時、アルファベットを大文字小文字区別せずに出現頻度順
に小文字で並べた文字列を返すプログラムを作りなさい。)
[3] 環境
[3.1] OS: (WindowsXP)
[3.2] バージョン: (Ruby 1.8.6 )
[3.3] 言語: (Ruby
[4] 期限: ([2009年06月01日21:00まで]
[5] その他の制限: 配列などの初歩的な概念まで
よろしくお願いします。
0548デフォルトの名無しさん
2009/05/31(日) 10:50:36str を与えられた文字列として
arr = str.downcase.split(//)
puts arr.sort_by{|a| arr.grep(a).size}.reverse.join
0549デフォルトの名無しさん
2009/05/31(日) 12:33:07str.scan(/[a-z]/i) {|c| freq[c.downcase] += 1}
puts freq.keys.sort_by {|c| -freq[c]}.join("")
# 1.8.7以降
input.each_char.inject(Hash.new(0)) {|freq, c| freq[c.downcase] += 1 if /[a-z]/i =~ c; freq}.
sort_by {|c, n| -n}.map {|c, n| c}.join("")
0550デフォルトの名無しさん
2009/06/11(木) 01:50:29[3] 環境 [3.1] OS:Windows [3.3] 言語:Ruby [4] 期限: 6月11日午前11時30分まで [5] その他の制限: 現在ハッシュクラスを勉強中 よろしくお願いします
0551デフォルトの名無しさん
2009/06/11(木) 04:31:12ギリギリすぎワロタ
0552デフォルトの名無しさん
2009/06/11(木) 04:52:41"monday" => "月曜日",
"tuesday" => "火曜日",
"wednesday" => "水曜日",
"thursday" => "木曜日",
"friday" => "金曜日",
"saturday" => "土曜日"}
size = wday.size
puts "wday の大きさは" + size.to_s + "です。"
wday.each do |eng, jap|
puts eng + "とは" + jap + "のことです。"
end
def str2hash(str)
hash = {}
array = str.split(/\s+/)
i = 0
while i < array.size
if i % 2 == 1 then
hash[array[i-1]] = array[i]
end
i = i + 1
end
return hash
end
puts "str2hashを検証します。"
str2hash("key1 value1 key2 value2").each do |key, value|
puts "キーは" + key1 + "で値は" + value "です。"
end
0553デフォルトの名無しさん
2009/06/11(木) 04:53:43適当
(1)
wday = {"sunday"=>"日曜日", "monday"=>"月曜日", "tuesday"=>"火曜日", "wednesday"=>"水曜日", "thursday"=>"木曜日", "friday"=>"金曜日","saturday"=>"土曜日"}
(2)
p wday.size
(3)
wday.keys.each do |d|
puts "「#{d}」は#{wday[d]}のことです。"
end
(4)
def str2hash(s)
h = Hash.new
s.scan(/(\S+)\s+(\S+)\s*/) {|pair|
h[pair[0]] = pair[1]
}
h
end
0554デフォルトの名無しさん
2009/06/11(木) 05:12:51こんなん通常は Hash[*str.split] で終了だが、おそらくは手作業であり
0555デフォルトの名無しさん
2009/06/11(木) 07:04:16----
Rubyの問題がわかりません
助けてください
(1)曜日を表す英語と日本語との対応を表すハッシュwdayを定義しなさい
p wday["sunday"] #=> "日曜日"
p wday["monday"] #=> "月曜日"
p wday["saturday"] #=> "土曜日"
(2)ハッシュのメソッドを使って(1)のハッシュwdayのペアの数を数えなさい
(3)eachメソッドと(1)のハッシュwdayを使って以下の文字列を出力させてください。
「sunday」は日曜日のことです。
「monday」は月曜日のことです。
…
(4)ハッシュには配列の%wのようなものがありません。そこで、空白とタブと改行
(正規表現で定義するなら「/\s+/」)で区切られた文字列をハッシュに変換するメソッド
str2hashを定義してください。
p str2hash("bule 青 white 白\nred赤");
#=> {"bule"=>"青", "white"=>"白", "red"=>"赤"}
0556デフォルトの名無しさん
2009/06/11(木) 07:18:06君以外は全員読んで回答してるんだが?
0558デフォルトの名無しさん
2009/06/11(木) 13:20:30>>555じゃないけど
携帯からでなきゃ時間帯的に覗けない時とか
ちょっともどかしい
余裕のある人が答えてるからいいんだろうけど
0559デフォルトの名無しさん
2009/06/11(木) 13:24:27まあどうでもいいけどさ
0560デフォルトの名無しさん
2009/06/11(木) 23:57:47「たのしいRuby 第2版」を買っておくといいかも
ttp://www.notwork.org/sbcr-ruby/answer/
0561デフォルトの名無しさん
2009/07/12(日) 01:45:26ふつうC++とかJavaとか使えそうなもの教えそうな気がするけど。
0562デフォルトの名無しさん
2009/07/12(日) 03:26:100563デフォルトの名無しさん
2009/07/12(日) 03:55:04講義概要にはrailsって書いてあるけれども。
0564デフォルトの名無しさん
2009/07/12(日) 07:51:26超マジレスすると、学校で教えるような部分が「使えるもの」になる可能性はゼロだ
その人がプログラミングができるかどうかの試金石として働けばなんでもいいんで、
教えやすかったりすればそれでいい
0565デフォルトの名無しさん
2009/07/12(日) 08:13:24東大の場合
http://jp.rubyist.net/RubyKaigi2008/?MainSession#l12
http://lecture.ecc.u-tokyo.ac.jp/~cichiji/is-06/is-06.html
ぶっちゃけ、言語は何でもいい。教育としては概念を把握させるのが目的。
それに、特定の言語でしか身動きできないような人間を作ってしまうような
教育なら大学で教える意味はない。
0566デフォルトの名無しさん
2009/07/12(日) 08:14:240567デフォルトの名無しさん
2009/07/12(日) 10:53:310568デフォルトの名無しさん
2009/07/12(日) 10:59:22学校で教えることはそれなりに即戦力の礎になることが期待されてはいるので
そこでRubyを教えることは稀だろうなとは思う
理系大学1年の教養の情報系授業のプログラミングで
Rubyを選択肢に入れるのは間違ってはいないと思う
3年4年のときに特定の言語でプログラミングするなら
3年や4年のときに特定の言語をツールとして勉強すれば充分
0569デフォルトの名無しさん
2009/07/12(日) 23:51:14>Rubyを選択肢に入れるのは間違ってはいないと思う
なんかそれこそ、最初にruby教えたらプログラミングの概念間違って覚えてしまいそうだけどな。
0570デフォルトの名無しさん
2009/07/12(日) 23:56:150571デフォルトの名無しさん
2009/07/13(月) 06:04:390572デフォルトの名無しさん
2009/07/13(月) 15:17:18というか、東大とか行くくらいならRubyぐらい知ってて当然だろう
センターのBASICはどんなアホでできるぐらい簡単なんだし、そのつながりで
ALGOL型言語ならだいたいわかるだろう。
0573デフォルトの名無しさん
2009/07/13(月) 16:24:070574デフォルトの名無しさん
2009/07/15(水) 14:14:17宜しくお願いします。こんなんです
スキャンラインアルゴリズムに基づいて,三角形を塗りつぶすメソッドを作成して,メソッドをテストするプログラムも含めて作成して下さい.
require 'gfc'
class Gfc
def draw_line(x0,y0,x1,y1,color)
#
# 前回作ったdraw_lineを拡張する
#
# (x0,y0)--(x1,y1)に線分を描く.color: 色の指定 [r,g,b]
# 同時にデジタル線分上のピクセル座標の列を次のような配列として返す
# trace=[[x0,y0],....,[x1,y1]]
#
# 最初にtraceを空の配列として用意する
trace = []
# デジタル線分を描きつつ,ピクセルの座標をtraceに格納していく
# 前回のdraw_lineに少し追加するだけでよいはず.
# (draw_pixelとともにtraceに座標を格納すればよい)
# 最後に次の式を書く(これがdraw_lineの値となる)
trace
end
end
0575デフォルトの名無しさん
2009/07/15(水) 14:15:39class Gfc
class Triangle
## 指定された色で三角形を塗りつぶしてgの画像に描画する
## (描画色はparam[0]に格納されている)
def fill(g,param)
# 三角形の3頂点を取り出す
# vt = [[x0,y0],[x1,y1],[x2,y2]]
vt = vertices()
# 色を取りだす
color=param[0]
# 現在の色を退避して与えられた色に設定する
bkup_color=g.get_foreground()
g.set_foreground(color)
0576デフォルトの名無しさん
2009/07/15(水) 14:35:250577デフォルトの名無しさん
2009/07/15(水) 14:38:02あと gfc ってこれであってるかな
ttp://www.stdio.h.kyoto-u.ac.jp/~hioki/CG/ruby/gfc.html
0578デフォルトの名無しさん
2009/07/15(水) 14:44:05ttp://www.stdio.h.kyoto-u.ac.jp/~hioki/CG/report/2009/triangle_fill.html
「線分の描画」のとこ理解してれば応用で出来るぞ
0579デフォルトの名無しさん
2009/07/15(水) 19:59:590580デフォルトの名無しさん
2009/07/27(月) 20:59:43[2] 問題文: 整数からなる配列を受け取り、その最大値を除いた配列を出力するメソッドを定義せよ。
ただし、配列の長さが3未満のときはnilを出力する。
[4] 期限: 7月27日9:00まで
[5] その他の制限: 筆記試験です
すみませんがよろしくお願いします。
0581デフォルトの名無しさん
2009/07/27(月) 21:13:51(array.length < 3) ? nil : array - array.max
end
完全に未テストだけど
重複の有無は言われてないので考慮してない
0582デフォルトの名無しさん
2009/07/27(月) 21:17:31def hoge(list)
if list.length < 3
nil
else
max = list.max
list.reject{|e| e == max }
end
end
def kadai(list)
hoge(list).display
end
>>581
array - [array.max]
0583デフォルトの名無しさん
2009/07/27(月) 21:21:08self - other
other が配列でなければ to_ary メソッドによる 暗黙の型変換を試みます。
と書いてあるので多分[]は必要ない
未テストだけど
0584デフォルトの名無しさん
2009/07/27(月) 21:24:26=> false
ほい。というわけで要る。
0585デフォルトの名無しさん
2009/07/27(月) 21:27:50ありがとうございました!
0586デフォルトの名無しさん
2009/07/27(月) 21:29:460587デフォルトの名無しさん
2009/07/27(月) 21:36:04>>581
引くな
要素を取り除くということと配列を引くということはまったく違う
0588デフォルトの名無しさん
2009/07/27(月) 21:41:14Array#-
--- -(other) -> Array
自身から other の要素を取り除いた配列を生成して返します。
……。
0589デフォルトの名無しさん
2009/07/27(月) 21:49:32だろうから、まあ問題ないなというか言葉足りな過ぎるな
「要素 other」ではなく「配列 other の要素」
0590デフォルトの名無しさん
2009/07/27(月) 21:51:18to_ary すら本来は期待してはイカン
0591デフォルトの名無しさん
2009/07/27(月) 21:51:47右辺の要素を取り除いた配列を新しく作るんだけど
こういうところで全くの素人相手にものを教えてやっていい気になってるような奴はやっぱ低レベルだな
0592デフォルトの名無しさん
2009/07/27(月) 21:58:44>>580もう一度読め
どう考えても配列から要素1種だけ引く問題
delete や delete_if を使うべき
配列の「引き算」で回り道して実装する意味はなんもない
0593デフォルトの名無しさん
2009/07/27(月) 22:02:12元の配列ぶっ壊して良いのかどうか窺い知れんから。
0594デフォルトの名無しさん
2009/07/27(月) 23:07:400595デフォルトの名無しさん
2009/07/28(火) 02:41:46if arr.size<3
return nil
end
return arr.sort.pop
end
でいいんじゃないの?
0596デフォルトの名無しさん
2009/07/28(火) 05:03:29普通は [3, 5, 2, 4] だろ
あと pop や shift はキューとしての擬似操作だ
キューだから操作した要素が返る
irb> p [1, 2, 3].pop
3
0597デフォルトの名無しさん
2009/07/28(火) 05:11:220598デフォルトの名無しさん
2009/07/28(火) 05:34:240599デフォルトの名無しさん
2009/07/28(火) 07:20:190600デフォルトの名無しさん
2009/07/28(火) 07:31:07というか、1個だけ取って残りはそのままでいいというほうがなんか変だろ
0601デフォルトの名無しさん
2009/08/25(火) 10:32:13誰かお答えください。本当に助けてください。
1.Visual Basicの関数で数値を文字に直すCStr()とStr()の違いについて
2.戻り値の違いが確認できる方法を考え、戻り値の違いについて実際に確認し、
その確認方法と違いを具体的に述べよ。
注意:実際にやったことと、確認した違いを簡潔かつ具体的に書くこと。
3.下記の計算結果などから、Visual Basicで計算できる数値の桁数について考察をまとめ、
何故そのような制限があるかについて理由を答えよ
1) 48 x 100 - 81
2) 12 ÷ 9.3 x 247
3) 0.2 - 12 ÷ 69
4) -12 ÷ 100 + 100
0602デフォルトの名無しさん
2009/08/25(火) 10:42:080603デフォルトの名無しさん
2009/08/25(火) 11:07:34multi
0604デフォルトの名無しさん
2009/09/20(日) 01:27:350605デフォルトの名無しさん
2009/09/22(火) 13:40:33目的のWEBページを取得して
単にリンク一覧を表示させたいだけなのですが
URLが表示できないリンクが存在します。
結果はnilになります。
ABC : nil <- 取得できていない
DEF : http://www.abcdefc.com
よく見ると、htmlのソースには
<A HREF=・・・・・> *** </A>
と、大文字でかかれてました。
Mechanizeで大文字が使えない仕様なのか、WEBで調べて見ましたが
答えは見つかりませんでした。
どなたか、情報をお持ちの方、お教えください。
0606デフォルトの名無しさん
2009/09/22(火) 14:41:040607デフォルトの名無しさん
2009/09/22(火) 15:24:15こんな感じで書いてます。
require 'rubygems'
require 'mechanize'
agent = WWW::Mechanize.new
page = agent.get('*****') <ー 目的のアドレス
page.links.each do |link|
puts "#{link.text} : #{link.uri}"
end
googleとか入れたらちゃんと動くんだけどな〜
0608デフォルトの名無しさん
2009/09/22(火) 17:03:37自己解決できましたので、ご報告します。
ちょっと、強引ですが、置換しみたら上手く行ってるみたい。
require 'rubygems'
require 'mechanize'
agent = WWW::Mechanize.new
page = agent.get('*****')
page.body = page.body.sub("HREF","href") #<-- これ入れてみた。
page.links.each do |link|
puts "#{link.text} : #{link.uri}"
end
でも、何かスマートじゃないな〜
なんか、もっといい方法が在りましたら、情報いただけるとうれしいっす。
0609デフォルトの名無しさん
2009/09/22(火) 17:54:55:
def initialize(node, mech, page)
:
@href = node['href']
:
となってるので小文字じゃなきゃ駄目なのかも。
XHTML的には妥当だけど、HTML的には許容範囲のはずだよなー。
ここはNokogiriの担当かね。
0610デフォルトの名無しさん
2009/09/22(火) 18:51:01>609さん。さすがです。
Mechanizeその物を読んでみればよかったんですね。
Nokogiriのなのかな。パーサーとしてhpricotを使って見るべきか。
ま、小文字「href」に統一して使えるように、意識するのが
簡単なのかな。
情報ありがとうございます。
0611デフォルトの名無しさん
2009/09/23(水) 11:01:42> @href = node['href']
ワロタ
小文字じゃなきゃ駄目なのかw
0612デフォルトの名無しさん
2009/09/23(水) 12:19:20とクラスが分かれてるんだから、HTMLのほうは大文字と小文字を無視
したアクセスが出来るようになってるべきなんだろうな。
今の実装だと結局Nokogiri::XML::Nodeのメソッドを使うから、全部
同じやり方になってしまう。
0613デフォルトの名無しさん
2009/09/25(金) 02:08:54<a href="../test/read.cgi/mnewsplus/1251516247/l50">最新50</a>
のhrefの部分と最新50の部分をぬきだすのてどうするの?
while line=gets
if /<a href="(\w+)"\/>(\w+)<\/a>/ =~line
print $1
print $2
でうまくいきません
どこが間違えている?
だれかだすけて・
0614デフォルトの名無しさん
2009/09/25(金) 02:18:080615デフォルトの名無しさん
2009/09/25(金) 03:06:50print "href="+$1+"\n"
end
0616デフォルトの名無しさん
2009/09/25(金) 05:15:11attribute は全て小文字でアクセスする
元のHTMLの attribute が大文字だろうが小文字だろうが関係ない
irb> p Nokogiri::HTML.parse('<html><a HREF="/">link</a></html>').at('a')['href']
"/"
これができない場合、パースには成功しているなら libXML2 のバージョンに問題がある
irb> p Nokogiri::VERSION_INFO
{"warnings"=>[], "libxml"=>{"loaded"=>"2.7.3", "binding"=>"extension", "compiled"=>"2.7.3"}, "nokogiri"=>"1.3.3"}
まあ、バグしか入ってない Mechanize 0.9.2 をいまだに使ってる時点で知れてるが
0617デフォルトの名無しさん
2009/09/25(金) 05:41:35間違いが二点
×if /<a href="(\w+)"\/> (以下略)
△if /<a href="(\w+)">
\w は [A-Za-z0-9_] 及び日本語にマッチし [./] は含まない
0618デフォルトの名無しさん
2009/09/26(土) 11:23:500619デフォルトの名無しさん
2009/09/26(土) 11:31:310620デフォルトの名無しさん
2009/09/26(土) 11:43:330621デフォルトの名無しさん
2009/09/26(土) 13:10:050622デフォルトの名無しさん
2009/09/26(土) 13:30:26俺は Ruby に失望する
0623デフォルトの名無しさん
2009/09/26(土) 16:05:37<a href="ttp:www.example.com">YYY</a>')
=> ["http://www.example.org/index.html", "ttp:www.example.com"]
0624デフォルトの名無しさん
2009/09/26(土) 16:07:42地の文だろうが href=の中身だろうがパターンに合致すれば抽出される。
というわけで >>622 も失望しないでよい。
0625デフォルトの名無しさん
2009/09/27(日) 20:42:270627デフォルトの名無しさん
2009/09/29(火) 00:48:27#これはリンクを抜くプログラム
#プログラム名 test.rb data.txt(これはダウンロードしたデータ)
#>ruby test.rb
#--------------------------------
i0=1
url="namidame.2ch.net"
while line=gets
r=line.scan(/<a\s.*?\bhref\s*=\s*(?:([^'"\s]+)|'([^']+)'|"([^"]+)")[^>]*>/i){
# r=line.scan(/<a\s.*?\bhref\s*=\s*(?:"([^"]+)")[^>]*>/i){
|s|
str2 = s[0].sub(/\.\./,url)
print str2
print "\n"
}
end
これでうまいこといくのだが
ついでにリンクアドレス+リンクの名前(下線部の部分)
を対比して抜き出したいのです。
/<a\s.*?\bhref\s*=\s*(?:([^'"\s]+)|'([^']+)'|"([^"]+)")[^>]*>
ここに正規表現付け加える/i)
あともう少し・・・・・
当方正規表現の白戸ですw。もっと勉強しなきゃ
0628デフォルトの名無しさん
2009/09/29(火) 01:35:45寂しい人向け
混む時間帯は人気ありすぎて定員オーバーで入れん
24時間荒れ放題の超カオスな絵チャット
本当の本当に完全無法地帯の絵チャット
(2ちゃんとは比較にならない)
荒しプログラマーと防衛プログラマーの攻防戦
防衛側が強し、求む強力な荒しプログラマー
しかも外国サーバー(イギリス)で管理人は荒し容認
殺人予告すらOKっぽい。ログなんて当然取ってないし
0629デフォルトの名無しさん
2009/09/29(火) 03:38:28data = File.read('data.txt')
list = data.scan(/<a\s+.*?href=(['"])(.+?)\1[^>]*>(.*?)<\/a>/im).map {|a| a[1,2] }
list.each {|uri,str| puts uri,str,'' }
0630デフォルトの名無しさん
2009/09/29(火) 03:48:07なるほど。できました。どうもありがとうです。
Rubyも勉強しなきゃ。
0631デフォルトの名無しさん
2009/09/29(火) 06:57:24ローカルでやるぶんには負担ガチ無視の勉強中スクリプトでも全く問題ないが、
外部にアクセスするスクリプトは相手の負荷を自分のできる最大で考慮しろ
というか HTML 出力以外の API が用意されてるならそっち使え
そのほうが多くの場合速くて軽い
0632デフォルトの名無しさん
2009/10/01(木) 23:57:20探したんだけどあるのかな?
リンクとリンク名を表示するやつ
0633デフォルトの名無しさん
2009/10/03(土) 22:34:21list.each {|uri,str|
puts url.gsub(/\.\./,"moji"),"STR="+str,''
}
にするとエラーになるんだけど。
なんでだろう?変数が定義されていないみたいなエラーが
0634デフォルトの名無しさん
2009/10/03(土) 22:47:35エラーは勝手に省略するな
全部読め
0635デフォルトの名無しさん
2009/10/03(土) 23:33:57[問題文]次のような丁半ゲームのプログラムを作成しなさい。
丁半ゲームの始まりです。
2つのサイコロの目の合計が偶数なら丁、奇数なら半です。
では始めましょう!
予想を入力してください(丁 or 半):丁
結果は... #"." を1秒置きに表示するなど、工夫してみましょう。
1と3の丁! 大当たり!
先に作成した丁半ゲームを、次のように繰り返し行えるようにしてみましょう。
結果は...
1と2の半! 残念、ハズレです!
もう一度勝負しますか?(yes or no):yes
予想を入力してください(丁 or 半):
[環境]OS:windows
terapadを使用しコマンド プロンプトより実行
[期限]月曜日
[制限]条件分岐や配列は並びました
0636デフォルトの名無しさん
2009/10/03(土) 23:57:19puts '2つのサイコロの目の合計が偶数なら丁、奇数なら半です。'
puts 'では始めましょう!'
print '予想を入力してください(丁 or 半):'
input = gets.chomp
dice1 = rand(5) + 1
dice2 = rand(5) + 1
if (dice1 + dice2) % 2 == 0 then
result = '丁'
else
result = '半'
end
puts
print dice1.to_s + 'と' + dice2.to_s + 'の' + result.to_s + '!'
if input == result then
puts ' 大当たり!'
else
puts ' 残念、ハズレです!'
end
0637デフォルトの名無しさん
2009/10/04(日) 00:08:58puts '2つのサイコロの目の合計が偶数なら丁、奇数なら半です。'
puts 'では始めましょう!'
print '予想を入力してください(丁 / 半 / q):'
while input = gets.chomp do
if input == 'q' then
puts 'さようなら'
exit
end
dice1 = rand(5) + 1
dice2 = rand(5) + 1
if (dice1 + dice2) % 2 == 0 then
result = '丁'
else
result = '半'
end
puts '出目は…'
sleep 0.5
puts dice1.to_s + 'と'
sleep 0.5
puts dice2.to_s + 'の'
sleep 0.5
puts result.to_s + '!'
if input == result then
puts '大当たり!'
else
puts '残念、ハズレです!'
end
print '予想を入力してください(丁 or 半 or q):'
end
0638デフォルトの名無しさん
2009/10/04(日) 00:12:26丁半ゲームの始まりです。
2つのサイコロの目の合計が偶数なら丁、奇数なら半です。
では始めましょう!
予想を入力してください(丁 or 半):丁
結果は... #"." を1秒置きに表示するなど、工夫してみましょう。
1と3の丁! 大当たり!
先に作成した丁半ゲームを、次のように繰り返し行えるようにしてみましょう。
の追加分を含まないプログラムはどう書けばいいのでしょうか?
あとなぜか大当たりしか出ません;;
0639繰り返し条件が課題に指定してあった…
2009/10/04(日) 00:12:59puts '2つのサイコロの目の合計が偶数なら丁、奇数なら半です。'
puts 'では始めましょう!'
print '予想を入力してください(丁 or 半):'
while input = gets.chomp do
dice1 = rand(5) + 1
dice2 = rand(5) + 1
if (dice1 + dice2) % 2 == 0 then
result = '丁'
else
result = '半'
end
puts '出目は…'
sleep 0.5
puts dice1.to_s + 'と'
sleep 0.5
puts dice2.to_s + 'の'
sleep 0.5
puts result.to_s + '!'
if input == result then
puts '大当たり!'
else
puts '残念、ハズレです!'
end
print 'もう一度勝負しますか?(yes or no)'
answer = gets.chomp
if answer == 'yes' then
print '予想を入力してください(丁 or 半):'
else
exit
end
end
0640デフォルトの名無しさん
2009/10/04(日) 00:26:34def prompt(msg)
print msg; $stdout.flush; readline.chomp.strip
end
def game_init
puts <<EOT
丁半ゲームの始まりです。
2つのサイコロの目の合計が偶数なら丁、奇数なら半です。
では始めましょう!
EOT
end
def game_input
while true
line = prompt("予想を入力してください(丁 or 半):")
return line if line == "丁" or line =="半"
end
end
def game_result(choice)
dice1, dice2 = rand(6)+1, rand(6)+1
result = (dice1 + dice2) % 2 == 0 ? "丁" : "半"
print "結果は"; $stdout.flush
(0..3).each { sleep 1; putc "."; $stdout.flush }; puts
puts "#{dice1}と#{dice2}の#{result}!" + (choice == result ? "大当たり!" : "残念、ハズレです!")
end
def start
game_init; choice = game_input(); game_result(choice)
end
end
0641デフォルトの名無しさん
2009/10/04(日) 00:30:58def continue?
while true
line = prompt("もう一度勝負しますか?(yes or no):")
return true if line == "yes"
return false if line =="no"
end
end
def start
game_init
continue = true
while continue
choice = game_input()
game_result(choice)
continue = continue?
end
end
end
Game2.new.start
0642デフォルトの名無しさん
2009/10/04(日) 00:36:10puts "丁半ゲームの始まりです。
2つのサイコロの目の合計が偶数なら丁、奇数なら半です。
では始めましょう!"
prompt = '予想を入力してください(丁 or 半、終了は q):'
print prompt
while input = gets.chomp do
exit if input == 'q' or input.empty?
d1 = rand(6) + 1; d2 = rand(6) + 1
result = if (d1 + d2) % 2 == 0 then '丁' else '半' end
msg = if input == result then '大当たり' else '残念、ハズレです' end
puts '結果は…'
sleep 0.4 ; print "#{d1}と"
sleep 0.4 ; print "#{d2}の"
sleep 0.2 ; print "#{result}! #{msg}!\n"
print prompt
end
0643デフォルトの名無しさん
2009/10/04(日) 01:11:49皆さん親切に多彩な回答をして頂きありがとうごさいました
0644デフォルトの名無しさん
2009/10/04(日) 03:00:040645デフォルトの名無しさん
2009/10/05(月) 02:55:47list.each {|uri,str|
puts url.gsub(/\.\./,"moji"),"STR="+str,''
}
これはじゃ無理なのかな。一部のURLの文字列..を文字に置き換える
処理。|url,str|のurlはstringじゃないんでstringオブジェクト
にするにはどうしたらいいのだろう?
urlの文字列を一部置き換えたいのですが・・・
0646デフォルトの名無しさん
2009/10/05(月) 03:21:400647デフォルトの名無しさん
2009/10/05(月) 03:25:37エラーってこれだろ?
NameError: undefined local variable or method `url' ...
指摘されているように「url は定義されていない」んだよ
>>629の最後の行と自分のプログラム見比べてみれ
0648デフォルトの名無しさん
2009/10/05(月) 06:34:29ヒント
ゆーあーるえる
ゆーあーるあい
というか横着してないで入門書でも買って勉強すれ
0649デフォルトの名無しさん
2009/10/05(月) 23:32:00その通りですね。Ruby初めてなんで少しパニクッてます。
入門書欲しいですね。
最近 お金ないんですよ。
恥ずかしながら・・・・
まあ、がんばって勉強していこうと思います。
つまらないミスではずかしいです。ありがとうございます。
0650デフォルトの名無しさん
2009/10/07(水) 23:59:32$KCODE='s'
文字コード指定する方法を2種類習ったんだけど
$KCODE='s'が書いてあるときはエラーで
# -*- coding: shift_jis -*-を追加したら動いたんだけど
どんな違いがあるの?
0651デフォルトの名無しさん
2009/10/08(木) 00:09:191.8以前 KCODE
1.9以降 coding
0652デフォルトの名無しさん
2009/10/08(木) 00:30:53そのスクリプトの構文解析が済んだ後だということを忘れないように。
0653デフォルトの名無しさん
2009/10/08(木) 00:37:260654デフォルトの名無しさん
2009/10/09(金) 01:35:47どういう意味か教えてくれ
0655デフォルトの名無しさん
2009/10/09(金) 02:21:02スクリプト中の $KCODE への代入は、その代入が実行されなければ無意味。
たとえば以下のスクリプトが Shift_JIS で書かれているとする。
$KCODE = 's'
puts "表"
「表」のShift_JISのバイト並びは 0x95 0x5c(=バックスラッシュのコード)
2行めが p u t s " 0x95 バックスラッシュ " 改行 の並びに見える。
" で文字列が始まって、中に0x95と、エスケープした " で改行した状態。
文字列が閉じていないので、実行以前に構文解析段階でエラーになる。
オプションや #! 行は構文解析の前に処理されるので、$KCODE を設定するならそこで。
0656デフォルトの名無しさん
2009/10/09(金) 13:42:100657デフォルトの名無しさん
2009/10/09(金) 14:41:060658デフォルトの名無しさん
2009/10/09(金) 19:32:310659デフォルトの名無しさん
2009/10/09(金) 22:58:47スクリプトの内部で
$KCODE="e"
じゃなくて
#!/usr/bin/ruby -Ke
ってこと?
0660デフォルトの名無しさん
2009/10/11(日) 17:04:14# -*- coding: shift_jis -*-
こっち使えばokってことだな
0661デフォルトの名無しさん
2009/10/11(日) 17:31:56全角チルダと波ダッシュの例
"¥uff5e".encode('Windows-31J')
#=> "¥x{8160}"
"¥uff5e".encode('Shift_JIS')
#=> Encoding::UndefinedConversionError: U+FF5E from UTF-8 to Shift_JIS
"¥u301c".encode('Windows-31J')
#=> Encoding::UndefinedConversionError: U+301C from UTF-8 to Windows-31J
"¥u301c".encode('Shift_JIS')
# => "¥x{8160}"
0662デフォルトの名無しさん
2009/10/11(日) 19:31:05U+FF5E from UTF-8 to Shift_JIS
U+FF5Eは全角チルダの文字コード?
u301cは波ダッシュの文字コード?
U+FF5E from UTF-8 to Shift_JIS
これは
文字コードU+FF5EをUTF-8からShift_JISに変換される?
エラーの意味は
Encoding::UndefinedConversionError
これは文字コードが設定されていないので変換できない?
どちらも変換後の設定がされていないからエラーですって事なのかな?
でも違いって何だ???
0663デフォルトの名無しさん
2009/10/11(日) 19:57:41気にしなくてよい
自分で詰まらないと理解できない
0664デフォルトの名無しさん
2009/10/11(日) 20:29:430665デフォルトの名無しさん
2009/10/11(日) 20:34:35〜←に見える(波線)
0666デフォルトの名無しさん
2009/10/11(日) 20:59:040667デフォルトの名無しさん
2009/10/12(月) 06:11:03変なのがあった
http://pc12.2ch.net/test/raed.cgi/tech/1242876647/766
0668デフォルトの名無しさん
2009/10/13(火) 15:45:37って名前のファイルがあるらしいんだけど
Rubyの拡張子ってrb以外にもあるの?
Sinatraでshotgunの代わりにRack::Reloaderを使う方法 - Hello, world! - s21g
http://blog.s21g.com/articles/1638
0669デフォルトの名無しさん
2009/10/13(火) 15:56:17config.us
config.fr
config.ru
0670デフォルトの名無しさん
2009/10/13(火) 16:17:02Rackの設定ファイル(rack up)
0671デフォルトの名無しさん
2009/10/13(火) 17:32:060672デフォルトの名無しさん
2009/10/17(土) 00:37:51[1] 授業単元:関数の復習と応用
[2] 問題文(含コード&リンク):()
曜日計算をします。曜日を2つ入力してください。
曜日1:水曜
曜日2:木曜
水曜 + 木曜 = 日曜
[3] 環境
[3.1] OS: WindowsXP
[3.2] バージョン:Ruby-186-27
[3.3] 言語: (Ruby/JRuby/IronRubyどちらでも可 等)
[4] 期限: 月曜日
0673デフォルトの名無しさん
2009/10/17(土) 01:19:33プログラミング言語の前に日本言語を・・・
まあ俺はエスパーだから、
{
"月曜"=>1
"火曜"=>2
"水曜"=>3
・・・
}
てやれば良いないか?
ってアドバイスしてみる。
0674デフォルトの名無しさん
2009/10/17(土) 02:03:14# -*- coding: utf-8 -*-
require 'date'
def a672(n)
wd = ["日曜","月曜","火曜","水曜","木曜","金曜","土曜"]
r = []
printf("曜日計算をします。曜日を%dつ入力してください。\n",n)
1.upto(n){|i|
printf("曜日%d:\n",i)
r << gets.chomp
}
s = r.inject(0){|x,v|x += wd.index(v)} % wd.size
printf("%s + %s = %s\n",r[0],r[1],wd[s])
end
a672(2)
0675デフォルトの名無しさん
2009/10/17(土) 02:42:30すいません(´;ω;`)
ハッシュは発展問題であります><
def youbi1(x)
a = gets.chop
if(a == "月曜")
x = 1
elsif(a == "火曜")
x = 2
elsif(a == "水曜")
x = 3
elsif(a == "木曜")
x = 4
elsif(a == "金曜")
x = 5
elsif(a == "土曜")
x = 6
else(a == "日曜")
x = 7
end#i
return(x)
end
ともうひとつdef youbi2(y)を同じ感じで作ったんですが
計算する部分がいまいちわからなくて質問しました
0676デフォルトの名無しさん
2009/10/17(土) 03:00:20横レスだが、xを7で割った余りを求めるなら
x = x % 7
または
if x >= 7
x = x - 7
end
0677デフォルトの名無しさん
2009/10/17(土) 11:47:11if(youbi > 7)
youbi = youbi - 7
end
print "曜日計算をします。曜日を2つ入力してください。"
print "曜日1:"
a = gets.chop
print "曜日2:"
b = gets.chop
print x, "曜日" "+" , y, "曜日" "=" ,youbi,"です。"
と作ったんですが
132.rb:38: undefined local variable or method `x' for main:Object (NameError)
38行目はyoubi = x + yなのですが
とでてしまいます
0678デフォルトの名無しさん
2009/10/17(土) 11:56:07プログラムの冒頭に print x とかあったら何を表示していいかわからないだろう
0679デフォルトの名無しさん
2009/10/17(土) 22:42:210680デフォルトの名無しさん
2009/10/19(月) 12:01:04水曜 + 木曜 = 日曜から、月曜が1で日曜が7と推測できるわけか。
0681デフォルトの名無しさん
2009/10/19(月) 12:24:31水+木=日
月1火2水3木4金5土6日0
水+木=日 (mod 7)
0682デフォルトの名無しさん
2009/10/19(月) 12:26:14>if x >= 7
>x = x - 7
>end
x >= 14 のとき誤動作するんですね わかります
0683デフォルトの名無しさん
2009/10/19(月) 17:38:46最大が、日曜日(7)+日曜日(7)=14で、14-7=7だから日曜日になってOKなんじゃないの?
0684デフォルトの名無しさん
2009/10/19(月) 19:57:57x = x % 7
0685デフォルトの名無しさん
2009/10/19(月) 20:00:08だから余りが7は無い罠w
0686デフォルトの名無しさん
2009/10/20(火) 04:51:13x = x % 7 + 1
0687デフォルトの名無しさん
2009/10/20(火) 05:09:300688デフォルトの名無しさん
2009/10/21(水) 16:31:130689デフォルトの名無しさん
2009/10/21(水) 16:47:58どれ書いてもマルはもらえる程度の課題なはず
本当に「曜日の計算」をしたいわけじゃないんだろう
0690デフォルトの名無しさん
2009/10/21(水) 17:22:19x = (x-1) % 7 + 1
0691デフォルトの名無しさん
2009/10/21(水) 17:54:30+ 木曜
= 日曜
(水 + 木) * 10 + (曜 + 曜) = 日 * 10 + 曜
曜 = 0
水 + 木 = 日
0692デフォルトの名無しさん
2009/10/23(金) 17:26:05[2] 問題文(含コード&リンク):
?正の整数 n の約数の総和を求めるメソッド (関数) を,繰り返し(while,for)と再帰で書きなさい.
?繰り返しにより計算する関数を sigma_i(n),再帰により最計算する関数を sigma_r(n, m) とすること.
再帰の場合には,正の整数 k の約数の和を求めるときには sigma_r(k, k) で実行するものとする.
[3] 環境
OS: Windows
[4] 期限: 30日
[5] 習ったのは条件分岐、繰り返し、再帰です。
ちんぷんかんぷんです。よろしくお願いします。
0693デフォルトの名無しさん
2009/10/23(金) 17:33:290694デフォルトの名無しさん
2009/10/23(金) 17:46:30あれ、なんで同じなのに違ってくるんだろう?
0695デフォルトの名無しさん
2009/10/23(金) 18:08:381に3足したら4だろ
4に3足したら7だろ
7に3足したら10だろ
3を足すという処理は同じなのに答が違うわけだが、何か疑問を差し挟む余地あるか?
0696デフォルトの名無しさん
2009/10/23(金) 18:09:24引数は呼び出すごとに違ってるぞ
0697デフォルトの名無しさん
2009/10/23(金) 18:41:37これでどうだ。
def sigma_i(n)
r = 0
i = n
while i > 0
if n % i == 0
r = r + i
end
i = i -1
end
r
end
def sigma_r(n, m)
if m > 0
if n % m == 0
m + sigma_r(n ,m - 1)
else
sigma_r(n, m - 1)
end
else
0
end
end
p sigma_i(4)
p sigma_i(10)
p sigma_r(4, 4)
p sigma_r(10, 10)
0698デフォルトの名無しさん
2009/10/23(金) 18:47:04だから>>694が同じだと思っているのは、実は違う呼び出しだということ。
0699FXIlNJFCxDAwble
2009/10/23(金) 21:51:080700デフォルトの名無しさん
2009/10/25(日) 01:37:11ありがとうございました!助かりました。
0701デフォルトの名無しさん
2009/10/25(日) 19:20:15頭で流れを作ってそのままプログラムを書いていると
同じような処理を繰り返し使っているのですが、
完成まで持って行ってから
流れを見直して、クラスかと化して
まとめていけばいいんでしょうか?
それとも設計書などを考えてから書いた方がいいんでしょうか?
それとも他に何かいい方法ありますか?
プログラム書いていてなんかもっちゃりしていて
歯がゆいんですが・・・
0702デフォルトの名無しさん
2009/10/25(日) 19:49:52>>701
いきなりクラスを作るのは敷居が高いですが、メソッドを作ることは躊躇しないでください
そのために必要なのは、
入力 → [なにか処理機構] → 出力
という考え方です
「この入力をどうにかするとこういう結果が得られる」という部分を小さめに作ります
そして、入力をメソッドの引数に、処理機構を小さなメソッドに、出力をメソッドの返り値にします
ローカル変数2 = メソッドA(ローカル引数1, 固定の文字列とか)
ローカル変数3 = メソッドB(ローカル引数2)
のような書き方の連打になりますが、とりあえずはそれで構いません
インスタンス変数はとりあえず完成ギリギリまで使わないでください
ローカル変数と違ってメソッド定義を飛び越えて自由に値のやり取りができますが、おおむね即破綻します
完成させてから構成変更だと思考的にもしんどいので、
「とりあえず途中経過だけでも表示」というレベルで区切るとよござんす
0703デフォルトの名無しさん
2009/10/25(日) 19:55:09自分の書こうとしているプログラムと似たプログラムを探して
ソースを読んでみるといいんじゃまいか
また対処しようとしている問題は既に誰かが解決しているかもしれない
そういった問題に対する解決レシピを集めたのがデザパタなので
興味があるなら読んでみるといいかもしれない
てかなぜ宿題スレ
0704デフォルトの名無しさん
2009/11/09(月) 04:20:06指定したセルに抽出し、複数ある場合はそのしたに並べて抽出するようなプログラムを作りたいのですが、
どのようにしたらよいでしょうか?
Excel2003です
0705デフォルトの名無しさん
2009/11/09(月) 21:16:220706デフォルトの名無しさん
2009/11/09(月) 21:52:01ヒント:VBA
0707デフォルトの名無しさん
2009/11/09(月) 22:30:17csvをrubyで色々いじる
ruby.csv => excel
とすればいいんじゃね?
0708デフォルトの名無しさん
2009/11/09(月) 22:33:33ttp://www.google.com/search?q=%22B%E5%88%97%E3%81%AB%EF%BC%91%E4%B8%87%E8%BF%91%E3%81%8F%E3%81%AE%E6%95%B0%E5%80%A4%E3%81%8C%E3%81%82%E3%82%8A%22&hl=ja&lr=lang_ja&safe=off&num=50&filter=0
0709デフォルトの名無しさん
2009/11/09(月) 23:26:38ttp://jp.rubyist.net/magazine/?0004-Win32OLE
0710デフォルトの名無しさん
2009/11/10(火) 05:16:150711デフォルトの名無しさん
2009/11/10(火) 10:05:37ファイルシステムやプロセススケジューラ、ネットワーク、モジュールレベルで教えてください。
0712デフォルトの名無しさん
2009/11/10(火) 10:19:060713デフォルトの名無しさん
2009/11/11(水) 00:40:23さい.
Hwduytlwfumd nx ymj uwfhynhj fsi xyzid tk mninsl
nsktwrfynts. Ns rtijws ynrjx, hwduytlwfumd nx htsxnijwji f
gwfshm tk gtym rfymjrfynhx fsi htruzyjw xhnjshj, fsi nx
fkknqnfyji hqtxjqd bnym nsktwrfynts ymjtwd, htruzyjw
xjhzwnyd, fsi jslnsjjwnsl.
Hwduytlwfumd nx zxji ns fuuqnhfyntsx uwjxjsy ns
yjhmstqtlnhfqqd fiafshji xthnjynjx; jcfruqjx nshqzij ymj
xjhzwnyd tk FYR hfwix, htruzyjw ufxxbtwix, fsijqjhywtsnh
htrrjwhj, bmnhm fqq ijujsi ts hwduytlwfumd.
暗号を解く関数は problem2 とし,関数 problem2 の引数を暗
号の文字列とする.(例: def problem2(str))
よろしくお願いします。
[1] 授業単元:プログラミングRuby
[3] 環境
[3.1] OS: WindowsXP
[3.2] バージョン:Ruby-186-27
[3.3] 言語: (Ruby/JRuby/IronRubyどちらでも可 等)
[4] 期限: 20日
0714デフォルトの名無しさん
2009/11/11(水) 01:13:27for c in s:
print chr((ord(c) + o - ord('a')) % 26 + ord('a')),
0715デフォルトの名無しさん
2009/11/11(水) 01:45:20アルゴリズムが指定されているはず
あらかじめシフト数が与えられているのか、
それともまさか頻度分析とかで解くのか
0716デフォルトの名無しさん
2009/11/11(水) 02:21:15一応、授業の参照ページはここなのですが・・・
http://www.aoni.waseda.jp/ichiji/2009/second-term/ruby-06-1.html
0717デフォルトの名無しさん
2009/11/11(水) 10:31:37昨日出たばっかりなんだから、ひとまず自力でやってみろよ。
これだから先生勉強しろって怒るんだぞ
0718デフォルトの名無しさん
2009/11/11(水) 10:46:290719デフォルトの名無しさん
2009/11/11(水) 11:53:57勉強の意欲のない学生に何を言ってもムダ。
勉強をしに大学に入っているわけじゃないんだから。
我々は粛々と解答していればいい。
俺はまだ初心者だから回答できないけど。
0720デフォルトの名無しさん
2009/11/11(水) 20:05:39def find_char(str)
h = Hash.new(0)
str.gsub(/[^a-zA-Z]/, "").downcase.split("").inject(h) {|a,b|
a[b] += 1
a
}.sort {|a,b| -a[1] <=> -b[1] }[0][0]
end
# 英字をn文字シフトする
# 英字でない文字はそのまま返す
def shift_char(c, n)
case c
when /[a-z]/
((c[0] - ?a + n + 26) % 26 + ?a).chr
when /[A-Z]/
((c[0] - ?A + n + 26) % 26 + ?A).chr
else
c
end
end
def problem2(str)
result = ""
shift_num = -(find_char(str)[0] - ?e)
str.each_byte do |x|
result << shift_char(x.chr, shift_num)
end
result
end
0721デフォルトの名無しさん
2009/11/11(水) 22:15:300722デフォルトの名無しさん
2009/11/11(水) 22:28:03str = "Hwduytlwfumd nx ymj uwfhynhj fsi xyzid tk mninsl nsktwrfynts. Ns rtijws
ynrjx, hwduytlwfumd nx htsxnijwji f gwfshm tk gtym rfymjrfynhx fsi htruzyjw
xhnjshj, fsi nx fkknqnfyji hqtxjqd bnym nsktwrfynts ymjtwd, htruzyjw xjhzwnyd,
fsi jslnsjjwnsl. Hwduytlwfumd nx zxji ns fuuqnhfyntsx uwjxjsy ns
yjhmstqtlnhfqqd fiafshji xthnjynjx; jcfruqjx nshqzij ymj xjhzwnyd tk FYR hfwix,
htruzyjw ufxxbtwix, fsijqjhywtsnh htrrjwhj, bmnhm fqq ijujsi ts
hwduytlwfumd."
26.times do |i|
puts "i = #{i}"
tmp = ""
str.each_byte do |c|
ss = "" << c
if ss.downcase =~ /[abcdefghijklmnopqrstuvwxyz]/
# $(B%"%k%U%!%Y%C%H$J$i(B
if ss == ss.downcase
# $(B>.J8;z(B
tmp << ((c - 97 + i) % 26) + 97
else
# $(BBgJ8;z(B
tmp << ((c - 65 + i) % 26) + 65
end
else
tmp << c
end
end
puts tmp
end
0723713
2009/11/11(水) 22:48:090724デフォルトの名無しさん
2009/11/12(木) 08:32:07勉強の意欲のない学生に何を言ってもムダ。
勉強をしに大学に入っているわけじゃないんだから。
我々は粛々と解答していればいい。
俺はまだ質問者だから回答できないけど。
0725デフォルトの名無しさん
2009/11/12(木) 22:32:47先生は課題点を上げたいからあんなにヒントをくれてるんだぞ
お前さんが丸投げをしたことを先生が知ったら、先生怒るぞ
人の答えを丸写しして、出来ましたと言うより
下手なりに考えて駄目だった方が、先生嬉しいと思うぞ
0726デフォルトの名無しさん
2009/11/12(木) 23:32:35それもこれも理系離れが原因
0727デフォルトの名無しさん
2009/11/21(土) 02:15:18,,.r,:-‐'''"""~~`ヽ、:;:;:\
r"r ゝ、:;:ヽ
r‐-、 ,...,, |;;;;| ,,.-‐-:、 ヾ;:;ゝ
:i! i! |: : i! ヾ| r'"~~` :;: ::;",,-‐‐- `r'^!
! i!. | ;| l| ''"~~ 、 i' | イェ〜イ
i! ヽ | | | ,.:'" 、ヽ、 !,ノ
ゝ `-! :| i! .:;: '~~ー~~'" ゙ヾ : : ::| >>713 見てるー?
r'"~`ヾ、 i! i! ,,-ェェI二エフフ : : :::ノ~|`T
,.ゝ、 r'""`ヽ、i! `:、 ー - '" :: : :/ ,/ 単位取れたー?
!、 `ヽ、ー、 ヽ‐''"`ヾ、.....,,,,_,,,,.-‐'",..-'"
| \ i:" ) | ~`'''ー---―''"~
0728デフォルトの名無しさん
2009/11/21(土) 06:16:45もともと理系は徴兵逃れっていう相場だったのだが。
0729デフォルトの名無しさん
2009/11/21(土) 07:59:450730デフォルトの名無しさん
2009/11/21(土) 11:29:11先生日に日に厳しくなってるワロタwwww
0731デフォルトの名無しさん
2009/11/21(土) 11:35:43ひとつシフトして目視を25回やったらいいんじゃないの?
0732デフォルトの名無しさん
2009/11/21(土) 12:05:48題意としては、頻度調査で最頻文字=eと仮定すればよい、ということのようだ。
0733デフォルトの名無しさん
2009/11/21(土) 12:07:27下手に日本語ローマ字表記とかだと厳しいな
0734デフォルトの名無しさん
2009/11/21(土) 12:12:150735731
2009/11/21(土) 12:27:27単語に区切って各単語が辞書に含まれてないか探すとかなら機械に任せられるね
なんか珠玉のプログラミングを思い出した
0736デフォルトの名無しさん
2009/11/22(日) 23:47:01[1] 授業単元:プログラミング初歩
[2] 問題文(含コード&リンク):
文字列はどう表現されているか?
def char_code(str)
result = Array.new # 配列 result を作成
for i in 0..str.length-1 # 文字列の長さ分繰り返す
result[i] = str[i] # 文字列のi+1番目の文字を result の第i要素に入れる
end
result # result を返す
end
1. 文字列 "abcdefghijklmnopqrstuvwxyz" がコンピュータ内部でどう表現されているか確認しなさい
[3] 環境 OS: Windows
[3.1] OS: Windows
[4] 期限: ASAP
[5] その他の制限: irbを使っています。
0737デフォルトの名無しさん
2009/11/22(日) 23:48:16同じく
def char_code(str)に関しての追加の質問をさせてください。
for i in 0..str.length-1
に関してなのですが、基本の形は授業でfor式は
for i in n..m
と習いました。
この形に対し、mはstr.length-1となっていますが、
これは、配列 str[0] からstr[length-1]の範囲を示しているのでしょうか?
よろしくお願いします!
0738デフォルトの名無しさん
2009/11/22(日) 23:49:020739デフォルトの名無しさん
2009/11/22(日) 23:50:36そうだな
課題は Ruby1.8.6 か Ruby1.8.7 向けなのに、こいつのインストールした実行環境が Ruby1.9.1 なのだろう
Ruby1.8.7 をインストールして課題やれ
0740デフォルトの名無しさん
2009/11/22(日) 23:55:35String クラスのオブジェクトの [] メソッド、実質上は「 文字列[x] 」 は、
文字列の x バイト目のASCII コードを整数で返す
…Ruby 1.8.6 や Ruby1.8.7 ではな。
課題の意図を汲んで Ruby 1.8.7 で課題を実行すると
irb> def char_code(str)
result = Array.new # 配列 result を作成
for i in 0..str.length-1 # 文字列の長さ分繰り返す
result[i] = str[i] # 文字列のi+1番目の文字を result の第i要素に入れる
end
result # result を返す
end
irb> p char_code("abc")
[97, 98, 99]
と、文字 a の ASCII コード 97 と b の ASCII コード 98 と c の ASCII コード 99 の配列が返る。
「そうかー文字そのものではなくなんか文字に対応した数字で表されてるのかー」と納得するのが多分正解。
0741デフォルトの名無しさん
2009/11/23(月) 00:06:19shift_string("abc",1)と入力すると、rubyが何も応答してくれなくなります。
この式の(string, n) の中身の正しい入力方法を教えていただきたく。
[1] 授業単元:プログラミング初歩
[2] 問題文(含コード&リンク):
def shift_string(str,n)
for i in 0..str.length-1
str[i] = str[i] + n # 文字列を配列と見なして文字コードを変更
end
str
end
「問題」
* irb で適当な文字列を string に代入し,shift_string(string, n) を実行してみよう.ただし,n は適当な整数とする.
* shift_string(string, n) の実行後に string がどう変わったか確認しよう.
[3] 環境 OS: Windows
[3.1] OS: Windows
[4] 期限:
[5] その他の制限:
0742デフォルトの名無しさん
2009/11/23(月) 00:11:180743デフォルトの名無しさん
2009/11/23(月) 00:15:37素直に1.8.7をインストールしてください。
0744デフォルトの名無しさん
2009/11/23(月) 00:16:24shift_string("abc",1)
だと()が日本語文字なので irb が落ちた
問題文のコードには問題を感じない
ちなみに Ruby 1.9.1 だと当たり前だが + メソッドのあたりでエラーが出て動かないよ
1.9.1 で動作させるのは難しいから素直に Ruby 1.8.7 あたりをインストールのが吉
0745デフォルトの名無しさん
2009/11/23(月) 02:59:14Ruby1.8.7で実行したら問題解決しました!すっきりです!
ついでに教えてもらいたいのですが…以下の二つの問題の答えを教えていただけないでしょうか。とくに二つ目!
前回風邪で休んだのにメールで聞いたら先生がキレてて教えてくれませんでした…。
[1] 授業単元:プログラミング初歩
[2] 問題文(含コード&リンク):
・文字列を,a ならば z,b ならば y,c ならば x のように,小文字も大文字もアルファベットの逆順の出現文字に置き換えるプログラムを作りなさい.
・文字列が与えられたとき,アルファベットを大文字,小文字を区別せずに出現頻度順に小文字で並べた文字列を返すプログラムを作りなさい.
[3] 環境 OS: Windows
[4] 期限:
[5] その他の制限: irbで!
0746デフォルトの名無しさん
2009/11/23(月) 11:10:02> ・文字列が与えられたとき,アルファベットを大文字,小文字を区別せずに出現頻度順に小文字で並べた文字列を返すプログラムを作りなさい.
>>720を参考に。
0747デフォルトの名無しさん
2009/11/23(月) 12:31:09作ってみたけど、どうかな?
課題1
alphabet = ('a'..'z').to_a
lloop do
print "a〜zのアルファベット:"
input = gets.chomp
break if input == %{}
if /^[a-z]$/ =~ input
puts alphabet.reverse[ alphabet.index(input) ]
end
end
課題2
sentences = <<EOS
I love Ruby. Do you?
Do you like coffee? I'd rather like tea.
What do you do. I am a neet.
Say "You're a smart guy". No way.
EOS
sentences.scan(/[a-z']+/i).inject( Hash.new(0) ){|cnt, word| cnt[word.downcase] +=1; cnt}.sort{|a, b| [b[1], a[0]] <=> [a[1], b[0]] }.each{|arr| printf "%-8s %-2d回\n", arr[0], arr[1]}
0748デフォルトの名無しさん
2009/11/24(火) 12:22:54大文字、文字列にも対応版
h = {}
alphabet = ("a".."z").to_a
alphabet.each_with_index{|v,i|h[v] = alphabet[-1 - i]}
alphabet = ("A".."Z").to_a
alphabet.each_with_index{|v,i|h[v] = alphabet[-1 - i]}
loop do
print "a〜zの文字列:"
input = gets.chomp
break if input == %{}
p input.split("").map{|x|
h[x] || x
}.join
end
0749デフォルトの名無しさん
2009/11/25(水) 00:25:530750デフォルトの名無しさん
2009/11/25(水) 02:07:572ch などを含むインターネット,本からの丸写しはカンニングと見なし厳しい態度で臨みます.
最悪の場合には,今学期の履修全科目の単位を失う事になります.悪質な場合には停学処分です!
ttp://www.aoni.waseda.jp/ichiji/2009/second-term/ruby-lecture-plan.html
0751デフォルトの名無しさん
2009/11/25(水) 06:46:34だれが書いても本の丸写しとほとんど変わらないコードになるレベルのプログラムで
そんなこと言われてもw
0752デフォルトの名無しさん
2009/11/25(水) 07:54:01お前大学行ったことないだろ
0753デフォルトの名無しさん
2009/11/25(水) 09:26:18'z'-'a'は不可。
0754デフォルトの名無しさん
2009/11/25(水) 09:30:04> だれが書いても本の丸写しとほとんど変わらないコードになるレベルのプログラム
これすら出来ない大学が多いのもまた事実だな。
0755デフォルトの名無しさん
2009/11/25(水) 09:50:120756デフォルトの名無しさん
2009/11/25(水) 12:37:02HP見た限り先生2ch見てるみたいだから、絶対特定されてるだろww
0757デフォルトの名無しさん
2009/11/25(水) 12:45:39小学校の宿題に高校の知識を持ち出して回答したようなものだ
小学生はそれが高校で習うようなことだとは気づかない
宿題を採点する先生だけがわかる
そんな感じ
0758デフォルトの名無しさん
2009/11/25(水) 13:21:38まともな学校なら問題の作り方を工夫するだろ
>>757 のような罠を仕込むかも知れないし
学生番号を使って問題に可塑性を持たせるとか
0759デフォルトの名無しさん
2009/11/25(水) 13:37:20生徒「わかんねー、2ちゃんで聞こう」
後日
生徒「やってきました」
先生「それ、オレが2ちゃんで与えたインチキ解答だよ」
0760デフォルトの名無しさん
2009/11/25(水) 13:40:15素人っぽい書き方しないといけないから
先生もたいへんなんだぞ
0761デフォルトの名無しさん
2009/11/25(水) 19:26:10決して安くない授業料を捻出しているのに、
>>713 ときたら……。
しかも、赤い文字で「悪質な場合には停学処分です.」とまで
書かれたりして……。
0762デフォルトの名無しさん
2009/11/25(水) 19:45:370763デフォルトの名無しさん
2009/11/25(水) 19:47:18宿題,問題6.2をやってきて発表した3人 (1A061306,1B070806,1H070619) にはリポート点を50点加点します.
今後も今日のような演習を何度かやり,発表してくれた人には加点します.
その代わりにリポートの課題を難しくします.
勉強しない人はプログラミングの授業を取るべきではありません. (11月17日)
いまどきのゆとりは酷いもんだな
教官の魂の叫びが聞こえるw
0764デフォルトの名無しさん
2009/11/25(水) 19:53:35興味の引くゲーム作成なんかを課題で出して具体的な問題解決の道筋を作るために
それぞれの課題があるんだということを教えるのを目的にすべき
(大学が専門学校化しても漏れは知らん)
0765デフォルトの名無しさん
2009/11/25(水) 20:04:34お前大学行ったことないだろ
0766デフォルトの名無しさん
2009/11/25(水) 20:10:53授業ネタがゲームじゃないから投げ出というのなら無理して大学にこなくてよし
毎年ゲーム理論の講義で見られるネタを使いまわす必要もあんめえ
0767デフォルトの名無しさん
2009/11/25(水) 20:40:020768デフォルトの名無しさん
2009/11/25(水) 23:13:251Fの人まだ提出していないみたいだし
とりあえず、3人カンニングおめでとう
0769デフォルトの名無しさん
2009/11/25(水) 23:29:09今回の暗号の課題は3人が同じ回答を提出したの?
それは2chに書かれた回答だったの?それともほかの場所に書かれた回答?
先生はなぜ今回のが2chだと知った?
暗号文で検索すると見つかったから?
2chをさかのぼってログチェックするって先生言ってる?
0770デフォルトの名無しさん
2009/11/26(木) 02:28:18最近では、大学にもぐりこんで、講義を聞きにいこうかと思ってる。
0771デフォルトの名無しさん
2009/11/26(木) 03:19:02疑わしき場合は呼び出しされて
口頭でプログラムの内容を説明させたりなんてこともある
だからここで宿題やってもらう人は回答を丸写しするんじゃなく
咀嚼した上で改変して出すぐらいのつもりでやるべき
だったら最初から自分でやれって話だけど
0772デフォルトの名無しさん
2009/11/26(木) 08:36:19プログラムの構造を、可視化したり類似度をチェックするツールを使ってれば、
簡単に見切られるよ。
学会発表で見たことあるw
0773デフォルトの名無しさん
2009/11/26(木) 09:09:320774デフォルトの名無しさん
2009/11/27(金) 01:34:31:. / _ ___ 、\
/ / i \ \\ :.
:. ,'./ i ヽ:. ヽ:.:.. ヽ.ヽ
,'/ / .ハ ヽ ヽ:.:.:.:. ヽ::.. ヽヽ :.
:. |i .i i .i / ヽ ト 、 \、:.:.:. ',:.',:.:.lヽ}
|i .i l :N_, -弋 \弌弋ナ:}:.:}
:. |i∧ ', :{ ,ィjモト \ イjミトイイV :. な…
.| :メヽ.', `ozZ} izN。ハ::{ なんなんだよもん?
:. | :ヾ_! ゝ "゙゙ ' `゙ ハ.:', :. ここ、どこだよもん?
| :.:_イ .:.ヽ. (二フ , イ :.:.:!:.ヽ なんであたし
:. / rィイ | :.:.ヽ: >r/`<ノ .:.::.}ヽ、\:. 貼られたんだよもん?
/ ∧l;l ! :.:.:.://{二 ̄ .} ..:..::リ//ハ.:\
:. / .{. ',ヾ、ヽi .:.:.{ /(^` |.:.:.:.//: : :.}: . ヽ.:.
/ / ) ヽ ヾ、ヽ:.ハ ヤ{ ∧/.-‐'": : |:.:. i ',
./ .,イ .:..} : :\ヾレ'ハ ∧__ノノハヾ、 : : : l:.:.: .ハ ',
{ /| .:.:ハ : : :i Y {ヾ`Yヽニン'ノ}: : } : : : :/:.:.:/ }:.}
V | .:.:/:.:|_,ィ' ̄ ヽ三{ `ー-ノ : イ : : :/:.:i.:{ リ
ヽ:.:{、.:.V : : ヘ : : {: : :/:.::∧|
ヽ! )人 : : :人 : : : / \! :.
" ヽ : : : : :/イ{ :.ノ: : : :.\ :.
:. \__///: :\______/: : : : : : : ヽ
/ //: : :|;|: : : : : : i: : : __: : : : ',
:. / 、 {;{ |;| . : i/. : : : : : :|
/ `Y;{. . . .|;|. : : : /i: : : : : : : : :l
0775デフォルトの名無しさん
2009/12/05(土) 17:20:380776デフォルトの名無しさん
2009/12/09(水) 11:48:56具体的には
a = Object.new
b = a
b.x = 100
b.y = 200
とかするとbだけでなくaの値も変わってしまいます。
0777デフォルトの名無しさん
2009/12/09(水) 11:54:23b = a
は、コピーではないので、コピーにはなりません。
b = a.dup
で、望む結果になるかもしれませんし、ならないかもしれません。
(b.x は複製されても、b.c.x は複製されてないかもしれない)
0778デフォルトの名無しさん
2009/12/09(水) 12:11:24変数はオブジェクトについたラベルです
ラベル名 → オブジェクトID
というような対応表を Ruby が管理していて、
該当ラベルの変数が呼ばれたときにはその表の対応を参照して該当オブジェクトが使われます
変数というハコが入れ物オブジェクトとして存在するわけではありません
b = a
は
「aという変数名で参照されるオブジェクトにbという変数名のラベルを1個(追加で)貼る」
という以上の意味はないです
a という変数名も、 b という変数名も、元の(今回は Object.new で作った)オブジェクトを指します
オブジェクトの複製は>>777の言うように dup や clone で行いますが、
実際にどのように複製されるかはクラスが自分で決めています
一般的には、オブジェクトの明示的な複製をする機会は少ないです
たいていは通常の参照でなんとかなるからです
0779776
2009/12/09(水) 12:46:13a = Object.new
b = a.clone
b.x = 100
b.y = 200
でもaの値も変わってしまいます。
どうすれば???
0780デフォルトの名無しさん
2009/12/09(水) 13:01:24>>779
つまり君は嘘をついている
a は Ruby の Object クラスのオブジェクトではないだろ(Object には x= メソッドも y= メソッドもない)
ここに書き込むときに名前を勝手に置き換えているか、自分で Object クラスを拡張している
>>778も言っているが、普通はオブジェクトの複製行為は必要ない
複製のときの動作を自分で作ることもできるが、スレの範疇を明らかに逸脱している
その「コピー」で本当は何したいのかを言ったほうがたぶんいろんな意味で早い
0781デフォルトの名無しさん
2009/12/09(水) 13:08:06>その「コピー」で本当は何したいのかを言ったほうがたぶんいろんな意味で早い
んだなす
というか自作クラスのオブジェクトの複製とか寒気がする
極力やりたくないしやって欲しくないし対応したくもねえ
0782デフォルトの名無しさん
2009/12/09(水) 13:56:16これ書き加えるだけじゃないの?
def クラス名
attr_access :x, :y
def dup
o = super()
o.x, o.y = @x, @y
return o
end
end
0783デフォルトの名無しさん
2009/12/09(水) 21:35:26この台詞でオウムの村井がサリンの製造方法を知っていることを指摘する発言
〜〜を知っていると言うことはあなたはサリンの製造方法を知っていると言うことだ
っていう発言を思い出した
0784デフォルトの名無しさん
2009/12/09(水) 21:47:260785776
2009/12/10(木) 18:16:19def deep_copy
Marshal.load(Marshal.dump(self))
end
Objectはすいません適当に書きました。
本当はBoneです。
0786デフォルトの名無しさん
2009/12/10(木) 18:59:50常套手段だね。万能ではないが。
class Bone
def initialize
@a = Hash.new{}
end
def deep_copy
Marshal.load(Marshal.dump(self))
end
end
a = Bone.new()
a,dc #=> TypeError: can't dump hash with default proc
0787uy ◆e6.oHu1j.o
2009/12/10(木) 23:55:34attr_accessor :x
attr_accessor :y
end
a = O.new
b = a.clone
b.x = 100
b.y = 200
p a.x
p a.y
p b.x
p b.y
配列と構造体とクラスとかはデフォルトでCでいうポインタみたいになってる
.cloneで、値渡しになる
0788uy ◆e6.oHu1j.o
2009/12/11(金) 00:53:20なんだこの流れ
0789デフォルトの名無しさん
2009/12/19(土) 09:48:26Sengoku.new "Takeda"=>"Shingen", "Uesugi"=> "Kenshin"
これ何でエラーになるのでしょうか
0790デフォルトの名無しさん
2009/12/19(土) 09:57:260791デフォルトの名無しさん
2009/12/19(土) 10:01:04どんな粗悪な授業を受けてるのかは知らないけど、Rubyの引数括弧は基本省略しない
パースに失敗したときの修正に逆にめんどくさいからだ
Sengoku.new("Takeda"=>"Shingen", "Uesugi"=> "Kenshin")
あるいはそもそもハッシュであるので
Sengoku.new({"Takeda"=>"Shingen", "Uesugi"=> "Kenshin"})
0792デフォルトの名無しさん
2009/12/19(土) 10:09:170793デフォルトの名無しさん
2009/12/19(土) 14:38:43メソッドを実行し、戻り値を得るのなら省略はやめとけ
解らんなら括弧付けとけ
0794デフォルトの名無しさん
2009/12/19(土) 20:18:040795デフォルトの名無しさん
2009/12/24(木) 12:33:32pとかputsとか
0796デフォルトの名無しさん
2010/01/09(土) 17:28:20p、puts は戻り値を捨てるから括弧は書かない
0797デフォルトの名無しさん
2010/01/20(水) 13:26:40文字列を受け取ってスペースと記号を削除した文字列を返すメソッドを作りたいんですが
どうすればいいでしょうか?
ちなみに条件はgsubメソッドをつかうこと
記号は全角も半角も含む(","とか"。"とか"?"とか"?"とか)
どなたかお願いします
0798デフォルトの名無しさん
2010/01/20(水) 13:43:20'記号だと思うもの' には記号をそのまま書く
ただし半角の ' を書きたい場合には2文字で \' と書く
//s の s は str がWindowsのShift_JISな文字列のときで、sかuかeあたりを書かないと絶対動作しない
# Shift_JISの文字列 str から !?!?\'" .,、。 の11文字を取り除いたものを返す
str.gsub(/[#{Regexp.quote(' !?!?\'" .,、。')}]/s){''}
0799デフォルトの名無しさん
2010/01/20(水) 14:35:37ちゃんと動作しました!
早急なレスありがとうございます
0800デフォルトの名無しさん
2010/01/20(水) 14:48:21特に正規表現のエンジンがRuby1.8系と1.9系では違うから。
0801デフォルトの名無しさん
2010/01/28(木) 19:01:091.8のにも名前があるの?
0802デフォルトの名無しさん
2010/01/28(木) 19:02:26というか1.9で外部の鬼車を正規表現エンジンとして取り込んだから名前がもともとついてただけ
普通は特定の内部システムに名前がついていることはない
鬼車はRuby以外でも利用可能
0803デフォルトの名無しさん
2010/01/28(木) 19:14:33/* Extended regular expression matching and search library.
Copyright (C) 1993, 94, 95, 96, 97, 98 Free Software Foundation, Inc.
/* Definitions for data structures and routines for the regular
expression library, version 0.12.
Copyright (C) 1985,89,90,91,92,93,95,96,97,98 Free Software Foundation, Inc.
という素性のエンジン。Emacs の一部だっけ?
0804デフォルトの名無しさん
2010/01/28(木) 19:18:070805デフォルトの名無しさん
2010/01/28(木) 20:21:450806デフォルトの名無しさん
2010/02/03(水) 06:57:34Ruby on Rails 3.0 Release Notes
http://guides.rails.info/3_0_release_notes.html
0807デフォルトの名無しさん
2010/02/11(木) 21:13:02[2] 問題文(含コード&リンク):Ruby on Rails + MySQL のアプリ作成
[3] 環境
[3.1] OS:Win 7
[3.2] バージョン: Ruby 1.8.6、Rails 2.0.2
[3.3] 言語: Ruby On Rails
[4] 期限: 10年2月28日
[5] その他の制限: gem install mysql
web画面で表示されます
!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install
gem install mysql を実行しても解決できません
いったいどうしたらよいでしょうか???
0808デフォルトの名無しさん
2010/02/11(木) 21:23:410809デフォルトの名無しさん
2010/02/11(木) 21:24:41たぶんmysql_configが動かないはず
0810デフォルトの名無しさん
2010/02/11(木) 22:51:19質問ならよそへ
0811デフォルトの名無しさん
2010/02/13(土) 20:56:41Rails 2.0.2 じゃなくて Rails 2.2 を使ってるのが問題なんじゃ…
0812デフォルトの名無しさん
2010/02/15(月) 02:16:51`exeplorer.exe dir`
を実行すると、dirによってうまくdirが開かれる場合と
無関係にc:/users/***(myname)/documentsが
開かれる場合があります。コマンドプロンプトでは正常に動作しているのですが・・・。
0813デフォルトの名無しさん
2010/02/15(月) 07:21:57ここは質問をするスレではない
0814デフォルトの名無しさん
2010/02/15(月) 07:48:53再現する具体的な例を
0815デフォルトの名無しさん
2010/02/15(月) 07:51:02全く正論だがこれくらいはすぱっと答えてあげてもよかろうに
>>812
Windows のコマンドプロンプトでは正常に動作してるというのもそれたぶん再現間違ってるぞ
コマンドプロンプトというか cmd.exe は引数に空白の入った文字列を指定するとそこで引数を区切る
foo.exe C:\Program Files\Ruby19\lib
は foo.exe に C:\Program という文字列と Files\Ruby19\lib という文字列の2つを送る
空白を含んだ文字列を一塊として解釈して欲しい場合はダブルクォートで括る
foo.exe "C:\Program Files\Ruby19\lib"
というのを Ruby の system で行うには、やっぱりダブルクォートで括る
`exeplorer.exe "#{dir}"`
Ruby あんまり関係ないな
0816デフォルトの名無しさん
2010/02/15(月) 08:07:040817デフォルトの名無しさん
2010/02/15(月) 08:14:480818デフォルトの名無しさん
2010/02/15(月) 11:41:390819デフォルトの名無しさん
2010/02/15(月) 23:05:28>>813
すみませんRubyの質問スレが見つからなかったので・・・
>>815
さきほどもう一度確認しました。
やはりコマンドプロンプトで
explorer.exe c:\program files
を実行するとc:\program filesが開かれますが、
rubyで
`explorer.exe c:\program files`
`explorer.exe "c:\program files"`
を実行するといずれもc:\users\(myname)\documentsが開かれてしまいます・・・
スレ違い失礼しました。質問スレ探してきます。
0820デフォルトの名無しさん
2010/02/17(水) 00:36:280821デフォルトの名無しさん
2010/02/17(水) 01:08:450822デフォルトの名無しさん
2010/02/17(水) 06:55:50解決しました。ありがとうございます。流されたかもしれないと思いつつ覗きにきてよかったです。
\\とすることで初めて\自体が表された、という風に解釈しましたが、間違っておりましたらご指摘のほどよろしくお願いいたします。
0823デフォルトの名無しさん
2010/02/18(木) 11:32:55あってるよ
0824デフォルトの名無しさん
2010/02/18(木) 12:08:240825デフォルトの名無しさん
2010/02/18(木) 12:28:000826デフォルトの名無しさん
2010/02/18(木) 12:39:33基本的にスラッシュを使おうとしたんだが、ディレクトリという概念が導入される前にあったシステムの
デファクトスタンダードのコマンドのスイッチが / だったんだよ
これを変えると操作性が変わってMS-DOS1が売れないことが懸念された
だから / はコマンドラインスイッチ用にして、パス区切り文字としては / に似ているバックスラッシュを使うことにしたんだ
今でも cmd.exe のオプションスイッチは / だろ
バックスラッシュが日本で円記号になってるのとかはそれとは別問題
というかスレ違いだ
Rubyに関係ないことは他のスレでやってくれ
0827デフォルトの名無しさん
2010/02/18(木) 12:47:240828デフォルトの名無しさん
2010/02/20(土) 20:33:43それを取ってくるファンクションコールがあったりしたんだけど、
ver3でなくなっちゃった。
0829デフォルトの名無しさん
2010/02/22(月) 18:51:16なるほどねぇ。
からこちらに来ました。
TwitterのStreamAPIを使ってcURLで書いてみたいのですが、上記スレの219のような感じ
にはなったのですが、ずっと動かしてるとStackErrorとなってしまいます。
うまく動くように出来無いでしょうか?
[1] 授業単元:TwitterStreamAPIを使ってのhttpリンク抜き出し
[2] 問題文(含コード&リンク):(http://pc12.2ch.net/test/read.cgi/tech/1265467681/219
)
[3] 環境
[3.1] OS:Linux(Ubuntu9.10)
[3.2] バージョン: Ruby 1.9.1
[3.3] 言語: Ruby
[4] 期限: 宿題では無いので無期限で
[5] その他の制限: Rubyを勉強しはじめて3ヶ月程度ですが、
C/PHP/Perlの下地はあります。
gemsのcURL利用でnet/httpは使わない方向でお願いしたいです。
0831デフォルトの名無しさん
2010/03/01(月) 07:14:09繰り返しが再帰になってるんじゃない?
0832デフォルトの名無しさん
2010/03/01(月) 07:24:500833デフォルトの名無しさん
2010/03/01(月) 10:33:35どのあたりでしょうか?
body.callのあたりでしょうか?(ここいまいち分かってないので)
>>832
上の方と同じくですが
result = body ? body.call(data) : data.length
この辺でしょうか?
>>833
向こうでこっち紹介されたようなので来てみたんですが・・・
gistと言うところで、コード再掲してみました。
インデントとかコッチの方が見やすそうなので。
http://gist.github.com/318228
0835デフォルトの名無しさん
2010/03/02(火) 22:09:56試してないけど $VERBOSE = nil 以降はこんな感じだと思う
StackErrorになる理由はリファレンスマニュアルでも読んで自分で調べてくれ
data = ""
c.on_body {|d| data << d ; d.size }
c.perform
s = JSON.parse(data)
user = s['user']
if user && user['lang'].include?('ja')
links = s['text'].scan(/(https?:\/\/[-_.~a-zA-Z0-9;\/?:\@&=+\$,%#]+)/).flatten
links.each {|link| p "url => #{link}" }
end
場所としてはこっちのスレの方がいいので、解決しないなら移動して
Ruby 初心者スレッド Part 34
http://pc12.2ch.net/test/read.cgi/tech/1264635554/
ありがとうございました。
そのロジックだと、データ受信中の解析が出来無いと思うのですが・・・
#StreamAPIなので、データ受信完了が無いのです。
ともあれ、初心者スレに行ってみます。
0837デフォルトの名無しさん
2010/03/03(水) 02:20:05題:ファイルを一行ずつ読み込んでリンクを取り出す。
自力で作った分
1: #!/usr/bin/ruby
2: board_plist = "~/board.plist"
3: if test(?e, board_plist) {
4: site_list = []
5: File.open(board_plist, 'r') {|f|
6: f.each {|buf|
7: if buf.sub!(/¥s*<string>http:¥/¥/(.+?)¥/.+?¥/<¥/string>/, '¥1') {
8: site_list << buf.chop
9: }
10: }
11: }
12: }
実行してみた結果
./dame.rb:10: parse error
素質無さ過ぎなので、プログラマに成る夢は諦めますw
0838デフォルトの名無しさん
2010/03/03(水) 03:02:27文法間違い
× if 条件 { 処理 }
○ if 条件 [then] 処理 end
リファレンスマニュアルの Rubyの文法>制御構造>条件分岐>if を参照
0839デフォルトの名無しさん
2010/03/03(水) 03:22:52Rubyのifは
1. if 式 then 式 [elsif 式 then 式]* [else 式] end
2. then は `;' or 改行 で代用可
だよ
0840デフォルトの名無しさん
2010/03/03(水) 03:44:04{}でくくる制御とくくらない制御が混在するのは盲点でした。orz
どうやら他の宿題も盛大にバグってて、parse errorでしたw
0841デフォルトの名無しさん
2010/03/04(木) 14:52:01括弧をくくらなくても動くように作っただけで
全部くくろうと思えばくくれるぞ
0842デフォルトの名無しさん
2010/03/05(金) 01:37:01書きやすさを追求したからだよ
括弧ある方が可読性高まる
0843デフォルトの名無しさん
2010/03/05(金) 07:32:04(繰り返し)呼ばれる、というちょっと特殊なものだぞ。
これはくくってもくくらなくても、とかいうものではない。きちんと覚えないとダメ
0844デフォルトの名無しさん
2010/03/05(金) 14:15:500845デフォルトの名無しさん
2010/03/05(金) 14:21:270846デフォルトの名無しさん
2010/03/05(金) 14:29:020847デフォルトの名無しさん
2010/03/05(金) 15:07:41o くくるの省略しちゃダメな条件
0848デフォルトの名無しさん
2010/03/06(土) 02:34:350849デフォルトの名無しさん
2010/03/06(土) 07:51:53if-[then]-[else]-end だ
0850デフォルトの名無しさん
2010/03/06(土) 09:14:210851デフォルトの名無しさん
2010/03/06(土) 10:38:310852デフォルトの名無しさん
2010/03/12(金) 19:47:370853デフォルトの名無しさん
2010/03/12(金) 21:09:450854デフォルトの名無しさん
2010/03/14(日) 19:15:110855デフォルトの名無しさん
2010/03/14(日) 19:22:09授業での言語なんて本当はどうでもいいわけで、基本構造が教えられるものであればある程度講師の趣味で構わない
ALGOL系ならなんでもよかんべ
実際に研究や受験などの作業で必要ならその言語そのものを教えるだろうし
0856デフォルトの名無しさん
2010/03/14(日) 19:54:34先生もいるようだ。情報科学科あたりに進むとSchemeが基礎教養。
文法を教えるのが目的じゃないからぶっちゃけ何でもいい。
>>855 のいうとおりあまりRubyらしくはないようだ。
ttp://jp.rubyist.net/RubyKaigi2008/?MainSession#l12 (PDF9ページめとかw)
ttp://lecture.ecc.u-tokyo.ac.jp/johzu/joho-kagaku/2009/is-text201001081924.pdf
経済学部方面に進んだりすると演習でミニコン上のFORTRANとかJCLとか
やらされてた。センセイがそっちしか知らないから……。
今はどうだかシラネ。
0857デフォルトの名無しさん
2010/03/15(月) 01:06:411から10まで授業で習うものでもないし。
逆に工業高校とかレベルだと、実用的な言語をきっちり教えたほうがいいのかもな。
0858デフォルトの名無しさん
2010/03/15(月) 01:17:140859デフォルトの名無しさん
2010/03/15(月) 03:15:14教えてもらったことしか出来ないから
なんでも教えてやらないといけない
0860デフォルトの名無しさん
2010/03/15(月) 04:21:510861デフォルトの名無しさん
2010/06/30(水) 10:33:30[2] 問題文:学生の身長、体重のデータを読み込みある学籍番号を入力した
ときにその学生の学籍番号、身長、体重を2分探索法により求め、出力しなさい。
学生のデータは、txtファイルでxx yyy zzという風に記載されています。
(例)出力結果
学生番号:xx
身長:yyy (cm)
体重:zz (kg)
[3] 環境
[3.1] OS:WindowsVista
[3.2] バージョン: Ruby 1.8.6
[3.3] 言語: Ruby
[4] 期限: 7月1日夕方まで
[5] その他の制限: 多少不恰好でも、分かりやすいプログラムがいいです、、。
よろしくお願いします。
0862デフォルトの名無しさん
2010/06/30(水) 15:36:180863デフォルトの名無しさん
2010/06/30(水) 17:19:34[1] 授業単元:プログラミング
[2] 問題文:
二分法による平方根の計算。但し、求めたい平方根(自
然数)を入力できるようにした上で、プログラムの実行時
の計算回数を計算・表示できるように、プログラムを作成
すること。
[3] 環境
[3.1] OS: Windows7
[3.2] バージョン: Ruby 1.8.6
[3.3] 言語: Ruby
[4] 期限:7月3日まで
[5] その他の制限:特になし
よろしくお願いします。
0864デフォルトの名無しさん
2010/06/30(水) 19:06:18データファイルの構造がわからんぞー
何かの項目で既に並んでるのか
0865デフォルトの名無しさん
2010/06/30(水) 21:01:5212 178 55.5
23 165 45
のようにスペースで区切ってある学生のデータがあります。
0866デフォルトの名無しさん
2010/06/30(水) 21:52:0612 178 55.5
23 165 45
のようにスペースで区切ってある学生のデータがあります。
0867デフォルトの名無しさん
2010/06/30(水) 23:33:040868デフォルトの名無しさん
2010/07/01(木) 00:02:51ええ、2回いいましたw
どなたか・・・・
0869デフォルトの名無しさん
2010/07/01(木) 00:25:060870デフォルトの名無しさん
2010/07/01(木) 08:06:14ええ、2回いいましたw
どなたか・・・・
0871デフォルトの名無しさん
2010/07/01(木) 08:09:08自分で作りましたが、そこからがわかりません。
0872デフォルトの名無しさん
2010/07/01(木) 08:22:220873デフォルトの名無しさん
2010/07/01(木) 08:35:38p text
text2 = text.sort #無理やりソート
p text2
File.open('output_a.txt', 'w') {|f|
f.write text2} #ファイルに書き込み
text3 = File.read('output_a.txt') #ファイル出力する。
puts text3
かなりテキトーなんですけど、とりあえずは、出力は
12 xxx yy
18 xxx yy
23 xxx yy
となりうまくいっている?みたいです。
0874デフォルトの名無しさん
2010/07/01(木) 09:14:09ファイト
0875代行
2010/07/01(木) 13:09:14普通に書いたらまあこんな感じになるはず
一応まともに動いてるっぽい。バグが無いとは断定しかねる
ttp://codepad.org/CRIbCoOo
0876デフォルトの名無しさん
2010/07/01(木) 13:46:29ありがとうございます!!
参考にさせていただきます。
0877 ◆Ockbw.cJho
2010/07/01(木) 21:42:50[1] 授業単元:2分探索法
[2] 問題文: http://uploader.sakura.ne.jp/src/up10962.jpg
[3] 環境
[3.1] OS: Windows
[3.2] バージョン:Ruby 1.8.6
[3.3] 言語: Ruby
[4] 7月2日の3時まで
[5] 特になし
リンク先に問題文をおきました。
問題が2つあるので、b1.rb b2.rb というふうにしてください。
よろしくお願いします。
0878 ◆Ockbw.cJho
2010/07/02(金) 01:07:39ttp://www1.axfc.net/uploader/Sc/so/129617
0879デフォルトの名無しさん
2010/07/02(金) 12:09:08見栄ねーぞ。
もう三時すぎてるか
0880デフォルトの名無しさん
2010/07/04(日) 03:20:53制限時間オーバーしてる気がしないでもないが……
二分法の骨格部分は、例えばこういうものになる
あとはこいつを参考に煮るなり食うなり
http://codepad.org/MQzE321j
0881デフォルトの名無しさん
2010/08/25(水) 02:18:44for(i=1;i<=5;i++)
print $i
end
みたいなのって、rubyだとどうやるのだっけか?
for i in [1..5]
print i
end
じゃ
1..5
って表示されただけだった。orz
0882デフォルトの名無しさん
2010/08/25(水) 02:26:090883デフォルトの名無しさん
2010/08/25(水) 02:33:110884デフォルトの名無しさん
2010/08/25(水) 10:08:440885デフォルトの名無しさん
2010/08/25(水) 11:00:51(1..5).each(&:print)
て書いたんだけど
> nilnilnilnilnil=> 5
とでてだめなんだがなんでなの
0886デフォルトの名無しさん
2010/08/25(水) 11:18:19うちもおなじだわ
0887デフォルトの名無しさん
2010/08/25(水) 11:53:45あ、わかった、1.send :print が呼ばれてるのか
0888デフォルトの名無しさん
2010/08/25(水) 11:55:291.send :print, 1 になるんじゃないのか
0889デフォルトの名無しさん
2010/08/25(水) 15:11:20は
(1..5).each {|i| i.send(:print) }
irbでやってるんだろうけど、出てくるnilはprintメソッドから返ってきた値を
irbが表示しているだけであって、printでnilと表示されたわけではない。
(1..5).each(&:display) とかどうよ。
0890デフォルトの名無しさん
2010/08/25(水) 19:42:45>irbが表示しているだけであって、printでnilと表示されたわけではない。
嘘を書くな
0891デフォルトの名無しさん
2010/09/05(日) 00:53:340892デフォルトの名無しさん
2010/10/09(土) 03:01:01Help me, hackers!
http://help-me-hackers.com/
0893Perl忍者 ◆M5ZWRnXOj6
2010/10/27(水) 08:08:37一生文法について語り合ってろハゲ
0894デフォルトの名無しさん
2010/10/28(木) 10:57:34ta-da-shi-i-o
0895デフォルトの名無しさん
2010/11/06(土) 17:08:40[2] 問題文(含コード&リンク):http://www1.axfc.net/uploader/Sc/so/170727
[3] 環境
[3.1] OS: Linux:CentOS5.5
[3.2] バージョン: Ruby 1.8.7
[3.3] 言語:Ruby
[4] 期限:11月25日
[5] その他の制限: クラスを扱うところまでは習いました。Fastercsvは使ったことがないので、それ以外でしたらライブラリの制限はないです。
・問題文
とある相手との通信のやり取りを記録した3つのcsvファイルがある。各ファイルには、データの長さ(len)とポート番号(port)がセットで記されてある。
2つの訓練データ(train1がカテゴリ「bad」に該当、train2がカテゴリ「other」に該当する)を学習し、テストファイルであるtest01が「bad」「other」どちらのカテゴリに分類されるかを示すプログラムを、サンプルプログラムを改良して書いてください。
*train1,train2,test01は、カンマ区切りのcsvファイルです。
(各csvファイルの1行目がラベルになっていますが、不要でしたら削除してください。)
リンクには、計算方法と3つのcsvファイル、サンプルコード、出力例が入っています。
どうかよろしくお願いします。
0896895
2010/11/08(月) 02:47:27失礼しました。
0897デフォルトの名無しさん
2010/11/08(月) 03:05:24機械学習って面白そうな授業だけど
講義の公開されたページはないの?
ちょっと見てみたい。
0898デフォルトの名無しさん
2010/11/12(金) 13:57:570899デフォルトの名無しさん
2010/11/13(土) 21:18:50[2] 問題文(含コード&リンク):http://loda.jp/0tm/?id=28
[3] 環境
[3.1] OS: Linux
[3.2] バージョン: Ruby 1.8.7
[3.3] 言語:Ruby
[4] 期限:11月16日
[5] その他の制限:下記サイトのpcapライブラリを使用
http://www.goto.info.waseda.ac.jp/~fukusima/ruby/pcap-j.html
問題:ファイルを取り込んだとき、そこに含まれるソースアドレスを多い順に個数も表示してください。
出力例
src_address count
110.250.1.200 100
66.112.3.112 80
・・・
168.125.4.255 2
また、適当なソースアドレスを入力したとき、そのアドレスからのそれぞれの送信先ポートの個数を表示してください。
出力例
src_address > 110.250.1.200
dstport count
80 50
445 40
8977 10
リンク先にファイルと、取り込んだファイルから順にソースアドレスと送信先ポート、送信先アドレスを表示するプログラムが入ってます。
よろしくお願いします。
>>897
課題のとは違いますが、講義はこちらになります。
ttp://cis.k.hosei.ac.jp/~wakahara/statistics_II_7.pdf
0900デフォルトの名無しさん
2010/11/25(木) 20:44:460901デフォルトの七氏
2010/11/26(金) 17:59:06[2] 問題文(含コード&リンク):()
1、「食べログ」東京の東京都市区町村一覧のページ(http://r.tabelog.com/tokyo/citylst/)にアクセス。
2、区名を指定してそのリンクをクリック
3、表示された20件のページにアクセスし、「店名」、「ジャンル」、「TEL」、「住所」、「評価」、「最寄駅名」、「営業時間」、「定休日」、「平均利用金額」、「用途」の情報を取得する。
4、次のページがあれば次のページに行き、3を行う。
5、csvファイルに出力。
6、ハッキングと間違われないようにランダムアクセスにする。(食べログ運営者にこのようにするようにと指定を受けた。)
*「食べログ」運営者から公開情報の利用許可を頂いております。
[3] 環境
[3.1] OS: Windows vista
[3.2] バージョン:Ruby 1.8.6
[3.3] 言語: Ruby
[4] 期限: 1週間後
[5] その他の制限: なし
個別のページに行ってからのプログラムから書き始めましたが途中から手詰まり状態です。。
書いたところまで載せておきます。
よろしくお願いします。
0902デフォルトの七氏
2010/11/26(金) 18:00:12require 'mechanize'
require 'kconv'
agent = Mechanize.new
agent.get('http://r.tabelog.com/tokyo/A1310/A131003/13046855/')
#店名
print '店名:'
name = agent.page.at('span[@property="v:name"]')
puts name.inner_text
#ジャンル
print 'ジャンル:'
category = agent.page.at('span[@property="v:category"]')
puts category.inner_text
#TEL
print 'TEL:'
tel = agent.page.at('strong[@property="v:tel"]')
puts tel.inner_text
0903デフォルトの七氏
2010/11/26(金) 18:03:15print '住所:'
address = agent.page.at('p[@rel="v:addr"]')
puts address.inner_text
#評価
print '評価:'
value = agent.page.at('span[@property="v:average"]')
puts value.inner_text
#交通手段
puts '交通手段:'
agent.page.search('div[@class="parent"]').each do |way|
#agent.page.search('p').each do |way|
#puts elem.inner_text
puts way.inner_text
end
#営業時間
puts '営業時間:'
#tel = agent.page.at('p')
#puts tel.inner_text
0904デフォルトの七氏
2010/11/26(金) 18:04:55#定休日
puts '定休日:'
#agent.page.search('p').each do |day|
#agent.page.search('p').each do |way|
#puts elem.inner_text
#puts day.inner_text
#end
#tel = agent.page.at('p')[5]
#puts tel.inner_text
#平均利用金額
print '平均利用金額:'
price = agent.page.at('a[@property="v:pricerange"]')
puts price.inner_text
#用途
puts '用途:'
#use = agent.page.at('p[@class="ex"]/p')
#puts use.inner_text
0905デフォルトの名無しさん
2010/11/27(土) 01:41:20これ、理由が「ハッキングと間違われないように」で食べログ運営者にも連絡済なら、
useragentをruby tokubetsu ensyuとかにしとけばいい気がするw
0906デフォルトの名無しさん
2010/11/27(土) 01:43:130907デフォルトの名無しさん
2010/11/27(土) 02:15:26暗号解読の宿題はまだ出来てないのかw
0908デフォルトの名無しさん
2010/11/27(土) 08:49:44おながいしまつぉ
// 22275133773333721127155751757755152211275727111711132731155151
// 75351351373373513557717755531555237255752713375153557117532512
// 53131551737732223215755323122252531371573311713121113153515137
// 51225272311712377135573351551122351315722232357515355771533122
// 22533335333125531221517323155112252211273232231217277731223711
// 75327711277135755522355532323235353253732533715375227557132337
// 15331121525725231731550752151780511775723101731258502271833125
// 51001332110070880008008025727707317525888800008022083808880073
// 77072202270121233705751153088808008718035703725857705123032711
// 33837758238751377502333223371102323357100800001757007127821152
// 33077718370573121580027371312281573855317783557510582280880155
// 37075123381351115381381210000808080827208800805125283727213221
// 22072512303371155582378175277888552337757785757077371287225777
// 72032075081537171701517575570202851538880000880038088088008832
// 31800755820773535381535337101205102527222030127237288328250232
// 70822758537055157287732520015202318011780212801252030531002173
// 50322003725053315207111327217107371520833321518070728802138075
// 51775731327317155353173555323535173771215553577227557273372573
0909デフォルトの名無しさん
2010/11/27(土) 11:16:42以下未実装
0910デフォルトの七氏
2010/11/28(日) 14:50:05・それをそれぞれのページで行うようにする。
と
・次のページがあれば次のページに行き行う
がわかりません。
0911デフォルトの名無しさん
2010/11/28(日) 16:26:5220件載っているページにおいて
div.mname strong a の href が店舗ページへのリンクなので、
それをpage.atに指定して、URLを得て、getする。
getしたらそのページの情報を出力する。
> ・次のページがあれば次のページに行き行う
同じように、次のページへのリンクのソースがどうなっているかを調べて、
それを拾えるようなパターンをatに指定することで、
次のページへのリンクを取り出す。
取り出せたらそのリンクを使えば次のページがgetできるだろう。
取り出せなかったら全部見たことになるので、終わり。
0912デフォルトの七氏
2010/11/28(日) 17:15:05コードで書くとどんな感じになるか教えて頂けないでしょうか!?
rubyをかじって日が浅いので、やることと、ruby上で何と書けばいいのかが結び付きにくいです。。
現在ここ(http://codepad.org/aW2wDA1d)までできています。
よろしくお願いします。
0913デフォルトの名無しさん
2010/11/29(月) 16:39:19食べログの情報をスクレイピングしてスパム発生させてAdsenseだかを張り付けて小銭稼ごうとするクズ
スルー推奨
0914デフォルトの名無しさん
2010/11/29(月) 16:45:470915デフォルトの名無しさん
2010/11/30(火) 02:23:18クズはクズらしくうみ
0916デフォルトの名無しさん
2010/12/01(水) 21:54:14アフィやりたいならそういう連中がたむろしてるところ行ったほうが直球で助言もらえるのに
似たようなことでめし食っててもアフィ嫌いな純粋な技術者が多い掲示板なんかで聞くのもアホだし
すぐバレる嘘つくのもアホ
0917デフォルトの名無しさん
2010/12/02(木) 01:38:13つまりカス
0918デフォルトの名無しさん
2010/12/05(日) 17:58:140919デフォルトの名無しさん
2010/12/08(水) 16:55:580920デフォルトの名無しさん
2010/12/11(土) 09:39:150921デフォルトの名無しさん
2010/12/11(土) 13:36:140922デフォルトの名無しさん
2010/12/11(土) 13:42:470923デフォルトの名無しさん
2010/12/12(日) 03:00:43どれ?でてこない
英語版ならこれか
Web scraping - Wikipedia, the free encyclopedia
http://en.wikipedia.org/wiki/Web_scraping
0924デフォルトの名無しさん
2010/12/13(月) 18:33:19http://ja.wikipedia.org/wiki/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B9%E3%82%AF%E3%83%AC%E3%82%A4%E3%83%94%E3%83%B3%E3%82%B0
とにかくいろいろひどい
0925デフォルトの名無しさん
2010/12/13(月) 22:44:33こんな説明じゃ基本情報処理試験でさえ落ちちゃうよ。
0926デフォルトの名無しさん
2010/12/14(火) 22:33:14これはひどい
0927デフォルト
2011/02/03(木) 22:48:06x=[2,6,20,15,8,21,8,22,15,20,1,15]
y=["Jan","Feb","Mar","Apr","Mey","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]
sx=0
upper=0
middle=0
lower=0
xmax=0
xmin=0
best_x=0
worst_x=0
for i in 0..n-1
sx=sx+x[i]
end
xave=sx/n
print "Sipments:Total=",sx," Average=",xave,"\n"
puts
下に続く。
0928デフォルト
2011/02/03(木) 22:49:20if x[i] >= xave*1.5 then
upper = upper + 1
elsif x[i] <= xave*1.5*0.5
middle = middle + 1
else x[i] <= xave/2
lower = lower + 1
end
end
print "Sales:Upper=",upper," Middle=",middle," Lower=",lower,"\n"
puts
xmax=x[0]
xmin=x[0]
for i in 0..n-1
if xmax >= x[i] then
best_x = best_x + 1
else xmin <= x[i]
worst_x = worst_x + 1
end
end
print "Best Month:",best_x, " Worst Month:",worst_x,"\n"
puts
出力結果
Sipments:Total=153 Average=12
Sales:Upper=4 Middle=5 Lower=3
Best Month:2 Worst Month:10
本当はBest Month:Aug、Worst Month:Novとしたいんですけど、どうしたらいいですか?
やっぱり変数がおかしいんですか?それとも条件の書き方ですか??
0929デフォルトの名無しさん
2011/02/04(金) 01:02:191. Mey?
2. upper、middle、lowerが排他的で無いが良いのか
最高・最悪の月の処理のとこは今のままだと1月より少ない月多い月(ここ条件が逆ね)の「個数」になっている
直すとしたら
xmax = 0; xmin = 0
for i in 0 .. n - 1
if x[xmax] <= x[i] then
xmax = i
elsif x[xmin] >= x[i] then
xmin = i
end
end
print "Best Month:",y[xmax]," Worst Month:",y[xmin],"\n"
0930929
2011/02/04(金) 01:04:05require 'ostruct'
sales = %w(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec).zip [2, 6, 20, 15, 8, 21, 8, 22, 15, 20, 1, 15]
sipments_total = sales.map{|e| e.last}.inject(:+)
sipments_average = sipments_total.to_f / sales.size
puts "Sipments:Total=#{sipments_total} Average=#{sipments_average}"; puts
segment = sales.inject OpenStruct.new do |seg, e|
seg.upper ||= 0; seg.middle ||= 0; seg.lower ||= 0
case e.last
when sipments_average * 1.5 ... Float::INFINITY
seg.upper += 1
when sipments_average * 1.5 / 2 ... sipments_average * 1.5
seg.middle += 1
else
seg.lower += 1
end
seg
end
puts "Sales:Upper=#{segment.upper} Middle=#{segment.middle} Lower=#{segment.lower}"; puts
worst, best = sales.minmax_by{|e| e.last}.map{|e| e.first}
puts "Best Month:#{best} Worst Month:#{worst}"
0931デフォルト
2011/02/04(金) 01:58:01ご丁寧に教えていただきありがとうございます!!!
print "Sales:Upper=",upper," Middle=",middle," Lower=",lower,"\n"のところまでは
先生に問題ないといわれてたので、
xmax = 0; xmin = 0
for i in 0 .. n - 1
if x[xmax] <= x[i] then
xmax = i
elsif x[xmin] >= x[i] then
xmin = i
end
end
print "Best Month:",y[xmax]," Worst Month:",y[xmin],"\n"
を使わせていただきます。
というか、条件が逆だったんですね><
0932デフォルトの名無しさん
2011/02/15(火) 12:02:44すごい時代だな
0933デフォルトの名無しさん
2011/03/01(火) 12:21:32.39| ノ ___ヽ
/。・゚・(____ `・゜゚・。 いつでも連絡するクマー
| u( _●_)ヽ 〉
彡、 |∪| / 誰か助けるクマー
. / ヽノ . /´
.____
/ ヽ、 _ノ\
/ (○)iji(○)\ 正義がキチガイ呼ばわりされたんだぞ。
/ (__人__) \
| |::::::| | 義憤に駆られることはないのかお?
\ l;;;;;;l /l!| !
/ `ー' \ |i Rubyistとして後ろめたさはないのかお!
/ ヽ !l ヽi
( 丶- 、 しE |そ 一生後悔することになるお!
`ー、_ノ 煤@l、E ノ <
レY^V^ヽl そこのあなた!勇気を出すんだお。
____
/ \ 助けて欲しいんだお・・・
/ _ノ ヽ、_ \ 同じ釜の飯を食ったんだお・・・
/ o゚((●)) ((●))゚o \ いつも一人で居残り残業してたんだお・・・
| (__人__) | あまりの悲しさに、むせび泣いたこともあったお
\ ` ⌒´ / そんなやる夫を見捨てるのかお?
____ このままだったら一生恨むお
/ \ たとえ誰がなんと言おうと、強烈な違和感なんだお
/ _ノ ヽ、_ \ 直観がモノ言ってんだお
/ o゚⌒ ⌒゚o \ えっぇっえ〜ん。え〜ん。
| (__人__) | えっぇっえっぇっ。うっぅっぅうー。。。
\ ` ⌒´ / うええ〜ん。。。えぐっぇぐっうっうっううぅー。。。
0934デフォルトの名無しさん
2011/03/16(水) 15:20:29.66学生のふりして社会人も混ざってる気がする
0935デフォルトの名無しさん
2011/03/19(土) 18:38:52.13東京大学教養課程の第一プログラミング言語がRubyだった時期があるようだ。
0936デフォルトの名無しさん
2011/05/02(月) 13:12:12.98おねがいします。
canvas .c -background white
pack .c -fill both -expand 1
wm geometry . 300x200
wm resizable . 0 0
set x 1
set y 1
set xpos 35
set ypos 85
.c create oval 30 80 40 90 -outline black -fill red
while {1} {
.c move 1 $x $y
set xpos [expr $xpos + $x]
set ypos [expr $ypos + $y]
if {$xpos >= 295 || $xpos <= 5} {
set x [expr $x * -1]
}
if {$ypos >= 195 || $ypos <=5} {
set y [expr $y * -1]
}
after 10
update
}
0937デフォルトの名無しさん
2011/05/02(月) 14:44:25.53/_____
|/⌒ヽ ⌒ヽヽ | ヽ Rubyコミッターになったよ
| / | ヽ |─| l
/ ー ヘ ー ′ ´^V ママ、Z会でもぼくがんばるよ
l \ U/ _丿
. \ ` ー ´ / .
>ー── く
/ |/\/ \
l l | l
ヽ、| | ノ
|ー───j
0938デフォルトの名無しさん
2011/05/02(月) 14:48:43.30_____
/ ヽ�� /^ \
_ /________ ヽ (_/ ヽ
|ノ─ 、/─ 、ヽ | ヽ (_\/
,| \ |・ | | j ヽ `−ノ
. || 二 | | ̄ ⌒ヽ′ / / 学校で今日はちょっと別のところに自転車で移動したんだけど
/ /ー C ` ─ \) _ノ / / そこで学校に戻るときに豚同級生がカギをなくして、30分位まってた後に結局ポケットにあったとか言って皆キレる
! ⊂──´⌒ヽ ノ/( / ノノ
\ \_(⌒⌒_) /! ヽ、/俺は「ヴァカだろ死ねよ!!」って言っておいた。同級生いじめはストレス解消。
` ,┬─_− ´/ ヽ /
/ |/ \/ く
(( /\ \ ヽ
/, ─ 、/ \ /\
. ( l l j \ ___ / ヽ
0939デフォルトの名無しさん
2011/05/02(月) 14:49:25.19_____
/ ヽ�� /^ \
_ /________ ヽ (_/ ヽ
|ノ─ 、/─ 、ヽ | ヽ (_\/
,| \ |・ | | j ヽ `−ノ
. || 二 | | ̄ ⌒ヽ′ / / 学校で今日はちょっと別のところに自転車で移動したんだけど
/ /ー C ` ─ \) _ノ / / そこで学校に戻るときに豚同級生がカギをなくして、30分位まってた後に
! ⊂──´⌒ヽ ノ/( / ノノ結局ポケットにあったとか言って皆キレる
\ \_(⌒⌒_) /! ヽ、/俺は「ヴァカだろ死ねよ!!」って言っておいた。同級生いじめはストレス解消。
` ,┬─_− ´/ ヽ /
/ |/ \/ く
(( /\ \ ヽ
/, ─ 、/ \ /\
. ( l l j \ ___ / ヽ
0940デフォルトの名無しさん
2011/05/02(月) 14:51:07.70_ /  ̄ <_
_>`´ >>1 ___<_
> r‐'" ̄ ̄ ノ ̄ ̄`ヽ、―ニ 二
/ , | `ヽ/ ´`ヽ _ 三,:三ー二 豚とかいうな sopa_h!!!!!!!!
 ̄/ | ノヽ--/ ̄ , ` ̄ ̄ ̄
/ /⌒ヽ,| ミ } ...| /!
レ l d _}`ー‐し'ゝL _
| ヽ、_, _,:ヘr--‐‐'´} ;ー------
|/| \ ノ`ヾ:::-‐'ーr‐'"==-
ヽ/l/|` ー------r‐'"  ̄ ̄
|└-- 、__/`\-:、
__,ゝ,,_____/ \_」 \
0941デフォルトの名無しさん
2011/05/02(月) 14:55:20.780942デフォルトの名無しさん
2011/05/02(月) 15:28:38.45/  ̄ ̄ ̄ \
/ / vv
| | |
| (|| ヽ _______
,ヽヘ / | >_____ |
/\\ /  ̄ |⌒ v⌒ヽ |__| ヴァカだろ死ねよ!!
/ \\ __ / | .| . ノ )
/ `\| < ` o `- ´ ノ
| ヽ > /
| | l | /▽▽\
0943デフォルトの名無しさん
2011/05/03(火) 00:52:06.57require 'tk'
root = Tk.root
canvas = TkCanvas.new(root,:bg=>:white).pack(:fill=>:both,:expand=>true)
root.wm_geometry("300x200")
root.wm_resizable(0,0)
x,y,xpos,ypos = 1,1,35,85
oval = TkcOval.new(canvas,30,80,40,90,:outline=>:black,:fill=>:red)
mainloop = Thread.start { Tk.mainloop }
TkAfter.new(10,-1) do
oval.move(x,y)
xpos += x
ypos += y
x = 0 - x if xpos >= 295 || xpos <= 5
y = 0 - y if ypos >= 195 || ypos <= 5
Tk.update
end.start
mainloop.join
0944デフォルトの名無しさん
2011/05/06(金) 15:26:24.08準必修だかなんだかの情報科学で今でも教えてなかったっけ
0945デフォルトの名無しさん
2011/05/31(火) 16:40:10.89[2] 問題文(含コード&リンク):()
http://www1.axfc.net/uploader/Sc/so/239982.gz
pass:1234
です
ques.txt
を読んでください。
少々わかりにくいですが、よろしくお願いします。
[3] 環境
[3.1] OS: Linux
[3.2] バージョン:ruby 1.8.7 (2009-06-12 patchlevel 174) [i386-linux]
[3.3] 言語: Ruby
[4] 期限: 今週
[5] その他の制限: なし
0946デフォルトの名無しさん
2011/05/31(火) 16:40:59.940947デフォルトの名無しさん
2011/05/31(火) 18:18:42.03という話であれば数字添字でファイル名を作るとかもうちょっと仕様を他人
向けに記述し直した方がよいのでは?
0948デフォルトの名無しさん
2011/05/31(火) 19:00:56.96これ自分で試してないだろ
ディレクトリに入れてから圧縮しとけ
で、欲しいのはRubyスクリプトなの? データなの?
Rubyスクリプトの場合、メソッドとクラスはどのくらいまで使っていいの?
それと、他人に割り算要求するときは切り上げか切り捨てかは明記しれw
実験テキストまるごとうpしてもらうなり、学外から実験のページ見れるならアドレス貼ってくれたりしたほうが状況が分かると思うw
0950デフォルトの名無しさん
2011/05/31(火) 20:03:42.41欲しいのはRubyスクリプトです。
ソースコード提出とかはないので、結果がだせればいいので、メソッドとクラスとかはあまり考えなくてもいいです。
小数点は切り上げでお願いします
0951デフォルトの名無しさん
2011/05/31(火) 20:15:16.81それで本来の大量データを加工し、加工したデータを提出するんだな
…Rubyでなければならない理由ってなんじゃらほえ
Windowsでインストール可能で動作するってのならPythonとかでもよくね
まあいいや、明日の朝7畤までにできてなければ飽きたので諦めて他のとこあたれ
0952デフォルトの名無しさん
2011/05/31(火) 20:20:37.020953デフォルトの名無しさん
2011/05/31(火) 20:42:43.73超絶美麗にまとめないといけないならしんどいが
0955デフォルトの名無しさん
2011/06/02(木) 20:19:31.580956デフォルトの名無しさん
2011/06/03(金) 14:10:11.240957デフォルトの名無しさん
2011/06/09(木) 22:13:14.350958デフォルトの名無しさん
2011/06/11(土) 23:47:56.41よく人でも、人に頼むのがウマいとかある様に、
ああ、これ面白そうとか、興味持たせる様な頼み方ってあると思う。
一度取りかかるととくのに懸命に成ってしまうから、最初の一歩を乗せるのさえ成功すれば回答率も増えるとは思う。
既に他の人がといてるのを見ると、もういいやってのも同じかなw
0959デフォルトの名無しさん
2011/06/13(月) 06:45:39.62必死で直してくれる人が現れる時代は終わったのか
0960デフォルトの名無しさん
2011/06/13(月) 12:47:56.35まともな人はツイタやフェイスブックに流れてしまった。
震災の報道でもにちゃんはスルーされていた。
0961デフォルトの名無しさん
2011/06/13(月) 21:28:55.47ちゅーかダウンロードしても
書いてある日本語の意味が取れんかった
0962デフォルトの名無しさん
2011/06/14(火) 02:49:05.55基本的に言語ごとで違う。
光あるべきってのはそれこそ宗教だしねえ。
rubyつかうならモルモン教徒でデビアン使いのまつもと教が絶対的。
そこは他宗派とか分家とかしようものなら報復覚悟だしねえ。
0963デフォルトの名無しさん
2011/06/14(火) 08:48:36.42好きに設定を捏ねててくださいw
0964デフォルトの名無しさん
2011/06/17(金) 06:44:23.33しばらくツイに浮気したけど
あそこはデマだらけで酷酢
結局もとのさやに戻ってきた
0965デフォルトの名無しさん
2011/06/17(金) 08:27:24.370966デフォルトの名無しさん
2011/06/17(金) 09:03:51.19どす黒い悪。
0967デフォルトの名無しさん
2011/06/17(金) 13:25:55.720968デフォルトの名無しさん
2011/06/17(金) 20:29:33.890969デフォルトの名無しさん
2011/06/18(土) 02:46:37.57ツイッターだと条件反射で裏とらずに拡散してる馬鹿が大杉
0970デフォルトの名無しさん
2011/06/18(土) 03:16:25.75ちゃんと自分で個別に公式発表にたどり着かなきゃw
媒体に酔って信頼度が違うってメディアリテラシの基本だろう。情報弱者すぎるw
0971デフォルトの名無しさん
2011/06/18(土) 08:10:33.580972デフォルトの名無しさん
2011/06/18(土) 08:53:57.89石の中から玉をよりわけるスキルが必要な時代
0973デフォルトの名無しさん
2011/06/18(土) 08:57:07.16Rubyという宝石を掘り当てたわけですね
0974デフォルトの名無しさん
2011/06/18(土) 18:05:02.78不便な時代になったな
0975デフォルトの名無しさん
2011/06/18(土) 18:12:04.43ルビーという特別な存在
ルビーとサファイアは鉱物名としてはコランダムという鉱物に属します。ルビーとサファイアは、 鉱物学的にいうと兄弟であるといえます。
その化学組成は, Al2O3、 酸化アルミニウム、いわゆる陽極酸化被膜(アルマイト)です。聞きなれない言葉ですが、身の回りのいたる
ところに存在します。ようするに、アルミです。そして、アルマイトを溶かして冷やすだけでコランダムの結晶となります。
不純物が非常に少ない純粋なコランダムは無色透明で、しかも高い屈折率により強い輝きを示しますが(無色サファイア)、
宝石用途として用いられることは殆どありません。
しかし、わずか1%程度の微量のクロムを不純物として合むことにより、ルビーになるのです。この微量な不純物の量が微妙で、
これが0.1%となるとピンクになり、ルピーには届かずピンクサファイアと鑑別されます。 それが多過ぎて5%以上になると
灰色のエメリーと呼ばれる灰色の工業用の研磨用途の鉱物になり、価値はなきに等しくなります。
しかし、ルビーが希少な宝石なのはそれだけではなく、不純物として含まれるクロムの存在が大きな理由です。
コランダムに適度なクロムが含まれるという事自体が稀にしか起きないのです。 何故なら、クロムは珪酸分の少ない塩基性
または超塩基性と呼ばれる火成岩に含まれますが、 コランダムは一般には珪酸分の多い酸性岩質の、しかも珪酸分が多過ぎては
他の鉱物になってしまうという微妙な条件の下で生成します。 即ち通常ならコランダムにクロムが含まれることはあり得ないのです。
しかし、実際にはルビーは存在するのですから、 あり得ない何か特別なことが起こったことになります。
まさに、ルビーはルビーであるだけで特別な存在なのです。
0976デフォルトの名無しさん
2011/06/18(土) 18:14:10.50ミャンマーのルビーの年間産出量は、約4万カラットと極めて少なく、タイ・カンボジア国境がその10倍程度、アフリカで約2万カラットと、
世界中合わせても50万カラット程しかありません。年間産出量としては、ダイヤモンドの1500万カラット、サファイアの2000万カラット、
エメラルドの300万カラットと比べると、これだけ有名で人気のある宝石としては桁違いの少なさです。
しかも、最高級産地のミャンマーは常に紛争の危機にさらされ供給が不安定なため、最高級のルビーはどんどん値上がってしまい、
今日の破格につながっています。
しかしながら、マダガスカルでの新たな産出により今後の動向が気になるところです。
0977デフォルトの名無しさん
2011/06/18(土) 23:07:33.44>最高級産地のミャンマーは常に紛争の危機にさらされ供給が不安定なため、最高級のルビーはどんどん値上がってしまい、
>今日の破格につながっています。
紛争があるから値が上がってるんじゃなくて
ルビーが産出するから紛争が起こってるんじゃまいか?
0978デフォルトの名無しさん
2011/06/19(日) 03:19:00.82玉と見なすには完成度がまだ低過ぎる。もっと磨け。ルブー2.0ぐらいにはまともに成ってると期待。
0979デフォルトの名無しさん
2011/06/19(日) 03:21:47.48ダイヤやサファイヤは工業製品でよく使われてるけど。
0980デフォルトの名無しさん
2011/06/19(日) 03:29:52.39ルビーは工業的には青色LEDのGaN結晶の成長に不可欠のはず
0981デフォルトの名無しさん
2011/06/19(日) 10:27:17.14完成した枯れたものが使いたいなら他を探せ。
0982デフォルトの名無しさん
2011/06/19(日) 11:49:47.82perl5は完成度高いよ。
0983デフォルトの名無しさん
2011/06/19(日) 16:43:17.07使ったら負け
レス数が950を超えています。1000を超えると書き込みができなくなります。