[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/09 22:42 / Filesize : 246 KB / Number-of Response : 911
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Ruby 初心者スレッド Part 24



1 名前: 【大吉】 mailto:sage [2009/01/01(木) 13:13:22 ]
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。

   【Ruby1.9 は不安定な開発版であり初心者には全く向きません】
   【最新安定版の Ruby1.8.7 の使用をお勧めします】
    ※1.8.7 は1.8 と 1.9 の橋渡しをするためのリリースです。
      1.9 の新機能の一部が利用可能なので初学者にお勧めです。
    ※ただし十分安定しているとは言えないので
      プロダクション環境での利用にはお勧めしません。

関連スレやURLは>>2-8あたりを見てください。Ruby on Railsの質問はRailsスレへ。

■質問する人へ
質問する前に次の3つをすること。ここで回答を待つよりそのほうが早い。
 ・モジュール名やエラーメッセージでググる
 ・マニュアルで引っかかったクラスの記述を探す www.ruby-lang.org/ja/man/
 ・FAQを一応読む www.ruby-lang.org/ja/man/?cmd=view;name=Ruby+FAQ
質問には以下を書くこと。へたくそな質問は再提出を要求される。
 ・詳しい内容(「動きません」「うまくできません」では回答しようがない)
 ・エラーメッセージ(自力で訳さずなるべくそのままで)
 ・実行環境(OS名、Rubyのバージョン(ruby -v でわかる))
 ・最終的にやりたいこと(もっとよい方法がある場合が多いので)
回答してくれた人には「ありがとう」のひとことをいってあげて。
■回答する人へ
相手は初心者、根気よく育てるつもりで。質問がへたくそなのも大目にみてあげる。
それができないならこないこと(だって初心者スレだもん)。
 ・既出な質問やFAQは「XXXを読め」でいいので、叩かない&怖がらせない。
 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。
 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。

520 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 22:26:02 ]
昔ファミコンでやってた時何も知らずにバッドエンドだった時は放心した。。。
パスワードとらずにやってたから初めからやり直しだったなwww
苦い青春だったぜ

521 名前:デフォルトの名無しさん mailto:sage [2009/01/15(木) 00:41:39 ]
Mac OS X で ruby-1.9.1-rc1 をコンパイルすると、i686ではなくi386になる。
$ ruby -v
ruby 1.9.1 (2008-12-30 patchlevel-0 revision 21203) [i386-darwin9.6.0]
i386用にコンパイルされていると遅いよね?
i686用にコンパイルしたいんだけど、どうしたらいい?


522 名前:デフォルトの名無しさん mailto:sage [2009/01/15(木) 04:03:10 ]
誰かrarff使っている人いますか?

523 名前:デフォルトの名無しさん mailto:sage [2009/01/15(木) 07:29:43 ]
>>520
2か3で誰かと入れ替わるイベントもあったよな。どっかの王様だっけ?
あん時はパニックになって友達に泣きついたが、あとから考えると
恥ずかしかったな。

524 名前:デフォルトの名無しさん mailto:sage [2009/01/15(木) 08:41:56 ]
古いバージョンで動いてたスクリプトを最新版で動くようにする変換機とかありますか?

525 名前:デフォルトの名無しさん mailto:sage [2009/01/15(木) 10:03:15 ]
>>524
原理的に無理でしょう
人間の手で書き換えるしかないんじゃないかと

526 名前:デフォルトの名無しさん mailto:sage [2009/01/15(木) 15:20:40 ]
>>523
3で王様になるイベントだな。
あれは最初どうにもならんでリセットしたわw

527 名前:デフォルトの名無しさん mailto:sage [2009/01/15(木) 17:31:34 ]
irb> file.scan(re[:method])
RegexpError: Stack overflow in regexp matcher

ぬう
これでカッコ多いか生意気な

528 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 04:09:51 ]
下位互換性確保のために、古いバージョンの実行環境を残しておくのは重要。



529 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 05:16:24 ]
Ruby 初心者スレッド Part 22
pc11.2ch.net/test/read.cgi/tech/1221467121/322

322 名前:デフォルトの名無しさん[sage] 投稿日:2008/10/02(木) 18:02:43
バッチファイルにしてやればエラーが出てもポーズさせるようにできるよ。
ruby -x "%~0" || pause
と書けばエラーが出たときに限ってとまる。

test.bat
ruby -x "%~0"
pause
goto :eof

#!ruby
put "hello"



530 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 05:18:42 ]
うぉ途中で送信した

>>529について質問なのですが、
ruby -x (スクリプト名) と指定することはどういう意味があるのでしょうか?
特に -x なのですが、マニュアルを読んでも意味がわかりません。

これはバッチを実行した時にその作業ディレクトリをスクリプトのディレクトリに移動するという意味でしょうか?


531 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 05:32:56 ]
#!ruby より上を読み飛ばすってことじゃないかな?
全体でバッチファイルになってるけど、rubyスクリプトとして実行されるのは下の2行だけっていう。

532 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 10:23:47 ]
最近、『ケント・ベックのSmalltalkベストプラクティス・パターン』に中身が似てるっぽい
『実装パターン』て本が出ましたが、Ruby使いにとってはどちらがより役に立ちますか?
前者がSmalltalkのコードで説明してて、後者はJavaですよね。

両方読んでみた人いますか?

533 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 11:55:55 ]
>>532
似たことが書いてありますが、SBPPは動的言語向け、IPは静的言語向けの内容なので
どちらかを選ばなければならないなら、Ruby使いにはSBPPのほうを薦めます。

もちろん、お金と時間に余裕があるならば、両方読むのが吉です。

534 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 13:30:06 ]
>>531
あーーそういう意味か!わかりました。
batファイル自身がRubyスクリプトになっててそのまま実行できるようになってるんですね。

535 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 20:29:35 ]
win32oleをつかってADO経由でsqlserverのテーブルに
対して読み書きを行おうと思っています。

connectionオブジェクトのゲットは出来ました。
recordsetオブジェクトのゲットも出来ました。
recordsetの各feilds("項目名").valueに値をセットして
updateメソッドで反映出来るのも確認できました。

「よし、出来た」
そう思ったのもつかの間。
「テストテーブルだけど初期値(null)に戻しておくか」
そう思った時に壁につぶかりました。
rsTest.feilds("項目名").value = nil
こうすると例外が出てしまいます。
初期値(null)が入っている時は

p rsTest.feilds("項目名").value
結果:nil
になったのですが…。

DBのnull≠nilで初期値がp関数でnil表示されるのは
型が返還された結果だというのはおぼろげながら
想像はつくのですが、ではADOのFeildオブジェクトに
nullをセットするにはどうしたらいいのでしょうか?

レコードセットでの操作を諦めてSQL文で操作した
方がいいのでしょうか?

環境
OS:WINDOWS2000 rubyのバージョン1.8

536 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 21:10:26 ]
うちはnilで出来てる

537 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 00:01:52 ]
ADOのconnectionが作れたならSQL発行すればいいじゃん

538 名前:535 mailto:sage [2009/01/17(土) 02:06:05 ]
>>536
nilのままでOKなんですか。
となると呼び出し方がおかしいとか
バージョンとかの相性の問題ですかねぇ

>>537
最終的にはそうなりそうです。
ただ、nil以外は値をちゃんと設定できるだけに
何か手順があるのかなと思いまして。

まぁ、ちょっと悔しくてなんとか
足掻けないかなぁと思っただけなんです。





539 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 06:38:14 ]
ml.postgresql.jp/pipermail/pgsql-jp/2006-November/021242.html

540 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 06:50:04 ]
ttp://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=59578;id=excel

541 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 07:13:16 ]
ttp://www.atmarkit.co.jp/fdotnet/basics/adonet06/adonet06_03.html

542 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 07:49:14 ]
>>533
ありがとうございます。参考になりました。

543 名前:535 mailto:sage [2009/01/17(土) 09:43:17 ]
>>539-541
ありがとうございます。
Ruby側じゃなくて、ADOサイドの問題の可能性が高そうですね。
色々試してみます。


544 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 10:28:41 ]
テーブルの定義の問題だと思う

545 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 11:11:32 ]
自分のコーディングが怪しいと思わないところが問題だと思う

546 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 14:14:56 ]
PStore.new('test.pstore').transaction(read_only=true) do |pstore|
 ...
end

の read_only=true がただのメソッド説明用の表現であり、
実際は引数に true を渡す普通のアレだということを数年使ってきてやっとさっき気づいた

PStore.new('test.pstore').transaction(true) do |pstore|
 ...
end

pstore の時だけなんか引数で代入?みたいな特別な記法があるんだなーとずっと思ってた

547 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 15:01:17 ]
特別な記法はある

548 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 15:49:46 ]
>>547
特定のクラスだけ通用する記法みたいなのは特にないよ
返り値が評価されるだけだ



549 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 16:06:28 ]
いや、トップレベルに read_only= という関数的メソッドを定義するライブラリかもしれないじゃないか

550 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 03:57:37 ]
KDE3 の korundum.rb にはあった、KDE モジュールの ListView クラスと ListViewItem クラスが、
KDE4 の korundum4.rb にはありません。

これは何か別のクラスで置き換わったのでしょうか。
よろしくお願いします。

551 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 15:25:00 ]
ちょっとした質問があります。

UTF-8(BOM付き)とUTF-8n(BOMなし)を判別する簡単な方法はありませんでしょうか?

NKF.guess だと 両方とも 5(=UTF8) としか帰ってこず、
判別できませんでした。

552 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 15:28:41 ]
対象をUTF-8のBOMと照合したらいいじゃまいか

553 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 15:29:45 ]
BOMとマッチさせるだけだよなぁ。


554 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 15:55:56 ]
特定のウィンドウやソフトから流れる音楽の音量を音楽編集ソフトで音量増幅したようにリアルタイムで増幅したいのですが。
ルビーでできますか。どのような方法で可能なのですか。

555 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 16:09:01 ]
>>554
できるとしてもRubyとしての仕事ではなく、
他のプログラムのコア部分に処理を形通り依頼する(データを丸投げして呼び出す)というやり方になる
Rubyは関係ないな

556 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 16:16:20 ]
>>550
一応答える
知らんがな

KDEスレのほうがたぶん変更理由とかに詳しいと思われ

557 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 16:26:36 ]
>>554
OSやウィンドウ(アプリ)が何なのかによるんじゃないの?

↓LeopardでAppleScriptを介してiTunesのボリュームを変える
とか書かれても参考にならんでしょ?

require 'osx/cocoa'
include OSX

def iTunesVolume(volume)
script = NSAppleScript.alloc.initWithSource <<-EOF
tell application "iTunes"
set sound volume to #{volume}
end tell
EOF
error = OCObject.new
script.executeAndReturnError(error)
end


558 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 16:33:04 ]
>>556
そうですか。すまんす。
KDEスレを探してみます。



559 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 17:21:34 ]
>>557
特定の曲だけにしたいんです

560 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 18:04:17 ]
.wavとか.mp3とかの元データを変えずに、
再生中に特定の曲だけボリュームを上げたいってことか。


561 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 18:06:14 ]
Windowsなら腐るほど該当アプリケーションあるけどな

562 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 18:21:32 ]
>>560
>>561
その方は私の質問に便乗している方ですのでお間違いないように。
私の希望はあくまでも、ウィンドウやソフトから流れる音をミュート以上にリアルタイムで増幅する方法です。

>>555
>>557
そうですか..。
いや、SDLとかいうルビーのゲーム用ライブラリーで音楽が扱えていたことと、
パソコン上で再生された音や特定のウィンドウの音を録音できるフリーウェアがたくさんあったので、そんなに難しいことではないのかなと質問させていただきました。
ミュートの調整による増幅以上に増幅する方法をさがしているので。

563 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 19:10:47 ]
意味が分からない

564 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 19:25:49 ]
>>562
他のフリーウェアがどうやってるのかは分からないが
Ruby覚え立てでスパッと出来るほど簡単なものではない
OSによってもやり方が違うし

565 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 19:52:49 ]
ミュートの意味がおかしくね?

566 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 20:37:45 ]
>>562
出来ないから諦めろ、て言われたら諦めてくれる?

567 名前:デフォルトの名無しさん [2009/01/18(日) 21:30:31 ]
>>564
OSはウィンドウズです。
>Ruby覚え立てでスパッと出来るほど簡単なものではない
そうですか?初心者向けと聞きましたが。
それに分からないから(これから勉強するので)初心者質問スレに質問したのですが。

>>566
分かる人を待ちますよw

568 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 21:32:54 ]
このスレは成りすましお断りですよ



569 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 21:44:28 ]
>>567
初心者向けだと言ったやつに聞けばいいのでは?
特定のアプリを外部制御するならまだしも
Windowsで再生してる音の波形から曲を判定し音量コントロールなんて俺はやりたくない。

570 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 21:50:22 ]
タスクトレイにある「音量」をいじればいいよ。
それと同等の操作ならRuby初心者でもできるだろうけど
それ以上を求めるなら間違いなく待ちぼうけになる。

571 名前:デフォルトの名無しさん [2009/01/18(日) 21:54:19 ]
>>569

>特定のアプリを外部制御するならまだしも
>Windowsで再生してる音の波形から曲を判定し音量コントロールなんて俺はやりたくない。
pcに流れる音全体でもいいですよ(できれば個別にですが)。
ただリアルタイムで音量を増幅できれば。
それとフリーの録音かソフトが個別の音を録音できていることから考えると、
pc上に流れた全ての音がミックスされてスピーカーで流れているだけで、
スピーカーから流れる前段階のどこかで、個別の音声はプログラムで取得する方法があるような気がします。

572 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 21:56:21 ]
よくわからないが,>>561>>567を見ると煽りたくなる衝動に駆られる
この気持ちどうしよう

573 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 21:56:27 ]
だから、できるって
ただし、Rubyは無関係
他のサウンドとOSの深いとこを触るドライバやライブラリを直接いじるしかない
そのいじり方を学んでから、Rubyで通信する方法を聞きに来な

574 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 22:05:26 ]
>>567
>そうですか?初心者向けと聞きましたが。
Rubyは初心者向けかもしれんが
お前がやろうとしていることは、確実に上級者向けどころか前人未踏に近い領域だ

> それに分からないから(これから勉強するので)初心者質問スレに質問したのですが。
他の人も散々言ってるように、それは「Rubyの」初心者質問スレで解決できる質問じゃない
素直に諦めてくれ

575 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 03:00:31 ]
>>567
できりょ。

・Rubyをインストールする
・Vistaをインストールする
・タスクトレイから音量ミキサを開く
・アプリケーションごとの音量を調整する

な?簡単だろ?

ちなみに、Win32のデバイスドラバとかWin32APIとか絡みそうなものはRubyと激しく相性が悪い。
そもそも、Win32をゴリゴリやるのは向かないだろ。
C#(.NET)とかC++の方がまだ向いてる。


576 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 04:25:20 ]
>Win32のデバイスドラバとかWin32APIとか絡みそうなものはRubyと激しく相性が悪い。
mjsk
kwsk


577 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 05:10:11 ]
>・Rubyをインストールする
>・Vistaをインストールする
>・タスクトレイから音量ミキサを開く
>・アプリケーションごとの音量を調整する

これは上から順に見てワロタwww
上から順にしようとしたらできない事書いてあるし久々オモローwww

578 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 08:55:50 ]
オモローって自分から使ってる人久しぶりに見た



579 名前:デフォルトの名無しさん [2009/01/19(月) 09:39:59 ]
rubyのRPMを探しているのですが、見つかりません
どこにありますか?

580 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 09:53:00 ]
>>579
最新のものにこだわらなければ、
大抵のLinuxディストリなら標準で入ってるんじゃね?
OSと、欲しいRubyのバージョンは何?

581 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 11:22:21 ]
yum install ruby で入らないのか?

下手に探すより環境をしっかりさせろ。

582 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 11:23:09 ]
yum じゃなければ apt-get

583 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 11:56:52 ]
1.8.6に1.8.7のinjectでのシンボルによる二項演算子指定を実現するのは以下でいいと思います?

class Symbol
def to_proc
proc { |obj, *args| obj.__send__(self, *args) }
end
end

module Enumerable
alias _inject inject

def inject(*init, &block)
if not block
begin
return _inject(&init[0])
rescue
return _inject(init[0], &init[1])
end
end
_inject(*init, &block)
end
end

584 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 18:14:58 ]
emacs(meadow)でRuby書くときにこれこそ入れておけっていうelispありますか?
ruby-modeとruby-electric位しかruby周辺は入れてません.


585 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 18:35:54 ]
ハッシュってキーもバリューも日本語いけるんだな!ちとおらびっくりしたぞ!

586 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 22:16:48 ]
激しく実行環境依存で嵌まりそうだけどな。

587 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 22:24:07 ]
可搬性がなければならないプログラムを作らなければならない必要性というのは
現代のRuby用途では意外と低い

588 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 22:58:55 ]
自分んとこ(か、日本語が通ることが確定してる特定の環境)で使っておしまいというスクリプトのほうが多いな、確かに
外に出すんでなけりゃ日本語使ってもいいと思うけどね
日本語べったりになってるとアルファベットでどう書くか悩むことになるけど



589 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 23:01:44 ]
形態素とか使ってたら日本語使った方が簡単そうだな

590 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 00:22:14 ]
Ruby1.8.6です。REXMLのverは3.1.6です。
URLを与えたらそこから文書を抜き出してきて、それをyahooの形態素解析にかけるとXML形式でレスポンスが返るので
それをREXMLで解析するプログラムを作ったのですが、
wikipedia(全体ではなく開けるものもある)やその他一部のページで、REXMLの解析中にParseExceptionエラーが起きてしまうのですが、
エラー文を見ても意味がよく分からなく、同じような症状?が出た方も中々いないようなのでお手上げです。

以下エラー文です。
#<REXML::ParseException: Declarations can only occur in the doctype declaration.
Line:
Position:
Last 80 unconsumed characters:
<!doctype html public "-//W3C//DTD HTML 4.01//EN" "www.w3.org/TR/html4/str>


591 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 00:32:17 ]
明らかにXMLじゃないじゃん、それ
Yahooからの返事がXMLじゃないエラーか何かなんだと思うよ

592 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 00:35:52 ]
!DOCTYPE宣言が二重になってるとかなんだろうな

593 名前:590 mailto:sage [2009/01/20(火) 01:51:53 ]
>>591
エラーでしたら400等が表示されるはずなのですが、、

>>592
二重になるのってどこが問題なんですかね..

594 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 02:07:54 ]
>>593
400等が表示って、ちゃんとHTTPレスポンスヘッダはチェックしてる?


595 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 02:09:06 ]
しまった脊髄反射的なレスだった。
とりあえずREXMLに食わせるまえにファイル出力してみればいいよ。

596 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 02:33:58 ]
エラーになるURL晒すのが早いと思うが

597 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 04:34:23 ]
ネット系の問題に自分でデバックすら出来ないレベルか。なんか目的にたどり着くのは無理っぽい。


いつも使う必須のスクリプトが環境依存で引っ越して問題が出るのは良くある事。
まあその時に必要に迫られて書き直すと見通しよく成っていいプログラムに成る事は多いが。車輪の再生産気味だが。

598 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 06:11:08 ]
リファクタリングが車輪の再生産って言われるとやる気なくします><



599 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 06:25:09 ]
>>593
ステータスコードが200だからといって信頼していいわけじゃないぞ

600 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 08:21:46 ]
ruby 1.8.6 WindowsXP SP3です。

実例ではないのですが、100までの数をカウントするプログラムに、
標準入力から入力された数字を現在の数字に足す機能を加えたいと思っています。
色々調べたところ、スレッドというものを使えばよいのかな、という結論に達したので
以下のようなプログラムを書いてみましたが、思うような動作をしてくれません。
どなたかお知恵を貸していただけないでしょうか?

j = 1
t = Thread.new do
  while (j < 100)
    sleep 1
    p j.to_s
    j += 1
  end
end

while (j < 100)
  i = gets.chomp
  j += i.to_i
end


601 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 08:41:42 ]
これは・・・

602 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 08:45:58 ]
自然数k,p,q,m,nについて
k=mp+nq(m>=0,n>=0)を満たす(m,n)の組の数をv(k)とするとき
p=3, q=7, kが1から100までのときの結果vの一覧を出力したいです
Rubyではどのように書いたらいいですか?


603 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 08:53:52 ]
>>600
うちではうごいた

604 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 08:55:22 ]
>>602
m=0あるいはn=0のとき自然数じゃなくなるけどいいの?

605 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 08:58:43 ]
>>604
すみません間違えました
 x 自然数k,p,q,m,nについて
 o 自然数k,p,qについて
あと、m,nは「0以上の整数」です
よろしくおながいします

606 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 08:59:23 ]
>>603
うちでは数の表示がgets.chompに邪魔されて、リターンを押すまで
数え上げるほうのスレッドの実行がとまっているみたいなんです。

環境はLinuxとかでしょうか?

607 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 09:09:14 ]
>>606
cygwinです

608 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 09:10:44 ]
>>602
p = 3
q = 7
(1..100).each do |k|
 v = 0
 (0..(k/p)).each do |m|
  (0..((k-m*p)/q)).each do |n|
   if k == m*p + n*q
    v += 1
   end
  end
 end
 print "v(#{k})=#{v}\n"
end



609 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 09:20:36 ]
>>607
ありがとうございます。
実際にこの処理を使用するプログラムでは拡張ライブラリ使用&exerbでexe化を
考えています。Cygwinでは正常にexe化できないようなのでmswin32でなんとかならないか
もうちょっと調べてみます。

610 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 09:21:13 ]
>>600
mswin32ではgetsがブロックする。

611 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 09:27:05 ]
リファレンスのどっかにあったと思ってたんだけど、やっと見つけた。
www.ruby-lang.org/ja/man/html/trap_timeout.html

612 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 09:30:49 ]
>>608
こうかな
p = 3
q = 7
t = 0
u = 0
(1..100).each do |k|
 v = 0
 (0..(k/p)).each do |m|
  if (k-m*p)%q == 0
   v += 1
  end
 end
 print "v(#{k})=#{v}\n"
 u += v
 if v > 0
  t += 1
 end
end
print "total #{t}, #{u}\n"


613 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 09:41:30 ]
>>609
exerb+cygwinでexe化うまくいってるよ
なんか変なライブラリくっつけてない?

614 名前:デフォルトの名無しさん [2009/01/20(火) 09:59:05 ]
>>602
参考になるのかな
ttp://d.hatena.ne.jp/octech/20080118

615 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 10:09:17 ]
アンカミス
>>600

616 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 10:34:43 ]
>>614
ドンピシャです。ありがとうございます!

>>610-611
なるほど、mswin32だと修正を待つしかない・・・のかな?
と思ったけど回避策ってあるもんなんですね。引き出しを増やさなきゃ。

>>613
win32/sapi5を使っているのと、HDD容量に難があったのでCygwinは入れてませんでした。
2日前にHDDを注文したので届いたらCygwinでもやってみます。

レス下さった方々、ありがとうございました。

617 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 12:17:42 ]
>>616
>なるほど、mswin32だと修正を待つしかない・・・のかな?

バグじゃないから修正はされないんじゃないかな。
1.9では問題ないみたいだけど。

618 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 12:52:49 ]
>>608
共通一次ですね



619 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 12:54:26 ]
>>616
_kbhit入れたバージョンでも
一文字だけ入れてenterしないときって止まるよね

620 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 13:05:14 ]
>>617
バグじゃないんですかね?ruby-list 36068ではバグみたいに言われてる気がするけども。
1.9では問題ないとは!バージョンあげようかなぁ。

>>619
止まりますね。でも、そのほうが便利な気がしないでもないです、私の場合。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<246KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef