Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
基礎情報処理演習 (2)PADその1
Search
自然言語処理研究室
September 20, 2013
Programming
0
2.1k
基礎情報処理演習 (2)PADその1
自然言語処理研究室
September 20, 2013
Tweet
Share
More Decks by 自然言語処理研究室
See All by 自然言語処理研究室
データサイエンス14_システム.pdf
jnlp
0
380
データサイエンス13_解析.pdf
jnlp
0
470
データサイエンス12_分類.pdf
jnlp
0
330
データサイエンス11_前処理.pdf
jnlp
0
450
Recurrent neural network based language model
jnlp
0
130
自然言語処理研究室 研究概要(2012年)
jnlp
0
130
自然言語処理研究室 研究概要(2013年)
jnlp
0
93
自然言語処理研究室 研究概要(2014年)
jnlp
0
110
自然言語処理研究室 研究概要(2015年)
jnlp
0
180
Other Decks in Programming
See All in Programming
PHPで始める振る舞い駆動開発(Behaviour-Driven Development)
ohmori_yusuke
2
190
ニーリーにおけるプロダクトエンジニア
nealle
0
490
NPOでのDevinの活用
codeforeveryone
0
240
生成AIで日々のエラー調査を進めたい
yuyaabo
0
650
型付きアクターモデルがもたらす分散シミュレーションの未来
piyo7
0
810
5つのアンチパターンから学ぶLT設計
narihara
1
110
CursorはMCPを使った方が良いぞ
taigakono
1
170
Haskell でアルゴリズムを抽象化する / 関数型言語で競技プログラミング
naoya
17
4.9k
[初登壇@jAZUG]アプリ開発者が気になるGoogleCloud/Azure+wasm/wasi
asaringo
0
130
AIエージェントはこう育てる - GitHub Copilot Agentとチームの共進化サイクル
koboriakira
0
380
Select API from Kotlin Coroutine
jmatsu
1
190
Go1.25からのGOMAXPROCS
kuro_kurorrr
1
800
Featured
See All Featured
How to Think Like a Performance Engineer
csswizardry
24
1.7k
What's in a price? How to price your products and services
michaelherold
246
12k
BBQ
matthewcrist
89
9.7k
It's Worth the Effort
3n
185
28k
Facilitating Awesome Meetings
lara
54
6.4k
Making the Leap to Tech Lead
cromwellryan
134
9.3k
Designing Experiences People Love
moore
142
24k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
GraphQLとの向き合い方2022年版
quramy
48
14k
Mobile First: as difficult as doing things right
swwweet
223
9.7k
We Have a Design System, Now What?
morganepeng
53
7.7k
Transcript
基礎情報処理演習 (2) PAD その1 山本和英 長岡技術科学大学 1
アルゴリズム アルゴリズム(algorithm)とは、作業手順のこと である。アルゴリズムを計算機が理解できるように 表現したものがプログラム。 アルゴリズムの記述方法 ・ フローチャート ・ PAD ・ NSチャート など、たくさんある。 長岡技術科学大学
電気系 基礎情報処理演習 2
フローチャートの例 長岡技術科学大学 電気系 基礎情報処理演習 3 起床 帰宅 就寝 月~金曜日 授業
終わった? No Yes No Yes 遊ぶ
PADの例 長岡技術科学大学 電気系 基礎情報処理演習 4 起床 土曜か日曜 遊ぶ 帰宅 就寝
勉強する 授業時間
NSチャートの例 長岡技術科学大学 電気系 基礎情報処理演習 5 起床 曜日? 起床 講義 月~金
帰宅 就寝 遊ぶ 土日祝 授業終了まで 繰り返す
一般にはフローチャートが 最も有名であるが、 分かりにくいことも多い。 そこで、本演習では PADを使って説明する。 長岡技術科学大学 電気系 基礎情報処理演習 6
PAD PAD (Problem Analysis Diagram) とは、アルゴリズムを 図に表現したものである。 以下のような記号を使う。 処理 入力
分岐 繰り返し まとめ処理 出力 右に伸びるタイプ 下に続くタイプ 長岡技術科学大学 電気系 基礎情報処理演習 7
2 1 18 17 4 11 16 3 14 5
10 15 13 12 6 8 9 7 図1 PADの特徴 アルゴリズムの全体像を つかみやすい。 右に行くほど細かい処理になる 処理が細かくなってゆく 処理が進んでいく 長岡技術科学大学 電気系 基礎情報処理演習 8
これからPADの説明ですが その前に... 長岡技術科学大学 電気系 基礎情報処理演習 9
変数 • 変数とは、数字を入れておく「箱」のことである。 • 変数には名前をつける。これを変数名と呼ぶ。 • 変数は、必要ならばいくつ作ってもよい。 変数のイメージ 変数名 箱
(数字を入れる) 長岡技術科学大学 電気系 基礎情報処理演習 10
変数への代入 変数の中に数字を入れることを代入と呼ぶ。 例えば、a という変数に 3 を代入する時は a ← 3 と書く(3
→ a とは決して書かないので注意)。 長岡技術科学大学 電気系 基礎情報処理演習 11
値の追加 すでに入っている値に追加することができる。 例えば、 a ← a + 2 とすると、現在入っている a
の値に 2 が追加される。 長岡技術科学大学 電気系 基礎情報処理演習 12
変数の初期化 変数は最初、空かどうかは分からない。 (最初に 0 となっているとは限らない) 変数を空にするには、その変数を使う前に 0 を代入する 必要がある。これを変数の初期化という。 p
← 0 初期化も代入の一種である。 長岡技術科学大学 電気系 基礎情報処理演習 13
変数が分かったところで 今度こそPADの説明です。 長岡技術科学大学 電気系 基礎情報処理演習 14
処理 入力 出力 普通の処理。 キーボード入力。 どの変数に入れるかを記入する。 画面出力。 何を出力するかを記入する。 箱の大きさ、線の長さは自由でよい。 長岡技術科学大学
電気系 基礎情報処理演習 15
wa ← a + b a, b wa 図2 例 : 二つの数の和を計算するアルゴリズム
二つの数を入力して、a と b に代入 和を計算して wa に代入する wa を画面に出力する 長岡技術科学大学 電気系 基礎情報処理演習 16
分岐 長岡技術科学大学 電気系 基礎情報処理演習 17 ある条件によって別の処理をさせたい時に使う。 条件分岐や枝分かれとも言う。 ある条件が Yes の場合と
No の場合の処理を書くが 必ずどちらかの処理しか実行されない。
Yesの場合 (条件が正しい場合)の処理 Noの場合 (条件が正しくない場合) の処理 a > b 条件を書く。 aよりbが小さい
などと言葉で書いてもよい (曖昧でなければ) “a が大きい" “a が大きくはない" 長岡技術科学大学 電気系 基礎情報処理演習 18 書き方
x > 0 かつ y < 0 注意: 分岐は必ず2つに分かれるとは限らない。 Yes
だけの場合(図3)は Noの部分に何も書かない。 “x と y は 異符号" 図3 もしxが正の数で yが負の数ならば "xとyは異符号"と出力 そうでなければ何もしない 長岡技術科学大学 電気系 基礎情報処理演習 19
x > 0 x ←x * (-1) x 図4 そうでなければ
(= x が正の数でなければ) (= x が0か負の数ならば) x を -1 倍する。 もし x が0より大きい(正の数)ならば 何もしない xを出力する 長岡技術科学大学 電気系 基礎情報処理演習 20 さらに、Noだけの場合(図4)もある。
w < 20 “110円" w < 50 “540円" “270円" “200円"
w < 100 それ以外 図5 Wが20未満なら"110円"、 Wが50未満なら"200円"、 Wが100未満なら"270円"、 それ以外なら"540円"と出力 たくさん分岐する場合もある(多重分岐)。 例 : 郵便料金の計算 長岡技術科学大学 電気系 基礎情報処理演習 21