感謝のプログラミング 10000時間

たどり着いた結果(さき)は、感謝でした。

【プログラミング 62時間目】Rubyの基礎の振り返り

スポンサーリンク

プログラムを実行する時は、人が読めるように書いたプログラムをコンピュータが理解できる形式に変換する必要があります。

コンパイラ型言語は、プログラムを実行する前にあらかじめ変換を済ませておく言語です。
インタプリタ型言語は、実行が指示されたあとでプログラムを変換する言語です。

オブジェクトをメッセージの関係において、メッセージの送り手のオブジェクトを「センダー」
メッセージの受け手をレシーバといいます。
受け取ったメッセージに応答してレシーバが処理をするが、この処理をメソッドという。

オブジェクト指向プログラムとはオブジェクトがメッセージを伝搬することによって処理が進んでいくプログラムのことである。

Rubyプログラムを実行するときに日本語コードを指定する方法
プログラムファイルの冒頭にマジックコメントを書く方法が推奨されている。

# coding: shift_jis  →ファイルにShift_JISを使う
# coding: utf-8  →ファイルにUTF-8を使う
# coding: euc-jp   →ファイルにEUC-JPを使う

「\」マークを使って記述する方法をバックスラッシュ記法という。
バックスラッシュ記法一覧

\t:タブ
\n:改行
\r:キャリッジリターン(復帰)
\f:改ページ
\b:バックスペース
\e:エスケープ
\s:空白

昔は、改行はタイプライターの紙を1行分送ること(LF:Line Feed)を意味し、
復帰(CR:Carriage Return)は印字位置を行頭に移動することを意味していた。

Rubyで文字列を追加する

# -*- coding: utf-8 -*-

#文字列を追加する方法
puts "Hello" << "World"

puts "Good-bye" .concat("World")

h = "Hello "
w = "World "
puts h << w
puts h
puts h .concat(w)

結果

HelloWorld
Good-byeWorld
Hello World
Hello World
Hello World World

Rubyの式展開の文法

# -*- coding: utf-8 -*-

#数値を文字列の中に埋め込む(式展開)

i = 2345
j = 4567

print "sum= #{i + j}\n"
print "iの二倍は, #{i * 2}です\n"

結果

sum= 6912
iの二倍は, 4690です

・ファイルの中から特定のパターンの行を選んで出力するサンプル

# -*- coding: utf-8 -*-

#ファイルの特定の文字列をマッチングして出力する

#オバマという文字列を含む行を出力したい
pattern = Regexp.new("オバマ")

filename = "test.txt"

file = open(filename)
while text = file.gets
	if pattern =~ text
		puts text
	end
end
file.close

読み込んだのは以下のtest.txt

2007年11月、当時民主党の大統領候補だったバラク・オバマは演説のため、
カリフォルニア州マウンテンヴューのグーグル本社を訪れていた。
現在、ウェブサイトテスト企業OptimizelyのCEOを務めるシロカーだが、
当時はグーグルブラウザー開発チームのプロダクトマネジャーだった。
彼は裏口から忍び込んで長い行列に紛れ込もうと試みた。
「警備員に『中で会議がある』って言ったんです」とシロカーは回想する。
本当は会議などなかった。だがこのハッタリが功を奏して、中に入ることができた。

質疑応答で、オバマは当時のCEO、エリック・シュミットのジョークに的確な答えを返した。
「100万の32ビット整数を効果的にソートするにはどうすればよいと思われますか?」。
それはただの「つかみ」で、すぐ真面目な質問に移るつもりだったのだが、
オバマは次の言葉をさえぎって、「そうですね、バブルソートを使うのは間違いでしょう」と答えた。
それは正解だった。
シュミットは信じられないといったふうに額に手を当てた。満場の拍手喝采。シロカーはその場に打ちのめされた。
「“バブルソート”には参りましたよ」。2週間後、彼はグーグルを休職してシカゴへ行き、
デジタルアドヴァイザーとしてオバマの選挙キャンペーンに加わることになる。

プログラムを実行した結果、以下が出力された

2007年11月、当時民主党の大統領候補だったバラク・オバマは演説のため、
質疑応答で、オバマは当時のCEO、エリック・シュミットのジョークに的確な答えを返し
た。
オバマは次の言葉をさえぎって、「そうですね、バブルソートを使うのは間違いでしょう
」と答えた。
デジタルアドヴァイザーとしてオバマの選挙キャンペーンに加わることになる。

たしかに、「オバマ」を含む行が出力されている。

今回の記事は、下記の書籍を参考にしています。
もっと詳しく丁寧に学びたい人は、参考にしてください。

作りながら学ぶRuby入門 第2版

作りながら学ぶRuby入門 第2版