1 名前:RUBY [05/01/24 22:17:37 ] 私は、ある大学の1年生です。今、情報処理の講義でRUBYを習っています。 その講義で、期末テストとして課題が出たのですが、プログラミング初心者の私には 全然歯が立ちません。締め切りは1/31です。プロも皆さんには簡単な 問題かもしれませんがどうか教えてください。 課題は以下の通りです。
21 名前:デフォルトの名無しさん mailto:sage [05/01/25 10:38:35 ] >18 だから>2を読めって。分からないなら質問しろ。丸投げはダメだ。こんなアホな宿題を他人にやらせてたら、ダメ人間になっちゃうゾ!
22 名前:デフォルトの名無しさん mailto:sage [05/01/25 11:07:15 ] >>21 と言うか、>>2 を与えられてもまだダメだというのは、よほど無能だと 言うことだから、こいつにはプログラミングはさっさとあきらめて、 コンピュータ関係の業界に来ないで欲しいと言いたいな。
23 名前:デフォルトの名無しさん mailto:sage [05/01/25 11:09:25 ] p 18.id != 1.id#=>true です; とりあえず配列使って書けたけど >19さんの言う通りifとかcaseを使うのかな・・・(;´Д`)ウーン
24 名前:18 mailto:sage [05/01/25 11:10:10 ] Σ(´Д`;)ガーン・・・叩かれてる;
25 名前:デフォルトの名無しさん [05/01/25 20:29:39 ] class Ichi attr_reader(:nisuuu) def initialize @nisuuu = Hash.new @nisuuu[1] = 31 @nisuuu[3] = 31 @nisuuu[5] = 31 @nisuuu[7] = 31 @nisuuu[8] = 31 @nisuuu[10] = 31 @nisuuu[12] = 31 @nisuuu[4]= 30 @nisuuu[6]= 30 @nisuuu[9]= 30 @nisuuu[11]= 30 end end class Ni attr_reader(:n, :m) def initialize print "年と月を入力しろ\n" print "年>>>" @n = gets.chomp.to_i print "月>>>" @m = gets.chomp.to_i end end
26 名前:デフォルトの名無しさん [05/01/25 20:31:35 ] class San attr_reader(:ni) def initialize(n) @ni = 28 + (n / 4 * 4 / n) - (n / 100 * 100 / n) + (n / 400 * 400 / n) end end class Yon attr_reader(:ichiyoubi) def initialize(n) @ichiyoubi = (n + (n - 1) / 4 - (n - 1) / 100 + (n - 1) / 400) % 7 end end class Go attr_reader(:myoubi) def initialize(ichi, ichiyoubi, nigatsu, m) @myoubi = ichiyoubi for i in 1..(m-1) nisu = 0 if i == 2 nisu = nigatsu else nisu = ichi.nisuuu[i] end @myoubi += nisu end @myoubi %= 7 end end
27 名前:デフォルトの名無しさん mailto:sage [05/01/25 20:34:16 ] 配列使うな。 Rubyマニュアルで文法読め! >19の助言を読め! 大馬鹿者!
28 名前:デフォルトの名無しさん mailto:sage [05/01/25 21:08:12 ] >27 Rubyマニュアルって何ですか?
29 名前:デフォルトの名無しさん [05/01/25 21:56:55 ] def qsort(s, first, last) if first < last then pivot = s[last] i = first j = last - 1 while true do while i < last && s[i] < pivot do i += 1 end while j >= first && s[i] >pivot do j -= 1 end if i >= j then break end つづきます。
30 名前:デフォルトの名無しさん [05/01/25 21:57:26 ] temp = s[i] s[i] = s[j] s[j] = temp i += 1 j -= 1 end temp = s[i] s[i] = s[last] s[last] = temp qsort(s, first, i-1) qsort(s, i+1, last) end end def quick_sort(s) qsort(s, 0, s.size-1) return s end s = [4,5,8,7,10,8,9,3,12,0] p quick_sort(s) クイックソートのソースなんですけど、何故か上手くならんでくれません…。
31 名前:デフォルトの名無しさん [05/01/25 22:12:44 ] めちゃくちゃ!!
32 名前:デフォルトの名無しさん mailto:sage [05/01/25 22:15:43 ] >>1 とにかくがんばれ
33 名前:デフォルトの名無しさん mailto:sage [05/01/26 04:31:56 ] days = case month when 1,3,5,7,8,10,12 31 when 4,6,9,11 30 when 2 28 end
34 名前:デフォルトの名無しさん [05/01/26 06:42:54 ] ついにRubyにも宿題スレかw
35 名前:デフォルトの名無しさん [05/01/26 13:30:25 ] みんな、暖かく見守ってあげようよ
36 名前:デフォルトの名無しさん [05/01/26 13:36:04 ] やりたくもない宿題を出されて困っている人がいるのだから、 詳しい人が変わりにやってあげるのが当然だと思います。 人間らしい思いやりの心を見せましょう。
37 名前:デフォルトの名無しさん mailto:sage [05/01/26 13:50:23 ] >>29-30 誤 while j >= first && s[i] >pivot do 正 while j >= first && s[j] >pivot do よく見んと判らんなw
38 名前:sage [05/01/27 00:58:54 ] 29です。 あああ、ありがとうございます!!! 動きましたーー!!たすかりました〜〜ホロリ
39 名前:デフォルトの名無しさん [05/01/27 01:00:12 ] あ!あがってしまったw
40 名前:デフォルトの名無しさん mailto:sage [05/01/27 08:54:33 ] ダメ人間決定
41 名前:デフォルトの名無しさん mailto:sage放置 [05/01/28 10:44:29 ] sage放置
42 名前:デフォルトの名無しさん [05/01/28 19:11:54 ] あ!あがってしまったw
43 名前:デフォルトの名無しさん [05/01/29 02:40:38 ] Rubyの授業の課題として出されたのですが、学生中にRubyを使うことはおそ らくないので勉強していなかったのでまったくわかりません。誰か助けてい ただけませんか? ・web上の適当な英文をもちいて、大文字、小文字を無視して、各アル ファベッドについて、次に来る文字の頻度をカウントする。単語の終 わりでは次に来る文字は、空白、カンマピリオドなどである。数字も 含め、これらはアルファベッド以外の記号は、まとめてカウントする。 結果をHTMLの表として出力する。縦に最初の文字、横に次の文字とし て分布を見る。 という問題ですが誰かお願いします!
44 名前:デフォルトの名無しさん [05/01/29 02:43:59 ] わたしはもう寝ますが、明日までなので、朝までにやっておいてください。 コピペしてすぐ提出できるように、ちゃんと書いておいてください。
45 名前:デフォルトの名無しさん [05/01/29 02:51:57 ] >わたしはもう寝ますが、明日までなので、朝までにやっておいてください。 コピペしてすぐ提出できるように、ちゃんと書いておいてください。 上の文は誰か他の人が書いたものなので。 ぜひお願いします!
46 名前:デフォルトの名無しさん mailto:sage [05/01/29 02:55:49 ] 「アルファベッド」
47 名前:デフォルトの名無しさん [05/01/29 03:07:57 ] >>43 「アルファベット」でした。すいません。
48 名前:デフォルトの名無しさん mailto:sage [05/01/29 03:30:15 ] >>43 タグはどうすんの? web上の英文て対象はHTMLを含むんだよね。 <p>baka</p> なんてHTMLが送られてきたら、pは2回、bakaは1回てカウントするの? それともpは無視?
49 名前:デフォルトの名無しさん mailto:sage [05/01/29 03:32:16 ] あ、ごめん、文字ね。
50 名前:デフォルトの名無しさん mailto:sage [05/01/29 04:16:34 ] >>43 作ってみたよー require 'open-uri' TARGET_URI = 'www.gnu.org/ ' class CharCounter NON_WORD_CHAR = 'OTHER' def initialize @buf = Hash.new{|h, k| h[k] = Hash.new(0)} @before_char = NON_WORD_CHAR end # def def push(s) s.gsub(/[\r\n]+/, '').split(//).each do |c| c.downcase! c = NON_WORD_CHAR if c !~ /[a-zA-Z]/ @buf[@before_char][c] += 1 @before_char = c end end # def def sorted_each @buf.keys.sort.each do |k| yield k, @buf[k] end end # def end # class # 続く
51 名前:デフォルトの名無しさん mailto:sage [05/01/29 04:17:19 ] # 続き ALPHABETS = %w(a b c d e f g h i j k l m n o p q r s t u v w x y z) ALPHABETS.push(CharCounter::NON_WORD_CHAR) def print_html(counter, uri) puts "<html><head><title>#{uri}</title></head><body><table border=1><tr><td> </td>" ALPHABETS.each do |c| puts "<th>#{c}</th>" end puts '</tr>' counter.sorted_each do |prechar, freq| puts "<tr><th>#{prechar}</th>" ALPHABETS.each do |c| puts "<td>#{freq[c]}</td>" end puts "</tr>" end puts "</table></body></html>" end # def def main(uri) counter = CharCounter.new open(uri) do |f| f.each_line {|line| counter.push(line) } end print_html(counter, uri) end # def main(TARGET_URI)
52 名前:デフォルトの名無しさん [05/01/29 04:41:19 ] こんなに長いプログラムを本当にありがとうございました。あと一つ質問が あるんですけれども、このプログラムで作ったHTMLの表はどこで見られるの ですか?
53 名前:デフォルトの名無しさん mailto:sage [05/01/29 04:58:48 ] >>52 標準出力に出してる。だからなんかファイルにリダイレクトしてwebブラウザで開け。 例えば、vaka.rbとかいうファイルにスクリプトを書いてコマンドラインから、 ruby vaka.rb > baka.html とかやればbaka.htmlができるからそれをブラウザで開くといい。 あ、あとRubyは1.8系が前提っすから、その辺よろしく。
54 名前:デフォルトの名無しさん [05/01/29 05:13:42 ] 確認できました!夜遅くまでいろいろとすいませんでした。これで何とか単 位ももらえそうです。本当にありがとうございました!!
55 名前:デフォルトの名無しさん mailto:sage [05/01/29 12:48:19 ] お前北大だろ
56 名前:デフォルトの名無しさん mailto:sage [05/01/29 12:49:26 ] これで済むと思うよな。
57 名前:デフォルトの名無しさん [05/01/29 12:55:09 ] >>56 ?? う、うん。思うよ。
58 名前:RUBY [05/01/31 23:19:34 ] こんばんは、RUBYです。 今日、期末課題を提出しました。あれから、図書などを調べてプログラミングしてみました。 プログラムを完成させることはできなかったので、あまり良い成績はとれそうもありませんが、 一応、形にはなっていると思うので、それなりの評価はあるでしょう。 今日まで、掲示板を見ることができませんでしたが、課題の解答を沢山の人が作ってくれて 本当にありがとうございました。 今回の課題を作成しているうちにプログラミングに興味を持ったので、 休み中に何かに挑戦してみたいと思っているのですが、どんな言語から始めたらよいか、 どんな言語が将来役に立つか、プログラミング初心者が初めに読んだ方がよい図書は何か などアドバイスがあったら教えてください。
59 名前:デフォルトの名無しさん mailto:sage [05/01/31 23:22:59 ] 最低
60 名前:デフォルトの名無しさん mailto:sage [05/02/01 04:19:28 ] >>58 Rubyでいいじゃん そんなにRuby使うの嫌か?
61 名前:デフォルトの名無しさん mailto:sage [05/02/01 06:16:31 ] ま、Schemeでもやっとけ。
62 名前:デフォルトの名無しさん mailto:sage [05/02/01 13:43:25 ] お前のやったことはカンニングだぞ 白血病で氏ね
63 名前:デフォルトの名無しさん mailto:sage [05/02/01 15:18:51 ] >>58 > 一応、形にはなっていると思うので、それなりの評価はあるでしょう。 なんで? カンニングは評価くれんでしょ。
64 名前:デフォルトの名無しさん mailto:sage [05/02/02 04:53:06 ] [1] 授業単元: RUBY [2] 問題文はwww.edu.ics.saitama-u.ac.jp/~hira/ex04p/prog04ef.b.html にあります。 [3] 環境 OS:UNIX 言語:RUBY [4] 期限:2005年2月29日14:00まで よろしくお願いします。
65 名前:デフォルトの名無しさん mailto:sage [05/02/02 06:40:10 ] >>64 向こうで解こうとしてた者なんだが、これCじゃなかったの? いや質問者が同一人物とは限らんのだが…
66 名前:デフォルトの名無しさん mailto:sage [05/02/02 07:44:36 ] >>65 Cの課題だと思う コンテスト ttp://www.edu.ics.saitama-u.ac.jp/~hira/ex04p/prog04en.b.html == ■ 乱入者部門 * 履修者以外でも, もし乱入者がいれば (私も含めて) * 「〆切後に改良したから試したい」「C 以外の言語で参加したい」も, こちらで * 言語は, 端末室の UNIX 環境で使えることが条件 * 履修者・乱入者それぞれのチャンピオンで, 最終戦
67 名前:デフォルトの名無しさん mailto:sage [05/02/03 06:37:06 ] >>66 ふむ。あと1ヶ月ほどあるのね。しかも乱入も可か。 乱入してみるかなw
68 名前:RUBY [05/02/04 03:22:20 ] >>62 は?見てねーつってんだろ?あ? パソコンばっかり見てるヒッキー&ブサイク男ちゃん ドライアイで氏ね
69 名前:デフォルトの名無しさん mailto:sage [05/02/04 10:18:49 ] >>1 ?
70 名前:デフォルトの名無しさん mailto:sage [05/02/06 14:55:20 ] >>62 不謹慎すぎて笑えない
71 名前:デフォルトの名無しさん mailto:sage [05/02/07 22:19:33 ] ここは初心者に優しくないインターネットですね >>58 > 休み中に何かに挑戦してみたい 好みにもよるが、BASIC・C言語・Rubyのいずれかから入るのが良いと思われる。 入門図書は、図書館があるなら自分で探せ。図書館がなければ おすすめはC言語なら「C言語プログラミングレッスン」、Rubyなら「たのしいRuby」。 www.hyuki.com/lc/ www.amazon.co.jp/exec/obidos/ASIN/4797314087/249-5597810-1058710 ちなみに、将来役に立つ言語は何か?という問いには「将来次第」としか答えようがない。 とりあえず何にでも手を出しとけ。
72 名前:デフォルトの名無しさん mailto:sage [05/02/08 00:03:45 ] www.amazon.co.jp/exec/obidos/ASIN/4797314087/
73 名前:デフォルトの名無しさん mailto:sage [05/02/08 02:23:02 ] >>71 ユーザビリティ的にはC#(+IDE)かJava(+Eclipse)かPythonかRubyでFAだろう。 入門用と考えると以下は満たして欲しい。 1.参考書 2.ライブラリが豊富 3.IDE(特にコンパイラなら必須) 4.GC Cは悪くないけど、もはやGCが無い言語は入門用としては遺物ではなかろうか。 ゴージャスなIDE付きでタダで使える実装は無いし。 Basicは発展性がなさ過ぎるというかVBA弄ってて泣きそうになったのでやめとけ。 参考書さえあるならAirみたいなオブジェクト指向でない手続き型のスクリプト言語が 習得がもっとも容易であると思われる。しかしそのような言語はあまり聞かない。
74 名前:デフォルトの名無しさん mailto:sage [05/02/08 02:32:45 ] >2.ライブラリが豊富 Rubyは失格だな。なにやるにしてもネットのどこかから拾ってくればできなくもないって奴ばっかだし。
75 名前:デフォルトの名無しさん mailto:sage [05/02/08 02:33:09 ] 入門用ならIDE無い方が良いと思うよ
76 名前:デフォルトの名無しさん mailto:sage [05/02/08 02:35:45 ] >>73 HSP
77 名前:デフォルトの名無しさん mailto:sage [05/02/09 01:37:25 ] >>76 HSPもいいのかも知れないなあ、と一瞬思ったけどgotoを使うのが基本の言語はダメだろ。 関数定義はないし構造体も無いのは無理。
78 名前:デフォルトの名無しさん mailto:sage [05/02/09 12:36:48 ] 関数定義はあるんじゃなかったっけ
79 名前:デフォルトの名無しさん mailto:sage [05/02/09 13:01:07 ] 目的しかないやっつけHSPと目的のないオナニー言語Ruby
80 名前:デフォルトの名無しさん mailto:sage [05/02/09 13:15:10 ] Rubyに目的が無いんだったらJavaにもCにも無いと思われ
81 名前:デフォルトの名無しさん mailto:sage [05/02/09 13:51:44 ] >>79 目的がないのではなく、多目的なのでは?
82 名前:デフォルトの名無しさん mailto:age [05/02/09 18:14:33 ] もなさんRubyをどのような目的で使ってますかー?
83 名前:デフォルトの名無しさん mailto:sage [05/02/09 20:05:17 ] CGIスクリプトとテキスト処理 あとはApolloを使ってGUIアプリケーションとか
84 名前:デフォルトの名無しさん [05/02/09 21:37:05 ] 無知蒙昧な2ちゃんねらにRubyのよさを知らしめるために日夜勉強しています。
85 名前:デフォルトの名無しさん mailto:sage [05/02/09 22:24:35 ] >>84 Rubyを使うことが目的なのか?あふぉか?
86 名前:デフォルトの名無しさん [05/02/22 21:23:13 ] [1]授業単元:Ruby [2]問題文:オセロを作れ [3]環境 [3.1]OS: [3.2]コンパイラ: [3.3]言語:Ruby [4]期限:23日昼 [5]その他の制限:CPU対戦は不要
87 名前:デフォルトの名無しさん [05/03/02 12:45:21 ] age
88 名前:デフォルトの名無しさん mailto:sage [2005/06/20(月) 02:25:44 ] [1] byte code化 [2] M17N [3] native thread対応
89 名前:デフォルトの名無しさん [2005/07/17(日) 16:31:23 ] 問題文自動生成システムを作りたいんだけど。。 熟語辞書の中から熟語をランダムに選択して、その語彙を含む問題文をコーパスから拾ってきて生成するシステム。 ちょっと手がつかないです(*_*)
90 名前:デフォルトの名無しさん mailto:sage [2005/07/17(日) 16:48:40 ] 大学の講座にRubyがあるのですか。
91 名前:デフォルトの名無しさん mailto:sage [2005/07/17(日) 22:33:49 ] 幸せな大学だなぁ。うちはPrologだったぞ。
92 名前:デフォルトの名無しさん mailto:sage [2005/07/21(木) 12:12:27 ] Rubyももう十年ですから、大学講座に取り上げられて不思議は ありませんね。
93 名前:デフォルトの名無しさん mailto:sage [2005/08/14(日) 08:22:48 ] (1) test/ruby/test_lambda.rbのsyntax errorを直せ。 (20点)
94 名前:デフォルトの名無しさん mailto:sage [2005/08/17(水) 08:01:08 ] まだなんかヘンな気がするな…
95 名前:デフォルトの名無しさん [2005/09/18(日) 19:13:13 ] age
96 名前:デフォルトの名無しさん [2005/10/12(水) 00:31:12 ] 学籍番号 名前 点数 の順に書かれているファイルを読み込んで、平均点と学籍番号順に並べ替えて表示するプログラムを作れといわれました。
97 名前:デフォルトの名無しさん mailto:sage [2005/10/13(木) 01:07:08 ] data = File.read(ファイル名).split(/\n/) puts data.inject(0){|a,b| a+b.split[2].to_i} puts data.sort_by{|a|a.split[0].to_i}
98 名前:デフォルトの名無しさん [2005/10/19(水) 09:08:52 ] これだと平均じゃなくて合計じゃないですか?
99 名前:デフォルトの名無しさん mailto:sage [2005/10/20(木) 01:00:36 ] そうか。なら2行目は、 puts data.inject(0){|a,b| a+b.split[2].to_i} / data.length.to_f といったところか。
100 名前:ハーピィ mailto:sage [2005/10/20(木) 01:06:07 ] E・∇・ヨノシ <100ゲット♫
101 名前:デフォルトの名無しさん [2005/10/22(土) 21:44:51 ] クラスNumericに引数なしのメソッドinteger?を再定義して 例えばp 5.0.integer?ならtrue、p 5.01.integer? はfalse と整数を判別して出力するのを作れといわれました。 ほんの数行で出来るらしいのですがよろしくお願いします。
102 名前:デフォルトの名無しさん mailto:sage [2005/10/23(日) 20:07:47 ] Integer と Float で定義すりゃいいんじゃない?
103 名前:デフォルトの名無しさん mailto:sage [2005/10/23(日) 20:47:56 ] こんな感じ?"ほんの数行"かどうかは分かりませんが。 "判別する"というのを条件文で実装する必要はないんですよね? > class Integer > def integer? > return true > end > end > > class Float > def integer? > return false > end > end
104 名前:デフォルトの名無しさん mailto:sage [2005/10/28(金) 11:17:45 ] >102-103 それって 5.0.integer? が false になるし。 class Numeric; def my_int?; self.ceil == self; end; end てところだろう。本質的には一行。 ちなみに Ruby にもとからある integer? は、 Numeric が常に偽を返し、 Integer でオーバーロードして常に真を返すようにしている。つまり103と同 じようなものになっている。
105 名前:デフォルトの名無しさん mailto:sage [2005/11/12(土) 20:10:44 ] 誰か簡単な宿題を出してくれよ
106 名前:デフォルトの名無しさん [2005/11/21(月) 21:15:42 ] こんばんは、今日Rubyを学んでいる授業で課題を出されたのですが 完成しなくて困っています。 自分はプログラムではRubyが始めて学ぶ言語であり、 プログラミングに関しては全くの初心者です。 ↓の詰まっているところに答えて頂けるとありがたいです。 魔方陣をHTMLの表形式で出力 各行、各列の和もその表の中に納める←ここが出来ません… 原文が長いので先に結果 21 39 8 33 2 27 45 175 30 6 24 49 18 36 12 175 46 15 40 9 34 3 28 175 13 31 7 25 43 19 37 175 22 47 16 41 10 35 4 175 38 14 32 1 26 44 20 175 5 23 48 17 42 11 29 175 175 175 175 175 175 175 175 Completed(0) そして… f.print "<table border=1>\n"とf.print "</table>"の間で四苦八苦です。 175の和の列を表に納めたいのですが、やり方が分かりません・・・。 教えていただければ幸いですm(_ _)m
107 名前:原文 [2005/11/21(月) 21:16:55 ] n=7 a=Array.new for i in 1..n a[i]=Array.new end for m in 0..n-1 for k in 0..n-1 i=(k+m)*2+(n+1)/2+2 j=k-m+(3*n+1)/2 a[(i-1)%n+1][(j-1)%n+1]=n*m+k+1 end end f=open('g:\kadai.html',"w")
108 名前:原文続き [2005/11/21(月) 21:17:48 ] f.print "<table border=1>\n" for i in 1..n f.print "<tr>\n" x=0 for j in 1..n printf "%4d",a[i][j] f.print "<td>",a[i][j],"</td>\n" x+=a[i][j] end printf "%4d\n",x end for j in 1..n x=0 for i in 1..n x+=a[i][j] end printf "%4d",x f.print "</tr>\n" end print "\n" f.print "</table>" f.close
109 名前:デフォルトの名無しさん mailto:sage [2005/11/21(月) 23:24:14 ] # 足し算の結果もresultに入ってるなら以下のようにやるのが楽かなー puts '<table>' result.each{|row| puts '<tr>' row.each{|cell| puts "<td>#{cell}</td>" } puts '</tr>' } puts '</table>'
110 名前:デフォルトの名無しさん mailto:sage [2005/11/21(月) 23:34:17 ] # >>107-108 のを活かすならこんな感じ。 # 動作確認はしてないので悪しからず御了承を。 File.open("result.html"){|f| f.puts '<table border="1">' a.each{|row| f.puts '<tr>' sum = 0 row.each{|cell| sum += cell f.puts "<td>#{cell}</td>" } f.puts "<td>#{sum}</td>" f.puts "</tr>" } f.puts "</table>" } # 変数名はとりあえず意味のわかるように単語で付けた方がいいよ。 # アルファベット一文字の変数名はかなり読みにくいので。
111 名前:106 [2005/11/22(火) 00:42:43 ] >>109-110 ご親切にありがとうございましたm(_ _)m とっても参考になりました。 最初、手続きオブジェクトというものを知らなかったために 書いてあることが分かりませんでしたが、授業の教科書の先読んで 理解出来たように思います。 変数名を単語でというのは、 お二方のrowやcellと書いてある部分の事ですよね? 伝える時はそう書くのですね。 勉強になりました(^^;A
112 名前:デフォルトの名無しさん [2005/11/28(月) 22:02:26 ] >>106 と同じ…(略) 自分もrubyが良く分かっていなくて参考書を買って1からやり直している途中です。 ですが課題の締め切りに間に合わなそうなのでどなたかお願いしますm(__)m 下のプログラムでa-zすべてのアルファベットの頻度を調べなければならないのですが、 for c in "a" .. "z" do end を最初、最後に入れ、bをcに変えても正しくされないのですがどこがおかしいのでしょうか。 t = File.read( "test.txt" ) u = t.split(//) # tを文字に分解 w = t.split # tを単語に分解 # 文全体にに文字B又はbが含まれる頻度 countc = 0 for x in u do countc += 1 if x =~ /b/i end # 単語の先頭に文字B又はbが含まれる頻度 countw = 0 for x in w do countw += 1 if x[0,1] =~ /b/i end
113 名前:デフォルトの名無しさん mailto:sage [2005/11/28(月) 22:45:12 ] 何はともあれおまえの言っていることがそもそもわけわからん。なにをどう試したんだ。
114 名前:デフォルトの名無しさん mailto:sage [2005/11/28(月) 22:49:27 ] アフォには聞いてませんから
115 名前:デフォルトの名無しさん [2005/11/28(月) 23:14:55 ] >>112 です。 t = File.read( "test.txt" ) u = t.split(//) # tを文字に分解 w = t.split # tを単語に分解 for c in "a" .."z" do # 文全体にに文字B又はbが含まれる頻度 countc = 0 for x in u do countc += 1 if x =~ /b/i end # 単語の先頭に文字B又はbが含まれる頻度 countw = 0 for x in w do countw += 1 if x[0,1] =~ /b/i end # 出力する printf "B又はbが本文に含まれる頻度は%4d回、単語の先頭に含まれる頻度は、%4d回でした。\n" ,c.upcase, countc , countw end …としたんですがエラーが出てしまいます。。
116 名前:113 mailto:sage [2005/11/28(月) 23:25:24 ] んじゃ説明すると、 全てのアルファベットの頻度を調べなければならないのだから、結果を保持す るのに52個の配列を用意する必要がある。ふつうは26要素の配列かハッシュを 2つ使うだろう(112の例で、文字用と単語用の2つの変数を用いたように)。 マッチするのに必要な正規表現は、112ではベタ書きしているが、これもa-zの それぞれで書換えなければならないだろう。 当然、a-zで「カウントアップする変数」と「マッチさせるための正規表現」 をそれぞれ切り替えるように適切に繰り返しをしなければならないだろう。 このどれもやっていないようだから「何をやってるかわからん」と思ったんだが、まあいいや。
117 名前:113 mailto:sage [2005/11/28(月) 23:31:51 ] おっと入れ違った。 115はそもそも、 for c in "a" .. "z" do に対応する end がないので実行で きない。 115の方針を貫く場合、結果を保持する変数は2つで良いままの可能性が高い。 しかし相変わらず b の数しか数えてないのだから、このままでは結果が正し く表示されない。正規表現をそれぞれで(cに依存するかたちで)書き換える必 要がある。 それから結果の出力では「Bまたはb」がべた書きだから printf がヘン。%表 記の箇所と引数の数が一致してないよ。 ……というところかな。
118 名前:デフォルトの名無しさん mailto:sage [2005/11/29(火) 09:29:36 ] 答えてやりたいが今から大学だ
119 名前:504 [2005/11/29(火) 21:37:25 ] printfが良く分かっていないのですが、 t = File.read( "test.txt" ) u = t.split(//) # tを文字に分解 w = t.split # tを単語に分解 for c in "a" .."z" do # 文全体 countc = 0 for x in u do countc += 1 if x =~ /c/i end # 単語の先頭 countw = 0 for x in w do countw += 1 if x[0,1] =~ /c/i end # 出力する printf "%4d又は%4dが本文に含まれる頻度は%4d回、単語の先頭に含まれる頻度は、%4d回でした。\n" , c , c.upcase, countc , countw end でもおかしいですよね(^_^;)
120 名前:デフォルトの名無しさん mailto:sage [2005/11/29(火) 22:45:43 ] cとかc.upcaseは文字列なんだから%sを使え まぁしかし Ruby では埋め込み式を使う方が一般的な気はするけど
121 名前:504 [2005/11/29(火) 22:59:05 ] エラー出ませんでした! しかし全部0回でした(笑) 勉強しなおしてきますm(__)m