ruby メソッドをオーバーライド

class Score
  def initialize(subject, score)
    @subject = subject
    @score = score
  end

  def get_info
    "#{@subject}/#{@score} -> #{get_result}"
  end

  private

  def get_result
    @score >= 80 ? "Pass" : "Fail"
  end
end

class MathScore < Score
  def initialize(score)
    super("Math", score)
  end

  private 

  # ovierride
  def get_result
  @score >= 50 ? "Pass" : "Fail"
  end
end

class EnglishScore < Score
  def initialize(score)
    super("English", score)
  end
end

class User
  def initialize(name, score)
    @name = name
    @score = score
  end

  def get_info
    "Name: #{@name}, Score: #{@score.get_info}"
  end
end

user1 = User.new("Taro", MathScore.new(70))
user2 = User.new("Jiro", EnglishScore.new(90))
puts user1.get_info
puts user2.get_info

ruby 子クラス

class Score
  def initialize(subject, score)
    @subject = subject
    @score = score
  end

  def get_info
    "#{@subject}/#{@score} -> #{get_result}"
  end

  private

  def get_result
    @score >=80 ? "Pass" : "Fail"
  end
end

class MathScore < Score
  def initialize(score)
  super("Math", score)
  end
end

class EnglishScore < Score
 def initialize(score)
  super("Math", score)
  end
end

class User
  def initialize(name, score)
    @name = name
    @score = score
  end

  def get_info
    "Name: #{@name}, Score: #{@score.get_info}"
  end
end

user1 = User.new("Taro", MathScore.new(70))
user2 = User.new("Jiro", EnglishScore.new(90))
puts user1.get_info
puts user2.get_info

C# string型とchar型

using System;

class string01
{
    public static void Main()
    {
        char[] chararray = new char[3];
        chararray[0] = 'a';
        chararray[1] = 'b';
        chararray[2] = 'c';

        string str;
        str = new string(chararray);
        Console.WriteLine(str);

        char[] title = { '魔', '王', 'と', '勇', '者'};
        string strTitle = new string(title);
        Console.WriteLine(strTitle);


        string strx = "魔王と勇者の伝説";
        int n = strx.Length;
        Console.WriteLine("「{0}」の文字数は{1}です", strx, n);

        char c = strx[1];
        Console.WriteLine("「{0}」の2番目の文字は「{1}」です", strx, c);


    }
}

python 簡単な会話モデルの構築

from nltk.chat.util import Chat, reflections

pairs = [
[‘こんにちは’, [‘こんにちは!’, ‘どうもこんにちは!’]],
[‘元気ですか?’, [‘はい、元気です!’, ‘お尋ねいただきありがとうございます。’]],
[‘名前は何ですか?’, [‘私はチャットボットです。’, ‘私の名前はチャットボットです。’]],
[‘さようなら’, [‘さようなら!またね。’, ‘良い一日を!’]],
]

chatbot = Chat(pairs, reflections)

def chatbot_response(user_input):
return chatbot.respond(user_input)

ユーザーとの対話

while True:
user_input = input(“あなた: “)
response = chatbot_response(user_input)
print(“チャットボット:”, response)

C# 配列

using System;

class array01
{
    public static void Main()
    {
        int[] Weapon = new int[3];
        Weapon[0] = 10;
        Weapon[1] = 20;
        Weapon[2] = 30;
        // 宣言と同時に初期化
        int[] myarray2 = new int[3] { 10, 20, 30 };

        // 要素数を省略することも可能
        int[] myarray3 = new int[] { 10, 20, 30 };

        //別な方法
        int[] myarray4;
        myarray4 = new int[] { 10, 20, 30 };
    }
}

ruby メソッドを実装

class Score
  def initialize(subject, score)
    @subject = subject
    @score = score
  end

  def get_info
    "#{@subject}/#{@score}"
  end
end

class User
  def initialize(name, score)
    @name = name
    @score = score
  end

  def get_info
    "Name: #{@name}, Score: #{@score.get_info}"
  end
end

user1 = User.new("Taro", Score.new("Math", 70))
user2 = User.new("Jiro", Score.new("English", 90))
puts user1.get_info
puts user2.get_info

ruby rssserver

require ‘cgi’
require ‘rss’
require ‘net/http’

def parse(page_source)
dates = page_source.scan(%r!(\d+)年 ?(\d+)月 ?(\d+)日
!).map { |year, month, day| [year.to_i, month.to_i, day.to_i] }
url_titles = page_source.scan(%r!^(.+?)
!).map { |url, title| [CGI.unescapeHTML(url), CGI.unescapeHTML(title)] }
url_titles.zip(dates).map { |(url, title), date| [url, title, Time.local(*date)] }
end

def format_text(title, url, url_title_time_ary)
text = “Title: #{title}\nURL: #{url}\n\n”
url_title_time_ary.each do |aurl, atitle, atime|
text << “* (#{atime})#{atitle}\n”
text << ” #{aurl}\n”
end
text
end

def format_rss(title, url, url_title_time_ary)
RSS::Maker.make(“2.0”) do |maker|
maker.channel.updated = Time.now.to_s
maker.channel.link = url
maker.channel.title = title
maker.channel.description = title
url_title_time_ary.each do |aurl, atitle, atime|
maker.items.new_item do |item|
item.link = aurl
item.title = atitle
item.updated = atime
item.description = atitle
end
end
end
end

uri = URI(“http://crawler.sbcr.jp/samplepage.html”)
response = Net::HTTP.get_response(uri)
parsed = parse(response.body.force_encoding(“UTF-8”))

formatter = case ARGV.first
when “rss-output”
:format_rss
else
:format_text
end

puts send(formatter, “WWW.SBCR.JP トピックス”, “http://crawler.sbcr.jp/samplepage.html”, parsed)

Ruby RSS

require 'rss'
require 'open-uri'

# RSSフィードのURL
rss_url = 'http://2ch-ranking.net/rss/livemarket1.rdf'

# RSSフィードを取得してパース
rss_content = URI.open(rss_url).read
rss = RSS::Parser.parse(rss_content)

# フィードのタイトルと記事を出力
puts "フィードのタイトル: #{rss.channel.title}"
puts "-----"

rss.items.each do |item|
  puts "タイトル: #{item.title}"
  puts "リンク: #{item.link}"
  puts "概要: #{item.description}"
  puts "-----"
end

ruby クラスメソッド

class User
  @@count = 0

  def initialize(name, score)
    @name = name
    @score = score
    @@count += 1
  end

  def get_info
    "Name: #{@name}, Score: #{@score}"
  end

  def self.get_info
    "Count: #{@@count}"
  end
end

# count = 0
user1 = User.new("Taro", 70)
# count += 1
user2 = User.new("Jiro", 90)
# count += 1
# puts count
puts User.get_info