Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
RK
Uploaded by
Ryota Kameoka
PDF, PPTX
2,997 views
Ruby で学ぶプログラミング入門
2015年4月25日に CAMPHOR- HOUSE にて行われた「Ruby で学ぶプログラミング入門」の発表スライドです。
Technology
◦
Read more
14
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 70
2
/ 70
3
/ 70
4
/ 70
5
/ 70
6
/ 70
7
/ 70
8
/ 70
9
/ 70
10
/ 70
11
/ 70
12
/ 70
13
/ 70
14
/ 70
15
/ 70
16
/ 70
17
/ 70
18
/ 70
19
/ 70
20
/ 70
21
/ 70
22
/ 70
23
/ 70
24
/ 70
25
/ 70
26
/ 70
27
/ 70
28
/ 70
29
/ 70
30
/ 70
31
/ 70
32
/ 70
33
/ 70
34
/ 70
35
/ 70
36
/ 70
37
/ 70
38
/ 70
39
/ 70
40
/ 70
41
/ 70
42
/ 70
43
/ 70
44
/ 70
45
/ 70
46
/ 70
47
/ 70
48
/ 70
49
/ 70
50
/ 70
51
/ 70
52
/ 70
53
/ 70
54
/ 70
55
/ 70
56
/ 70
57
/ 70
58
/ 70
59
/ 70
60
/ 70
61
/ 70
62
/ 70
63
/ 70
64
/ 70
65
/ 70
66
/ 70
67
/ 70
68
/ 70
69
/ 70
70
/ 70
More Related Content
PDF
AtCoder Beginner Contest 007 解説
by
AtCoder Inc.
PDF
プログラミング入門
by
Kenji Azami
PDF
AtCoder Beginner Contest 026 解説
by
AtCoder Inc.
PDF
kaetsu.js #02
by
Noritada Shimizu
PDF
Docker基礎+docker0.9, 0.10概要
by
Kazuyuki Mori
PPTX
Ruby講座一回目
by
Masayuki Matsumoto
PPTX
Ruby講座一回目
by
Masayuki Matsumoto
PDF
Ruby紹介(pdf)
by
Gohryuh
AtCoder Beginner Contest 007 解説
by
AtCoder Inc.
プログラミング入門
by
Kenji Azami
AtCoder Beginner Contest 026 解説
by
AtCoder Inc.
kaetsu.js #02
by
Noritada Shimizu
Docker基礎+docker0.9, 0.10概要
by
Kazuyuki Mori
Ruby講座一回目
by
Masayuki Matsumoto
Ruby講座一回目
by
Masayuki Matsumoto
Ruby紹介(pdf)
by
Gohryuh
Similar to Ruby で学ぶプログラミング入門
PDF
#7:演算子と分岐
by
長岡技術科学大学 自然言語処理研究室
PDF
2011年11月18日
by
nukaemon
PDF
2011年10月21日
by
nukaemon
PDF
Ruby紹介3(pdf)
by
Gohryuh
PDF
2011年10月28日
by
nukaemon
PDF
2011年12月16日
by
nukaemon
ODP
Lt会01_uetch
by
Tomoaki Ueda
ODP
Ruby紹介
by
Gohryuh
PPTX
ループその3
by
TENTO_slide
PDF
CoffeeScript
by
Ryo Maruyama
KEY
Rails基礎講座 part.1
by
Jun Yokoyama
PPT
Lightning introduction to CoffeeScript 20131005
by
gotohayato
PPT
Start!! Ruby
by
mitim
PDF
講座C入門
by
Tokai University
PDF
(Ruby使いのための)Scalaで学ぶ関数型プログラミング
by
Ouka Yuka
ODP
Introduction of Python
by
Tomoya Nakayama
PDF
ノンプログラマーでも明日から使えるJavaScript簡単プログラム 先生:柳井 政和
by
schoowebcampus
PPTX
C言語 学習教材
by
Jun MITANI
PPTX
前期講座08
by
Takenori Nakagawa
PDF
プログラミング
by
saireya _
#7:演算子と分岐
by
長岡技術科学大学 自然言語処理研究室
2011年11月18日
by
nukaemon
2011年10月21日
by
nukaemon
Ruby紹介3(pdf)
by
Gohryuh
2011年10月28日
by
nukaemon
2011年12月16日
by
nukaemon
Lt会01_uetch
by
Tomoaki Ueda
Ruby紹介
by
Gohryuh
ループその3
by
TENTO_slide
CoffeeScript
by
Ryo Maruyama
Rails基礎講座 part.1
by
Jun Yokoyama
Lightning introduction to CoffeeScript 20131005
by
gotohayato
Start!! Ruby
by
mitim
講座C入門
by
Tokai University
(Ruby使いのための)Scalaで学ぶ関数型プログラミング
by
Ouka Yuka
Introduction of Python
by
Tomoya Nakayama
ノンプログラマーでも明日から使えるJavaScript簡単プログラム 先生:柳井 政和
by
schoowebcampus
C言語 学習教材
by
Jun MITANI
前期講座08
by
Takenori Nakagawa
プログラミング
by
saireya _
Ruby で学ぶプログラミング入門
1.
Ruby で学ぶ プログラミング入門 2015-04-25 Ryota Kameoka @
CAMPHOR- HOUSE
2.
CAMPHOR- のご紹介 • 京都のIT系学生コミュニティー •
プログラマーとデザイナーが集まる場所 • 京大, 同志社, 京都精華, などなど • camph.net
3.
IPSJ77Now
4.
びわこ花火ガイド
5.
イベントの様子
6.
camph.net
7.
スピーカー紹介 • 亀岡 亮太
(@ryota-ka) • 京都大学経済学部 B4 • 11才でプログラミングに触れる • ちゃんとやってるのはここ1年ぐらい • 詳しくは → http://ryota-ka.me/
8.
今日の目標 • 「プログラミングおもしろい」と気付く • 「プログラミング向いてないな」気付く •
プログラミングの基本的な考え方を知る • ピザを食べて友達を増やして帰る • なにかひとつでも持って帰ってもらえれば!
9.
わからなくなったら • 恥ずかしがらずに近くの人に聞きましょう! • プログラミングできる人も混ざってます •
今のうちに隣の人と仲良くなりましょう
10.
さて, さっそくですが プログラミング #とは
11.
プログラミング #とは プログラミング言語(プログラミングげんご) またはプログラム言語(プログラムげんご)とは、 コンピュータに対する一連の動作の指示を記述す るための人工言語で、コンピュータ言語の一カテ ゴリである。この一連の指示をプログラムと呼び、 それを記述することをプログラミングと呼ぶ。 (出典 :
Wikipedia「プログラミング言語」)
12.
❓❓❓
13.
プログラミング #とは (要約) •
人間がコンピューターに行ってほしい操作の手順を伝える • 曖昧な自然言語を使うのは難しい • 画面に Hello と表示してください • Hello と画面に表示しろ • コンピューターに命令する専用の簡単な言語(プログラミン グ言語)を作って, それを用いて手順を伝える
14.
プログラミング言語 • 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
15.
プログラミング言語 愛を語るならフランス語 文学を語るなら英語 科学計算なら FORTRAN iPhone アプリなら
Swift それぞれの言語に得意分野がある
16.
Ruby ができることの例
17.
今日作るもの 英単語クイズゲーム
18.
実際に見てみよう
19.
問題を分解してみる
20.
文字を表示する 文字の入力を受け取る 正解かどうかを判定する 正解率を計算する • 辞書を用意しておく (apple はりんご,
dog は犬, book は本, …) • 登録されている単語の数だけ出題を繰り返す
21.
はじめてみよう👍 prog-8.com
22.
画面に文字を表示する
23.
画面に文字を表示する • puts “表示させたい文字列” •
文字列は (Shift+7) または (Shift+2) で囲む
24.
計算してみる • × じゃなくて
* • ÷ じゃなくて / • % は余りを求める puts 1 + 1 # => 2 puts 3 * 4 # => 12 puts 32 / 4 # => 8 puts 27 % 5 # => 2
25.
オブジェクト • 今日はあまり深く考えない! • 理屈より具体的な例を見てみよう
26.
オブジェクトとメソッド • “Progate”.length # 結果
: 7 もしもし “Progate” さん あなたの文字数は何文字ですか?
27.
オブジェクトとメソッド • 3.14.round # 結果
: 3 もしもし 3.14 さん あなた四捨五入したらどうなりますの?
28.
オブジェクトとメソッド • puts “ABC”.reverse #
答え : 画面に “CBA” と表示される じゃあこう書いたら何が起こるでしょう? もしもし “ABC” さん あなた逆から読んだらどうなりますの? • puts “CBA”
29.
変数 • データを保存しておく入れ物のようなもの x =
80 # x に 80 という値を保存 puts x + 20 # 画面に 100 と表示 x = 100 # 値を書き換えられる puts x / 50 # 画面に 2 と表示
30.
注意 • = は等式ではありません!!!!! “x
= 80” は, 「xという変数に80という値を保存しておく」 という意味です
31.
変数の再代入 • 変数の値は書き換えられる x =
100 x = x + 50 puts x # なんと表示されるでしょう? # 答え : 150 100
32.
入力された文字を受け取る • puts :
画面に文字を出力する • gets : キーボードから文字を読み取る
33.
オブジェクトの型 • 10 +
20 => 30 • “プログラミング“ + “入門” => “プログラミング入門” • 10 + “個のりんご” => ??? _人人人人人_ > エラー <  ̄Y^Y^Y^Y ̄
34.
そもそも • 10 +
“個のりんご” 数字 文字列+ => 足せるわけねえ💢💢 • 数字 + 数字 は OK • 文字列 + 文字列 も OK • 数字 + 文字列 は ダメ🙅
35.
型の変換 • 10.to_s +
“個のりんご” 10を 文字列(string)にしたらどうなるの? => “10” + “個のりんご” => “10個のりんご” ちゃんと足せました👏👏
36.
真偽値 • ある条件(命題)が正しいか, 正しくないかを表す値を 「真偽値」と呼ぶ •
正しいことを true, 正しくないことを false で表す • 高校英語の正誤問題, T とか F とかで答えましたよね?
37.
真偽値 • 30 >
20 (30が20より大きいか) => true (正しい) • 20 == 10 (20は10と等しいか) => false (正しくない)
38.
制御構造 - if •
条件によって処理を分ける (もしなら…する) 例) もし100円以上持っていれば 100円払ってりんごを買う
39.
100円を払う りんごを1つ手に入れる 100円以上持っている? Yes😄 No😫
40.
制御構造 - if •
条件によって処理を分ける (もしなら…する) もし100円以上持っていれば 100円払ってりんごを買う if money >= 100 money -= 100 apple += 1 end
41.
制御構造 - if money
= 120 if money >= 100 money -= 100 apple += 1 end money = 80 if money >= 100 money -= 100 apple += 1 end → 何も起こらない 正しい!true! 正しくない!false! → 実行される
42.
制御構造 - else •
もし(if)100円持っていれば → 100円払ってりんごを買う • そうでなければ(else) → ぼくはかなしい😢
43.
100円を払う りんごを1つ手に入れる 100円以上持っている? Yes😄 No😫 かなしい
44.
制御構造 - else if
money >= 100 money -= 100 apple += 1 else puts “お金が足りないのでつらい” end
45.
制御構造 - elsif •
もし(if)3,000円持っていれば → 3,000円払ってメロンを買う • そうでなくてもし(else + if)100円持っていれば → 100円払ってりんごを買う • そうでなければ(else) → ぼくはかなしい😢
46.
3,000円を払う メロンを1つ手に入れる 3,000円以上持っている? Yes😄 No😫 かなしい じゃあ100円以上持っている? 100円を払う りんごを1つ手に入れる No😂Yes😊
47.
制御構造 - elseif if
money >= 3000 money -= 3000 melon += 1 elsif money >= 100 money -= 100 apple += 1 else puts “お金が足りないのでつらい” end
48.
論理演算子 • 条件 P,Q
(e.g. x > 100) • P && Q => P かつ Q • P || Q => P または Q
49.
配列 • x, y,
z じゃなくて a1, a2, a3 • 添字は1じゃなくて0から • [‘Alice’, ‘Bob’, ‘Charlie’]
50.
配列 names = [‘Alice’,
‘Bob’, ‘Charlie’] puts names.size # => 3 names.push(‘Dave’) puts names[0] # => ‘Alice’ puts names[1] # => ‘Bob’
51.
配列のメリット • 変数がムダに増えない • 扱うべき変数の数を人間が知らなくてもいい •
データ自体が知っているので (size) • 他にもたくさん(割愛)
52.
ハッシュ • 配列 : names[0]
= ‘Alice’ names[1] = ‘Bob’ • ハッシュ : words[‘apple’] = ‘りんご’ words[‘dog’] = ‘犬’
53.
制御構造 - while •
条件が真である間ループを繰り返す • 例) 卒業単位が うまで1年間を繰り返す
54.
124単位以上持っている? 授業を受ける 単位を取る Yes😄 No😫 卒業🍣
55.
制御構造 - while credit
= 0 year = 1 while credit < 124 do puts “授業を受ける” year += 1 credit += rand(40) end
56.
例えばなぜか 単位が取れないとして
57.
制御構造 - while credit
= 0 year = 1 while credit < 124 do puts “授業を受けない” year += 1 # credit += rand(40) end → 無限ループ🙅
58.
124単位以上持っている? 授業を受けない 単位が取れない Yes😄 No😫 卒業🍣
59.
124単位以上持っている? 授業を受けない 単位が取れない Yes😄 No😫 卒業🍣 8回生? 退学💀 No😅 Yes😂
60.
制御構造 - break while
credit < 124 do puts “授業を受ける” year += 1 credit += rand(40) if year == 8 break end end ← ループを途中で抜ける
61.
ハッシュに対する繰り返し 1周目はapple/りんご 2周目はdog/犬 3周目はbook/本 というデータがほしい
62.
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: 犬
63.
関数 • 一定の処理・計算をまとめる • 正解率を計算する関数を定義してみよう
64.
関数 • (正解率) =
100 (正解数) (出題数) • percentage(正解数, 出題数) = 100 (正解数) (出題数)
65.
percentage 関数 def percentage(a,
b) return 100 * a / b end
66.
percentage 関数 (改) def
percentage(a, b) if b == 0 return 0 else return 100 * a / b end end
67.
できました👏👏
68.
終えてみて • プログラミングって意外と地道 • 最初は覚えることがたくさん •
思い通りに書けるようになると楽しい!
69.
最後に もうちょっと勉強したい方は 是非 CAMPHOR- に 遊びに来てください!!
70.
ありがとうございました ..
Download