Hitsuji_monのブログ~ 村上春樹のあれ ~

文学好きな組み込み系エンジニア

【#100DaysOfCode】 Day 2~4 「作りながら学ぶRuby入門」 C言語とRubyの対応

[#100DaysOfCode] の進捗。Twitterで呟いてたけど、ブログにもアウトプットしておく

Day 2

「作りながら学ぶRuby入門」第2部 入門編


基本的文法の学習: Stringクラス、Numericクラス、Dateクラス、Arrayクラス

#「作りながら学ぶRuby入門」 Arrayクラス
# 配列の要素を繰り返し処理 配列の配列
fruits_prices = [ ["apple",200], ["orange",100], ["melon",600] ]

fruits_prices.each { |fp|
    puts "名前: #{fp[0]}、 値段:#{fp[1]}"
}

sum = 0
fruits_prices.each {|fp| sum += fp[1]}
puts "1個ずつ買うと全部で #{sum} 円です。"


book_list = [ ["村上春樹",360], ["京極夏彦",600], ["ジョージ・オーウェル",1000] ]

book_list.each { |bl|
    puts "著者: #{bl[0]}、 本の値段:#{bl[1]}"
}

sum = 0
book_list.each {|bl| sum += bl[1]}
puts "1冊ずつ買うと全部で #{sum} 円です。"


・ソケットプログラミング TCP/UDP


こちらのサイトのコードを書いて実験


www.geekpage.jp
www.geekpage.jp


Day 3

「作りながら学ぶRuby入門」第2部 入門編

・蔵書データを表示 :Array

C言語の時と比べて、2次元配列の作成および[表示]がクッソ楽!!

Day 4

「作りながら学ぶRuby入門」第3部 実践編

  • 第7章: クラスの作り方。クラス--> インスタンス --> オブジェクトの関係
# 「作りながら学ぶRuby入門」 第7章
#アクセサメソッドを使って、属性のアクセスを簡単にする

# Studentクラスを作る
class Student
    # Studentクラスのインスタンスを初期化する
    def initialize( name, age )
        @name = name
        @age = age
    end

    # name属性, age属性のアクセサ
    attr_accessor :name, :age

    # Studentクラスのインスタンスを文字列で返す
    def to_s
        "#@name, #@age"
    end
end

#Studentクラスのインスタンスを作成する
shin = Student.new('久保秋 真', 45)

#ゲッターを使ってshinの名前と年齢を表示する
puts "氏名: #{shin.name}, 年齢: #{shin.age}"

#セッターを使ってshinの名前と年齢を変更する
shin.name = 'Singh, Tiger Jeet'
shin.age = 445

# ゲッターを使ってshinの名前と年齢を表示する
puts shin.name
puts shin.age

puts "氏名: #{shin.name}, 年齢: #{shin.age}"

C言語Rubyの似通った部分を発見!!

C言語 Ruby
構造体の型宣言 クラス
メモリの確保 インスタンスの初期化 -- インスタンスの作成
構造体のメンバへのアクセス アクセサメソッド
構造体の中身のデータを記述 オブジェクトの作成

こんなイメージ。。
まあ初心者の考えたことなんで、詳しい方もし見てたら、修正など指摘どんどんください〜〜。
仕事でC言語からプログラミング入ったのは、無駄ではなかったと最近思う。

にしてもRuby便利だな〜〜。

  • 文字列表現を返す方法
  • アクセサで指定して.to_sで変換 のこれだけで済むなんて。。感動