5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

RUBYの宿題教えてください。

1 :RUBY:05/01/24 22:17:37
私は、ある大学の1年生です。今、情報処理の講義でRUBYを習っています。
その講義で、期末テストとして課題が出たのですが、プログラミング初心者の私には
全然歯が立ちません。締め切りは1/31です。プロも皆さんには簡単な
問題かもしれませんがどうか教えてください。
課題は以下の通りです。


2 :RUBY:05/01/24 22:18:29
年月を与えたとき、下のようなカレンダーを出力するプログラムを作る。
西暦1年1月1日は月曜日である。4年に一度閏年がある。しかし、100の倍数の年は閏年ではない。しかし、400の倍数の年は閏年である。
平年の1月1日が火曜日であったとすると次年の1月1日は水曜日である。
従って、日、月、・・・、土を、0、1、・・・、6と数字で表すと、西暦n年の1月1日の曜日kは、
n+(n-1)/4-(n-1)/100+(n-1)/400
を7で割った余りである。k=n % 7又2月の日数mは、
m=28+n/4*4/n-n/100*100/n+n/400*400/n
と表せる。ここで割り算は全て整数同士の割り算(切り捨て)である。
1.2月以外の日数を与える。
2.作成したいカレンダーの年(n)と月(m)を与える。
3.2月の日数を計算する。
28+n/4*4/n-n/100*100/n+n/400*400/n
4.1月1日の曜日を表す数字(0、1、・・・、6)を計算する。
  (n+(n-1)/4-(n-1)/100+(n-1)/400) % 7
5.今対象としている月の第1日目の曜日を、上で求めた1月1日の曜日を表す数値に、
  今対象とする月の前の月までの日数を加算し、7で割った余りとして求める。
6.下のようなカレンダーをHTMLの表で出力する。
1989年 4月
日 月 火 水 木 金 土
       1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30


3 :RUBY:05/01/24 22:19:48
<私のやってみたこと>
まず、それぞれの月を番号とし、日数を要素として配列を考えてみましたが
全然解けません。講師は、「配列なんかわざわざ使わなくてもいい」
と言っていたので、解く糸口も失ってしまいました。

どうか、解答のプログラムを教えてください。


4 :デフォルトの名無しさん:05/01/24 22:44:38
>>1
> その講義で、期末テストとして課題が出たのですが、プログラミング初心者の私には
> 全然歯が立ちません。締め切りは1/31です。プロも皆さんには簡単な

うそつけ。歯が立たないのは、おまえの頭が弱いからだろうが。

5 :デフォルトの名無しさん:05/01/24 22:45:33
Rubyのマニュアルはあるか?
ないなら探せ。

講師は>2の文章が理解できるか君を試しているんだ。10時間考えても分からないなら「グレゴリオ歴」を調べよ。

6 :デフォルトの名無しさん:05/01/24 22:49:19
>5
わかりました。自分でやってみます。ありがとうございました

7 :RUBY:05/01/25 00:16:51
インターネットの掲示板に初めて書き込んだのですが、掲示板って、やっぱりこわいところですね。
罵声や無視がたくさんあるところだと思っていました。さっそく>>4のデフォルトの名無しさんに怒られてしまいました。
でも、名無しさんが言うように自分の力でやった方がためになりますよね。
図書やマニュアルを使って自分で考えてみたいと思います。>>5の助言もありがとうございました。
プログラミング分野の人たちは優しいですね。


8 :デフォルトの名無しさん:05/01/25 00:19:46
Rubyが宿題になる学校も出てきたのか

9 :デフォルトの名無しさん:05/01/25 00:21:43
>>8
> Rubyが宿題になる学校も出てきたのか

宿題には、アカデミズムの世界以外ではまったく見ない言語を使ったりしますが。

10 :デフォルトの名無しさん:05/01/25 00:25:12
>>1
と言うか、期末テストなら自分で考えた方が後々にも役立って良いよ、1/31までは十分長いからね。

11 :デフォルトの名無しさん:05/01/25 00:25:45
Rubyはアカデミズムの世界以外ではまったく見ない言語な訳でつね。

12 :デフォルトの名無しさん:05/01/25 00:29:44
>>8
HSPを教える学校があるこんな世の中じゃ

13 :デフォルトの名無しさん:05/01/25 00:35:12
>>11
> Rubyはアカデミズムの世界以外ではまったく見ない言語な訳でつね。

違うだろ。

14 :デフォルトの名無しさん:05/01/25 00:36:31
>>13
こんなに露骨なネタにマジレスって(ry

15 :デフォルトの名無しさん:05/01/25 00:39:54
>>12
> HSPを教える学校があるこんな世の中じゃ

教えるだけまし。

わたしが学生の時には、
「次回からC言語を使うので、来週までにマスターしておいてください」
だった。

16 :デフォルトの名無しさん:05/01/25 00:41:17
>>15
何と言うか、教える気NULLだな。

17 :デフォルトの名無しさん:05/01/25 07:49:10
>>8
うちの大学では1〜2年前期はCで2年後期にRubyだな


18 :デフォルトの名無しさん:05/01/25 08:39:00
日数配列を用意しないで書く方法がわかんないあ・・・

19 :デフォルトの名無しさん:05/01/25 10:16:13
ifやcase使えって事かもw

20 :デフォルトの名無しさん:05/01/25 10:29:18
配列なんてなにに使うんだ?

21 :デフォルトの名無しさん:05/01/25 10:38:35
>18
だから>2を読めって。分からないなら質問しろ。丸投げはダメだ。こんなアホな宿題を他人にやらせてたら、ダメ人間になっちゃうゾ!

22 :デフォルトの名無しさん:05/01/25 11:07:15
>>21
と言うか、>>2を与えられてもまだダメだというのは、よほど無能だと
言うことだから、こいつにはプログラミングはさっさとあきらめて、
コンピュータ関係の業界に来ないで欲しいと言いたいな。

23 :デフォルトの名無しさん:05/01/25 11:09:25
p 18.id != 1.id#=>true
です;

とりあえず配列使って書けたけど
>19さんの言う通りifとかcaseを使うのかな・・・(;´Д`)ウーン

24 :18: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 :デフォルトの名無しさん:05/01/25 20:34:16
配列使うな。
Rubyマニュアルで文法読め!
>19の助言を読め!
大馬鹿者!

28 :デフォルトの名無しさん: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 :デフォルトの名無しさん:05/01/25 22:15:43
>>1
とにかくがんばれ

33 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん:05/01/27 08:54:33
ダメ人間決定

41 :デフォルトの名無しさん: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 :デフォルトの名無しさん:05/01/29 02:55:49
「アルファベッド」

47 :デフォルトの名無しさん:05/01/29 03:07:57
>>43
「アルファベット」でした。すいません。

48 :デフォルトの名無しさん:05/01/29 03:30:15
>>43
タグはどうすんの? web上の英文て対象はHTMLを含むんだよね。

<p>baka</p>

なんてHTMLが送られてきたら、pは2回、bakaは1回てカウントするの?
それともpは無視?

49 :デフォルトの名無しさん:05/01/29 03:32:16
あ、ごめん、文字ね。

50 :デフォルトの名無しさん:05/01/29 04:16:34
>>43
作ってみたよー
require 'open-uri'

TARGET_URI = 'http://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 :デフォルトの名無しさん: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 :デフォルトの名無しさん: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 :デフォルトの名無しさん:05/01/29 12:48:19
お前北大だろ

56 :デフォルトの名無しさん:05/01/29 12:49:26
これで済むと思うよな。

57 :デフォルトの名無しさん:05/01/29 12:55:09
>>56
??
う、うん。思うよ。


58 :RUBY:05/01/31 23:19:34
こんばんは、RUBYです。
今日、期末課題を提出しました。あれから、図書などを調べてプログラミングしてみました。
プログラムを完成させることはできなかったので、あまり良い成績はとれそうもありませんが、
一応、形にはなっていると思うので、それなりの評価はあるでしょう。
今日まで、掲示板を見ることができませんでしたが、課題の解答を沢山の人が作ってくれて
本当にありがとうございました。
今回の課題を作成しているうちにプログラミングに興味を持ったので、
休み中に何かに挑戦してみたいと思っているのですが、どんな言語から始めたらよいか、
どんな言語が将来役に立つか、プログラミング初心者が初めに読んだ方がよい図書は何か
などアドバイスがあったら教えてください。


59 :デフォルトの名無しさん:05/01/31 23:22:59
最低

60 :デフォルトの名無しさん:05/02/01 04:19:28
>>58
Rubyでいいじゃん
そんなにRuby使うの嫌か?

61 :デフォルトの名無しさん:05/02/01 06:16:31
ま、Schemeでもやっとけ。

62 :デフォルトの名無しさん:05/02/01 13:43:25
お前のやったことはカンニングだぞ
白血病で氏ね

63 :デフォルトの名無しさん:05/02/01 15:18:51
>>58
> 一応、形にはなっていると思うので、それなりの評価はあるでしょう。

なんで? カンニングは評価くれんでしょ。

64 :デフォルトの名無しさん:05/02/02 04:53:06
[1] 授業単元: RUBY
[2] 問題文はhttp://www.edu.ics.saitama-u.ac.jp/~hira/ex04p/prog04ef.b.htmlにあります。
[3] 環境 OS:UNIX 言語:RUBY
[4] 期限:2005年2月29日14:00まで

よろしくお願いします。


65 :デフォルトの名無しさん:05/02/02 06:40:10
>>64
向こうで解こうとしてた者なんだが、これCじゃなかったの?
いや質問者が同一人物とは限らんのだが…

66 :デフォルトの名無しさん:05/02/02 07:44:36
>>65
Cの課題だと思う

コンテスト
ttp://www.edu.ics.saitama-u.ac.jp/~hira/ex04p/prog04en.b.html
== ■ 乱入者部門

* 履修者以外でも, もし乱入者がいれば (私も含めて)
* 「〆切後に改良したから試したい」「C 以外の言語で参加したい」も, こちらで
* 言語は, 端末室の UNIX 環境で使えることが条件
* 履修者・乱入者それぞれのチャンピオンで, 最終戦


67 :デフォルトの名無しさん:05/02/03 06:37:06
>>66
ふむ。あと1ヶ月ほどあるのね。しかも乱入も可か。
乱入してみるかなw

68 :RUBY:05/02/04 03:22:20
>>62

は?見てねーつってんだろ?あ?
パソコンばっかり見てるヒッキー&ブサイク男ちゃん
ドライアイで氏ね


69 :デフォルトの名無しさん:05/02/04 10:18:49
>>1 ?

70 :デフォルトの名無しさん:05/02/06 14:55:20
>>62
不謹慎すぎて笑えない

71 :デフォルトの名無しさん:05/02/07 22:19:33
ここは初心者に優しくないインターネットですね

>>58
> 休み中に何かに挑戦してみたい
好みにもよるが、BASIC・C言語・Rubyのいずれかから入るのが良いと思われる。
入門図書は、図書館があるなら自分で探せ。図書館がなければ
おすすめはC言語なら「C言語プログラミングレッスン」、Rubyなら「たのしいRuby」。
http://www.hyuki.com/lc/
http://www.amazon.co.jp/exec/obidos/ASIN/4797314087/249-5597810-1058710

ちなみに、将来役に立つ言語は何か?という問いには「将来次第」としか答えようがない。
とりあえず何にでも手を出しとけ。

72 :デフォルトの名無しさん:05/02/08 00:03:45
http://www.amazon.co.jp/exec/obidos/ASIN/4797314087/

73 :デフォルトの名無しさん: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 :デフォルトの名無しさん:05/02/08 02:32:45
>2.ライブラリが豊富
Rubyは失格だな。なにやるにしてもネットのどこかから拾ってくればできなくもないって奴ばっかだし。

75 :デフォルトの名無しさん:05/02/08 02:33:09
入門用ならIDE無い方が良いと思うよ

76 :デフォルトの名無しさん:05/02/08 02:35:45
>>73
HSP

77 :デフォルトの名無しさん:05/02/09 01:37:25
>>76
HSPもいいのかも知れないなあ、と一瞬思ったけどgotoを使うのが基本の言語はダメだろ。
関数定義はないし構造体も無いのは無理。


78 :デフォルトの名無しさん:05/02/09 12:36:48
関数定義はあるんじゃなかったっけ

79 :デフォルトの名無しさん:05/02/09 13:01:07
目的しかないやっつけHSPと目的のないオナニー言語Ruby

80 :デフォルトの名無しさん:05/02/09 13:15:10
Rubyに目的が無いんだったらJavaにもCにも無いと思われ

81 :デフォルトの名無しさん:05/02/09 13:51:44
>>79
目的がないのではなく、多目的なのでは?

82 :デフォルトの名無しさん:05/02/09 18:14:33
もなさんRubyをどのような目的で使ってますかー?

83 :デフォルトの名無しさん:05/02/09 20:05:17
CGIスクリプトとテキスト処理
あとはApolloを使ってGUIアプリケーションとか

84 :デフォルトの名無しさん:05/02/09 21:37:05
無知蒙昧な2ちゃんねらにRubyのよさを知らしめるために日夜勉強しています。

85 :デフォルトの名無しさん: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

22 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)