Ruby で学ぶプログラミング入門
-
Upload
ryota-kameoka -
Category
Technology
-
view
774 -
download
2
Transcript of Ruby で学ぶプログラミング入門
スピーカー紹介• 亀岡 亮太 (@ryota-ka)
• 京都大学経済学部 B4
• 11才でプログラミングに触れる
• ちゃんとやってるのはここ1年ぐらい
• 詳しくは → http://ryota-ka.me/
今日の目標• 「プログラミングおもしろい」と気付く
• 「プログラミング向いてないな」気付く
• プログラミングの基本的な考え方を知る
• ピザを食べて友達を増やして帰る
• なにかひとつでも持って帰ってもらえれば!
プログラミング #とは
プログラミング言語(プログラミングげんご)またはプログラム言語(プログラムげんご)とは、コンピュータに対する一連の動作の指示を記述するための人工言語で、コンピュータ言語の一カテゴリである。この一連の指示をプログラムと呼び、それを記述することをプログラミングと呼ぶ。
(出典 : Wikipedia「プログラミング言語」)
プログラミング #とは (要約)• 人間がコンピューターに行ってほしい操作の手順を伝える
• 曖昧な自然言語を使うのは難しい
• 画面に “Hello”と表示してください
• “Hello” と画面に表示しろ
• コンピューターに命令する専用の簡単な言語(プログラミン
グ言語)を作って, それを用いて手順を伝える
プログラミング言語• AWK
• BASIC
• Brainfuck
• C
• C++
• Clojure
• COBOL
• Erlang
• Objective-C
• OCaml
• Pascal
• Perl
• PHP
• Prolog
• Python
• R
• Ruby
• Rust
• Scala
• Smalltalk
• Swift
などなど
• FORTRAN
• Go
• Haskell
• HSP
• Java
• JavaScript
• LISP
• Lua
文字を表示する
文字の入力を受け取る正解かどうかを判定する
正解率を計算する
• 辞書を用意しておく
(apple はりんご, dog は犬, book は本, …) • 登録されている単語の数だけ出題を繰り返す
計算してみる
• × じゃなくて *
• ÷ じゃなくて /
• % は余りを求める
puts 1 + 1 # => 2
puts 3 * 4 # => 12
puts 32 / 4 # => 8
puts 27 % 5 # => 2
オブジェクトとメソッド• puts “ABC”.reverse
# 答え : 画面に “CBA” と表示される
じゃあこう書いたら何が起こるでしょう?
もしもし “ABC” さんあなた逆から読んだらどうなりますの?
• puts “CBA”
変数• データを保存しておく入れ物のようなもの
x = 80 # x に 80 という値を保存
puts x + 20 # 画面に 100 と表示
x = 100 # 値を書き換えられる
puts x / 50 # 画面に 2 と表示
オブジェクトの型• 10 + 20
=> 30
• “プログラミング“ + “入門”
=> “プログラミング入門”
• 10 + “個のりんご”
=> ???
_人人人人人_ > エラー < ‾Y^Y^Y^Y‾
真偽値
• ある条件(命題)が正しいか, 正しくないかを表す値を
「真偽値」と呼ぶ
• 正しいことを true, 正しくないことを false で表す
• 高校英語の正誤問題, T とか F とかで答えましたよね?
制御構造 - if• 条件によって処理を分ける (もしなら…する)
もし100円以上持っていれば
100円払ってりんごを買う
if money >= 100 money -= 100 apple += 1 end
制御構造 - ifmoney = 120
if money >= 100 money -= 100 apple += 1 end
money = 80
if money >= 100 money -= 100 apple += 1 end
→ 何も起こらない正しい!true! 正しくない!false!→ 実行される
制御構造 - elsif•もし(if)3,000円持っていれば
→ 3,000円払ってメロンを買う
•そうでなくてもし(else + if)100円持っていれば
→ 100円払ってりんごを買う
•そうでなければ(else)
→ ぼくはかなしい😢
制御構造 - elseifif money >= 3000 money -= 3000 melon += 1 elsif money >= 100 money -= 100 apple += 1 else puts “お金が足りないのでつらい”
end
配列names = [‘Alice’, ‘Bob’, ‘Charlie’]
puts names.size # => 3
names.push(‘Dave’)
puts names[0] # => ‘Alice’
puts names[1] # => ‘Bob’
制御構造 - whilecredit = 0 year = 1
while credit < 124 do puts “授業を受ける”
year += 1 credit += rand(40) end
制御構造 - whilecredit = 0 year = 1
while credit < 124 do puts “授業を受けない”
year += 1 # credit += rand(40) end
→ 無限ループ🙅
制御構造 - breakwhile credit < 124 do puts “授業を受ける”
year += 1 credit += rand(40)
if year == 8 break end end
← ループを途中で抜ける
words = { ‘apple’ => ‘りんご’,
‘book’ => ‘本’,
‘dog’ => ‘犬’
}
words.each do |key, value| puts “key: ” + key puts “value: ” + value end
1周目: key: apple value: りんご
2周目: key: book value: 本
3周目 key: dog value: 犬