SlideShare una empresa de Scribd logo
1 de 78
論理思考とプログラミング#09 清水智公 chiko at sfc.keio.ac.jp 1 論理思考とプログラミング #09  N.Shimizu 2009.12.10
一定期間で消えるようにしよう 一定期間 経つと 2 論理思考とプログラミング #09  N.Shimizu 2009.12.10
円を二つにしてみよう 今のもの 円は二つ以上描ける 消えるタイミングは一緒 改良後 描ける円は二つ 消えるタイミングは別 3 論理思考とプログラミング #09  N.Shimizu 2009.12.10
変数を宣言しよう 4 論理思考とプログラミング #09  N.Shimizu 2009.12.10
変数の役割 5 論理思考とプログラミング #09  N.Shimizu 2009.12.10
実行してみよう 6 論理思考とプログラミング #09  N.Shimizu 2009.12.10
3つの円を・・・ もう勘弁してください 7 論理思考とプログラミング #09  N.Shimizu 2009.12.10
同じような処理はまとめたい 二つの円を表すのに使った変数 位置(x1, y1とx2, y2) 大きさ (r1とr2) 生存期間(ttl1とttl2) 円を描く処理 徐々に消していく処理 8 論理思考とプログラミング #09  N.Shimizu 2009.12.10
クラスにまとめましょう 9 論理思考とプログラミング #09  N.Shimizu 2009.12.10
クラス? 変数の型 構成要素 状態を表すいくつかの変数 状態に基づいて動くいくつかのメソッド 10 論理思考とプログラミング #09  N.Shimizu 2009.12.10
クラスの定義 11 論理思考とプログラミング #09  N.Shimizu 2009.12.10
クラスの定義 12 論理思考とプログラミング #09  N.Shimizu 2009.12.10 “class” から始まる
クラスの定義 13 論理思考とプログラミング #09  N.Shimizu 2009.12.10 “class” から始まる
クラスの定義 14 論理思考とプログラミング #09  N.Shimizu 2009.12.10 クラスの名前
クラスの定義 15 論理思考とプログラミング #09  N.Shimizu 2009.12.10 ここに構成要素を列挙
変数を追加しよう 16 論理思考とプログラミング #09  N.Shimizu 2009.12.10
クラスを使って変数を宣言しよう 17 論理思考とプログラミング #09  N.Shimizu 2009.12.10
実際の値を代入しよう ・・・値? 18 論理思考とプログラミング #09  N.Shimizu 2009.12.10
円を作ってc1, c2に代入 19 論理思考とプログラミング #09  N.Shimizu 2009.12.10
Circleとc1, c2との関係 Circle :クラス 「円とは何か」 定義 c1, c2 :オブジェクト 一つ一つの円 クラスによって定義される具体的なもの 20 論理思考とプログラミング #09  N.Shimizu 2009.12.10
値を使ってみよう 21 論理思考とプログラミング #09  N.Shimizu 2009.12.10
がんばって置き換えよう 22 論理思考とプログラミング #09  N.Shimizu 2009.12.10
がんばって置き換えよう 23 論理思考とプログラミング #09  N.Shimizu 2009.12.10
Edit -> Find  24 論理思考とプログラミング #09  N.Shimizu 2009.12.10
動かしてみよう 25 論理思考とプログラミング #09  N.Shimizu 2009.12.10
AとBはほとんど一緒の処理 A B 26 論理思考とプログラミング #09  N.Shimizu 2009.12.10
クラスの中にまとめよう メソッドとしてまとめる 名前を決める クラス定義の中に書く 27 論理思考とプログラミング #09  N.Shimizu 2009.12.10
まとめてみた 28 論理思考とプログラミング #09  N.Shimizu 2009.12.10
書いた場所 29 論理思考とプログラミング #09  N.Shimizu 2009.12.10
使ってみよう 30 論理思考とプログラミング #09  N.Shimizu 2009.12.10
drawの中での処理 C D 31 論理思考とプログラミング #09  N.Shimizu 2009.12.10
まとめよう 2009.12.10 論理思考とプログラミング #09  N.Shimizu 32
書いた場所 33 論理思考とプログラミング #09  N.Shimizu 2009.12.10
呼び出す 2009.12.10 論理思考とプログラミング #09  N.Shimizu 34
実行してみよう 35 論理思考とプログラミング #09  N.Shimizu 2009.12.10
じわじわと消えるようにしよう ttlの値に応じてじわじわ消える E.g. 最初の1秒はくっきりうつる 次の1秒は少し薄くなる 最後の1秒はさらに薄くなる ttlが0の時に消える 2009.12.10 論理思考とプログラミング #09  N.Shimizu 36
私の実装 2009.12.10 37 論理思考とプログラミング #09  N.Shimizu
まだメソッドにまとめられます 2009.12.10 38 論理思考とプログラミング #09  N.Shimizu
どうまとめられるの? どの部分も円を消している 違い:消える程度 fill(0, 0, 0, 255); fill(0, 0, 0, 60); この違いを吸収できればまとめられる 2009.12.10 39 論理思考とプログラミング #09  N.Shimizu
引数をつかおう 引数 メソッドを実行する時に渡す値 渡される値は名前を持つ メソッド内では変数として扱える メソッドが動くときのパラメータ 2009.12.10 論理思考とプログラミング #09  N.Shimizu 40
どういうメソッドにするか考える メソッドの役割 名前 内部で行う処理 引数 数、名前、型 役割 2009.12.10 41 論理思考とプログラミング #09  N.Shimizu
今回 ,[object Object]
disappear
引数
どのくらい消えるか
float ratioメソッドの役割 名前 引数 数、名前、型 役割 2009.12.10 42 論理思考とプログラミング #09  N.Shimizu
実装してみた 2009.12.10 43 論理思考とプログラミング #09  N.Shimizu
&&
条件分岐の意味 不透明率が0%〜100% であることを保証している
呼び出してみよう
実引数と仮引数 仮引数 実引数
円を3つに増やしてみよう
簡単じゃね? 変数を3つにふやして setupメソッドの中で、代入して drawメソッドでupdateメソッドを呼んで mouseReleased()メソッドでsetPosition()メソッドを呼んだらいいんでしょ? あ?ttlが一番小さいものを探さなきゃ
ttlが一番小さいものを探す 戦略1:if文を駆使してがんばる pros 今知っている知識で実現可能 cons 条件式が複雑になる 戦略2:円の集まりをつくる pros 最小値の探し方が単純になる cons 「円の集まり」の作り方をしらない
配列で「集まり」を実現しよう
配列は同じ型の変数の集まり 円 円 円 円 配列
各変数のことを要素と呼びます 要素 要素 要素 要素 円 円 円 円 配列
配列内での位置があります 0番目 3番目 1番目 2番目 円 円 円 円 配列 2009.12.10 54 論理思考とプログラミング #09  N.Shimizu
配列には長さがあります 円 円 円 円 長さ4の配列 2009.12.10 55 論理思考とプログラミング #09  N.Shimizu
配列の長さは変わりません 円 円 円 円 長さ4の配列 2009.12.10 56 論理思考とプログラミング #09  N.Shimizu
配列も一つの変数です 円 円 円 円 配列 2009.12.10 57 論理思考とプログラミング #09  N.Shimizu
配列を宣言しよう 2009.12.10 58 論理思考とプログラミング #09  N.Shimizu
配列の長さを決めよう ココ 2009.12.10 59 論理思考とプログラミング #09  N.Shimizu
各要素に代入しよう ココ 2009.12.10 60 論理思考とプログラミング #09  N.Shimizu
drawメソッドを書き換えよう 2009.12.10 61 論理思考とプログラミング #09  N.Shimizu
こういう風にも書けるよ 配列の長さ 2009.12.10 62 論理思考とプログラミング #09  N.Shimizu
mouseReleasedメソッドを書き換えよう 2009.12.10 63 論理思考とプログラミング #09  N.Shimizu
これは、なに? circlesの中からttlの最も少ない円を探して、 その位置を返すメソッド 2009.12.10 64 論理思考とプログラミング #09  N.Shimizu
返す? メソッドの呼び出す側 これまで仕事を頼みっぱなし 結果を知りたい 返す:結果を呼び出し側に知らせること 返り値:メソッドの仕事の結果 2009.12.10 65 論理思考とプログラミング #09  N.Shimizu
メソッド呼び出し メソッドB メソッドA 呼び出し 2009.12.10 66 論理思考とプログラミング #09  N.Shimizu
findOldestCircleメソッド 2009.12.10 67 論理思考とプログラミング #09  N.Shimizu
return 文で値を返す ココ 2009.12.10 68 論理思考とプログラミング #09  N.Shimizu
返り値にも型がある 返り値の型 2009.12.10 69 論理思考とプログラミング #09  N.Shimizu
これまでのメソッド 返り値がないことを表す 2009.12.10 70 論理思考とプログラミング #09  N.Shimizu
実行してみよう 2009.12.10 71 論理思考とプログラミング #09  N.Shimizu
findOldestCircleを実装しよう 引数はなし circlesの中でttlが一番少ないものを探す 見つけたものの位置を返す 返り値の型はint 2009.12.10 72 論理思考とプログラミング #09  N.Shimizu
例 2009.12.10 73 論理思考とプログラミング #09  N.Shimizu
メソッドの中での変数宣言 ココ 2009.12.10 74 論理思考とプログラミング #09  N.Shimizu

Más contenido relacionado

Destacado

コーディングスタイル入門~人に伝えるプログラミング~
コーディングスタイル入門~人に伝えるプログラミング~コーディングスタイル入門~人に伝えるプログラミング~
コーディングスタイル入門~人に伝えるプログラミング~Hideki MACHIDA
 
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)Horiguchi Seito
 
コーディングが上達するコツ
コーディングが上達するコツコーディングが上達するコツ
コーディングが上達するコツevol-ni
 
スパースモデリング、スパースコーディングとその数理(第11回WBA若手の会)
スパースモデリング、スパースコーディングとその数理(第11回WBA若手の会)スパースモデリング、スパースコーディングとその数理(第11回WBA若手の会)
スパースモデリング、スパースコーディングとその数理(第11回WBA若手の会)narumikanno0918
 
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏Yusuke Hirao
 

Destacado (6)

コーディングスタイル入門~人に伝えるプログラミング~
コーディングスタイル入門~人に伝えるプログラミング~コーディングスタイル入門~人に伝えるプログラミング~
コーディングスタイル入門~人に伝えるプログラミング~
 
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)
 
コーディングが上達するコツ
コーディングが上達するコツコーディングが上達するコツ
コーディングが上達するコツ
 
スパースモデリング、スパースコーディングとその数理(第11回WBA若手の会)
スパースモデリング、スパースコーディングとその数理(第11回WBA若手の会)スパースモデリング、スパースコーディングとその数理(第11回WBA若手の会)
スパースモデリング、スパースコーディングとその数理(第11回WBA若手の会)
 
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
 
プログラムを高速化する話
プログラムを高速化する話プログラムを高速化する話
プログラムを高速化する話
 

Más de Noritada Shimizu

20150512 webgl-off-the-main-thread
20150512 webgl-off-the-main-thread20150512 webgl-off-the-main-thread
20150512 webgl-off-the-main-threadNoritada Shimizu
 
asm.js x emscripten: The foundation of the next level Web games
asm.js x emscripten: The foundation of the next level Web gamesasm.js x emscripten: The foundation of the next level Web games
asm.js x emscripten: The foundation of the next level Web gamesNoritada Shimizu
 
Mozilla とブラウザゲーム
Mozilla とブラウザゲームMozilla とブラウザゲーム
Mozilla とブラウザゲームNoritada Shimizu
 
2016 gunma.web games-and-asm.js
2016 gunma.web games-and-asm.js2016 gunma.web games-and-asm.js
2016 gunma.web games-and-asm.jsNoritada Shimizu
 
20151128 firefoxos-handson
20151128 firefoxos-handson20151128 firefoxos-handson
20151128 firefoxos-handsonNoritada Shimizu
 
Inspection & Tweak: Firefox を使ったフロント開発
Inspection & Tweak: Firefox を使ったフロント開発Inspection & Tweak: Firefox を使ったフロント開発
Inspection & Tweak: Firefox を使ったフロント開発Noritada Shimizu
 
20150829 firefox-os-handson
20150829 firefox-os-handson20150829 firefox-os-handson
20150829 firefox-os-handsonNoritada Shimizu
 
20150727 Development tools for Firefox OS apps
20150727 Development tools for Firefox OS apps20150727 Development tools for Firefox OS apps
20150727 Development tools for Firefox OS appsNoritada Shimizu
 
Firefox OS でアプリを作るときに気をつけたい N 個のこと
Firefox OS  でアプリを作るときに気をつけたい N 個のことFirefox OS  でアプリを作るときに気をつけたい N 個のこと
Firefox OS でアプリを作るときに気をつけたい N 個のことNoritada Shimizu
 
Firefox OSアプリ開発ハンズオン(Hello World編)
Firefox OSアプリ開発ハンズオン(Hello World編)Firefox OSアプリ開発ハンズオン(Hello World編)
Firefox OSアプリ開発ハンズオン(Hello World編)Noritada Shimizu
 
WebVR(html5j TV部、WebVRとかVRのUIとか勉強会)
WebVR(html5j TV部、WebVRとかVRのUIとか勉強会)WebVR(html5j TV部、WebVRとかVRのUIとか勉強会)
WebVR(html5j TV部、WebVRとかVRのUIとか勉強会)Noritada Shimizu
 
Application submission, management and manetization in Firefox Marketplace
Application submission, management and manetization in Firefox MarketplaceApplication submission, management and manetization in Firefox Marketplace
Application submission, management and manetization in Firefox MarketplaceNoritada Shimizu
 

Más de Noritada Shimizu (20)

20160803 devrel
20160803 devrel20160803 devrel
20160803 devrel
 
20160713 webvr
20160713 webvr20160713 webvr
20160713 webvr
 
20160601 devtools
20160601 devtools20160601 devtools
20160601 devtools
 
20150512 webgl-off-the-main-thread
20150512 webgl-off-the-main-thread20150512 webgl-off-the-main-thread
20150512 webgl-off-the-main-thread
 
20160428 html5jwebplat
20160428 html5jwebplat20160428 html5jwebplat
20160428 html5jwebplat
 
asm.js x emscripten: The foundation of the next level Web games
asm.js x emscripten: The foundation of the next level Web gamesasm.js x emscripten: The foundation of the next level Web games
asm.js x emscripten: The foundation of the next level Web games
 
Mozilla とブラウザゲーム
Mozilla とブラウザゲームMozilla とブラウザゲーム
Mozilla とブラウザゲーム
 
2016 gunma.web games-and-asm.js
2016 gunma.web games-and-asm.js2016 gunma.web games-and-asm.js
2016 gunma.web games-and-asm.js
 
20151224-games
20151224-games20151224-games
20151224-games
 
20151128 firefoxos-handson
20151128 firefoxos-handson20151128 firefoxos-handson
20151128 firefoxos-handson
 
20151117 devtools
20151117 devtools20151117 devtools
20151117 devtools
 
Inspection & Tweak: Firefox を使ったフロント開発
Inspection & Tweak: Firefox を使ったフロント開発Inspection & Tweak: Firefox を使ったフロント開発
Inspection & Tweak: Firefox を使ったフロント開発
 
20150822 osc-shimane
20150822 osc-shimane20150822 osc-shimane
20150822 osc-shimane
 
20150829 firefox-os-handson
20150829 firefox-os-handson20150829 firefox-os-handson
20150829 firefox-os-handson
 
20150829 firefox-os
20150829 firefox-os20150829 firefox-os
20150829 firefox-os
 
20150727 Development tools for Firefox OS apps
20150727 Development tools for Firefox OS apps20150727 Development tools for Firefox OS apps
20150727 Development tools for Firefox OS apps
 
Firefox OS でアプリを作るときに気をつけたい N 個のこと
Firefox OS  でアプリを作るときに気をつけたい N 個のことFirefox OS  でアプリを作るときに気をつけたい N 個のこと
Firefox OS でアプリを作るときに気をつけたい N 個のこと
 
Firefox OSアプリ開発ハンズオン(Hello World編)
Firefox OSアプリ開発ハンズオン(Hello World編)Firefox OSアプリ開発ハンズオン(Hello World編)
Firefox OSアプリ開発ハンズオン(Hello World編)
 
WebVR(html5j TV部、WebVRとかVRのUIとか勉強会)
WebVR(html5j TV部、WebVRとかVRのUIとか勉強会)WebVR(html5j TV部、WebVRとかVRのUIとか勉強会)
WebVR(html5j TV部、WebVRとかVRのUIとか勉強会)
 
Application submission, management and manetization in Firefox Marketplace
Application submission, management and manetization in Firefox MarketplaceApplication submission, management and manetization in Firefox Marketplace
Application submission, management and manetization in Firefox Marketplace
 

Último

2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料Tokyo Institute of Technology
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024koheioishi1
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2Tokyo Institute of Technology
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料Takayuki Itoh
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ssusere0a682
 
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~Kochi Eng Camp
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationYukiTerazawa
 

Último (7)

2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
 
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
 

論理思考とプログラミング 第9回