練習

条件判断

入力された年の単位を西暦から平成に変換するプログラムを書く。 ヒント:入力された文字列を数値に変換し、1988を弾いた値を表示すればおk year=gets.chomp.to_i heisei=year-1988 puts heisei 正しいぽい Last login: Fri Jan 21 23:30:47 on console moom…

うにゃ

改行の巻その3

Just do it.ですね num0= ARGV[0].to_i num1= ARGV[1].to_i print num0, "+", num1, "=", num0+num1,"\n" print num0, "-", num1, "=", num0-num1,"\n" print num0, "*", num1, "=", num0*num1,"\n" print num0, "/", num1, "=", num0/num1,"\n"I did it! mo…

改行の巻その2

リトライ。 「1」のヒント:http://d.hatena.ne.jp/tomomii+programming/20110115/p2 の1つ目の実験 「2」のヒント:「syntax error, unexpected ○○」と言われているときは、^ で指し示されて いる位置より前(左)で何か書き忘れやゴミがないか確かめてみま…

改行の巻その2'

print と putsの違い理解しました!あーケアレスミス恥ずかしい情けない。 本当に何度もありがとうございます!! 実行 print "Hello World!", ARGV[0], "!\n" やっと!Done! moomin:ProgrammingRuby tomomi$ ruby argv.rb Ruby Hello World!Ruby!

パターンマッチ-2

名前のスペルに ow が入る人を表示しましょい names=['Geoffrey Downes', 'John Wetton', 'Steve How','Carl Palmer'] names.each{|name| if /ow/=~name puts name end } 4名の名前それぞれを見にいく > names.each{|name| (条件判断)名前にowがあるか(マ…

-6

http://d.hatena.ne.jp/tomomii+programming/20110104/p1 ありがとうございます。 おっ、かなり正しい感じになってきましたね! あとは、例えば I=num%10/1 だと num=17 のとき I==2 ではなく I==7 となってしまう点を直すのと、文字をつなげるところですね。…

-5

初期の頃のローマ数字には減算則はありませんでした。つまり「IX」で9を表したりせず素直に大きい数の次に小さい数を順に記述して「VIIII」というように書いていました。さて、1から3000の間の整数を入力してそれに相当する古いローマ数字の文字列を返すメソ…

string/配列の問題 つづき4

http://d.hatena.ne.jp/tomomii+programming/20101214/p2 1と2は同義。すごい。 1 staffs =['nanto_vi', 'motemen', 'suzak', 'r_kurain', 'nyanto_vi'] num=0 staffs.each do |e| if e[0,1]=='n' puts e num=num+1 end end puts num moomin:ProgrammingRuby…

-4

うーんわからない。 ある任意の数が入力されたとき、 I=1 V=5 X=10 L=50 C=100 D=500 M=1000 Mから順に割ってゆき、割り切れるようにすればよいことはわかる。たとえばnumberが900の場合 DCCCC desune. お、たとえばnum=120とかnum=84 … こうかな。 def roma…

ローマ数字問題-3

http://d.hatena.ne.jp/tomomii+programming/20101221/p1 def roman_num num=0 num=gets.chomp.to_i M=num/1000 D=num%1000/500 C=num%1000%500%/100 L=num%1000%500%100%/50 X=num%1000%500%100%50%/10 V=num%1000%500%100%50%10%/5 I=num%1000%500%100%50%…

ローマ数字問題-2

http://d.hatena.ne.jp/tomomii+programming/20101219/p1 ex. I=1 V=5 X=10 L=50 C=100 D=500 M=1000 放課後充実諸々サボりがち。寝る寸前に考えたの書き留めておく。 メモ def roman_num (roman_num のメソッドを作る) num= 0 (numberは1-3000の数字。だけ…

ローマ数字問題

「初めてのプログラミング」p.87 練習問題より 初期の頃のローマ数字には減算則はありませんでした。つまり「IX」で9を表したりせず素直に大きい数の次に小さい数を順に記述して「VIIII」というように書いていました。さて、1から3000の間の整数を入力してそ…

うるう年を数える問題ができないので、さらにシンプルなコードでリトライします。 こちらを改造して「n」で始まる名前が何人いるかを出したい。 staffs = ['nanto_vi','motemen','suzak','r_kurain','nyanto_vi'] staffs.each do |e| if e[0,1] == 'n' puts …

うるう年-2

http://d.hatena.ne.jp/tomomii+programming/20101209/p2 うるう年の問題を改造。指定したはじめと終わりの年の間にいくつうるう年があるかを調べてみましょ。 実行 要素を抽出 >select 要素数を取得 >size/length 組み立てか順番がダメみたいで苦戦中 その1…

メソッド引数2

def smile number_of_smiles puts 'ニヤリ' * number_of_smiles end smile *3 puts 'ニコリ' smile *3 の書き方は、tomomii さんが意図しないメソッドの呼び出しになってしまってます。 この方法で書くと、後に意図しないエラーで悩まされる事になると思いま…

必殺寝落ちした

配列メソッド>練習4

つづき 好きな数だけ単語の入力をしてもらい(1行に1単語と入力が続き 最後は空行でEnterのみとする)それをアルファベット順に並び替えて出力するようなプログラムを書いてみましょう。 空行でEnterを押した時つねにプログラムが終了するかなどのテストもおこ…

配列メソッド>練習3

引き続きトライ。 好きな数だけ単語の入力をしてもらい(1行に1単語と入力が続き 最後は空行でEnterのみとする)それをアルファベット順に並び替えて出力するようなプログラムを書いてみましょう。 空行でEnterを押した時つねにプログラムが終了するかなどのテ…

配列メソッド>練習2

挫折うぅぅ。5時間くらいかけて考えた気がするが解けませんでした。むつかしい。 好きな数だけ単語の入力をしてもらい(1行に1単語と入力が続き 最後は空行でEnterのみとする)それをアルファベット順に並び替えて出力するようなプログラムを書いてみましょう…

配列メソッド>練習

1. a =[1, 2] b=[8, 9] puts (a+b).join(',') puts a+b puts a puts b なるほどねー実行してみて分かることが多いよねー。 moomin:programmingRuby tomomi$ ruby array.rb 1,2,8,9 1 2 8 9 1 2 8 9 2 好きな数だけ単語の入力をしてもらい(1行に1単語と入力が…

流れ制御 >練習問題まとめ

苦労したこの問題。 おばあちゃんに何を言っても大文字でタイプしない限り は!??もっと大きな声で話しておくれ、お嬢さん と返事をします。彼女があなたの声を聞いて いやー1938年以来ないねー と返事をします。できれば1930-1950のランダムな数字で何度か違…

流れ制御 >練習問題5

朝。 3. あなたの声がすべて大文字でタイプされていないときは「は!??もっと大きな声で話しておくれ、お嬢さん」と、すべて大文字でタイプされているときは「いやー1938年以来ないねー」と返事をするよう書き換えてみましょう。4. 「いやー1938年以来ないね…

流れ制御 >練習問題4

ふたたび。 1. おばあちゃんが(とりあえず一回だけ)あなたの声を聞いて返事をするプログラムを書いてみましょう(返事は今は自由です)。 2. そのプログラムを、あなたがBYEと言うまでおばあちゃんとの会話が終了しないようにしてみましょう。 3. あなたの…

流れ制御 >練習問題3

http://d.hatena.ne.jp/tomomii+programming/20100622/p2 この問題は複数のテーマを同時に扱っていますね。こういうときは例えば以下のように要素を分解して、少しずつ攻めていくと良いと思います。 ・おばあちゃんはあなたの声を聞いて返事をする ・あなた…

流れ制御 >練習問題

行き詰まったー。うーーーん p.65練習問題。 おばあちゃんに何を言っても大文字でタイプしない限り は!??もっと大きな声で話しておくれ、お嬢さん と返事をします。彼女があなたの声を聞いて いやー1938年以来ないねー と返事をします。できれば1930-1950の…

論理演算子2

and : && (半角&がふたつ) hoge && gonyo (hogeでもありgonyoでもある。両方true) puts '水戸黄門の付き人の名は?' person = gets.chomp if person == '助さん' && person == '格さん' puts 'ですよね' else puts 'ちがうよ!' end えええ合ってると思った…

論理演算子

例として以下などがあります。 ターミナル上で一行分を削除する方法 controlキー+U or : || (半角縦棒ふたつ) hoge || gonyo (hoge または(それとも)gonyoである。hogeかgonyoどちらかひとつがtrue) puts 'こんにちは tomomii, あなた今日なに食べたの?' …

ループ2

1から10を出力させるプログラムを書いてみましょう fig=1 until fig>10 puts fig + 1 end puts 'さようなら。また来てね' 上のコードを実行させたら "2" が出力エンドレスになってしまい大変困った。下述のキーを押せばストップします。覚えておくといいでし…

分岐2

分岐のふるまいに慣れるため 分岐1でおこなった if, else, endの使ってもう少し複雑な会話練習をしてみましょう。 学校の先生がある生徒に彼女の妹の名前を聞きます。そのやりとりを if, else, endを使って会話の流れをプログラミングしてみましょう いちか…