Upgrade to Pro — share decks privately, control downloads, hide ads and more …

基礎情報処理演習 (2)PADその1

基礎情報処理演習 (2)PADその1

C04e17d9b3810e5c0ad22cb8a12589de?s=128

自然言語処理研究室

September 20, 2013
Tweet

Transcript

  1. 基礎情報処理演習 (2) PAD その1 山本和英 長岡技術科学大学 1

  2. アルゴリズム アルゴリズム(algorithm)とは、作業手順のこと である。アルゴリズムを計算機が理解できるように 表現したものがプログラム。 アルゴリズムの記述方法 ・ フローチャート ・ PAD ・ NSチャート など、たくさんある。 長岡技術科学大学

    電気系 基礎情報処理演習 2
  3. フローチャートの例 長岡技術科学大学 電気系 基礎情報処理演習 3 起床 帰宅 就寝 月~金曜日 授業

    終わった? No Yes No Yes 遊ぶ
  4. PADの例 長岡技術科学大学 電気系 基礎情報処理演習 4 起床 土曜か日曜 遊ぶ 帰宅 就寝

    勉強する 授業時間
  5. NSチャートの例 長岡技術科学大学 電気系 基礎情報処理演習 5 起床 曜日? 起床 講義 月~金

    帰宅 就寝 遊ぶ 土日祝 授業終了まで 繰り返す
  6. 一般にはフローチャートが 最も有名であるが、 分かりにくいことも多い。 そこで、本演習では PADを使って説明する。 長岡技術科学大学 電気系 基礎情報処理演習 6

  7. PAD PAD (Problem Analysis Diagram) とは、アルゴリズムを 図に表現したものである。 以下のような記号を使う。 処理 入力

    分岐 繰り返し まとめ処理 出力 右に伸びるタイプ 下に続くタイプ 長岡技術科学大学 電気系 基礎情報処理演習 7
  8. 2 1 18 17 4 11 16 3 14 5

    10 15 13 12 6 8 9 7 図1 PADの特徴 アルゴリズムの全体像を つかみやすい。 右に行くほど細かい処理になる 処理が細かくなってゆく 処理が進んでいく 長岡技術科学大学 電気系 基礎情報処理演習 8
  9. これからPADの説明ですが その前に... 長岡技術科学大学 電気系 基礎情報処理演習 9

  10. 変数 • 変数とは、数字を入れておく「箱」のことである。 • 変数には名前をつける。これを変数名と呼ぶ。 • 変数は、必要ならばいくつ作ってもよい。 変数のイメージ 変数名 箱

    (数字を入れる) 長岡技術科学大学 電気系 基礎情報処理演習 10
  11. 変数への代入 変数の中に数字を入れることを代入と呼ぶ。 例えば、a という変数に 3 を代入する時は a ← 3 と書く(3

    → a とは決して書かないので注意)。 長岡技術科学大学 電気系 基礎情報処理演習 11
  12. 値の追加 すでに入っている値に追加することができる。 例えば、 a ← a + 2 とすると、現在入っている a

    の値に 2 が追加される。 長岡技術科学大学 電気系 基礎情報処理演習 12
  13. 変数の初期化 変数は最初、空かどうかは分からない。 (最初に 0 となっているとは限らない) 変数を空にするには、その変数を使う前に 0 を代入する 必要がある。これを変数の初期化という。 p

    ← 0 初期化も代入の一種である。 長岡技術科学大学 電気系 基礎情報処理演習 13
  14. 変数が分かったところで 今度こそPADの説明です。 長岡技術科学大学 電気系 基礎情報処理演習 14

  15. 処理 入力 出力 普通の処理。 キーボード入力。 どの変数に入れるかを記入する。 画面出力。 何を出力するかを記入する。 箱の大きさ、線の長さは自由でよい。 長岡技術科学大学

    電気系 基礎情報処理演習 15
  16. wa ← a + b a, b wa 図2 例 : 二つの数の和を計算するアルゴリズム

    二つの数を入力して、a と b に代入 和を計算して wa に代入する wa を画面に出力する 長岡技術科学大学 電気系 基礎情報処理演習 16
  17. 分岐 長岡技術科学大学 電気系 基礎情報処理演習 17 ある条件によって別の処理をさせたい時に使う。 条件分岐や枝分かれとも言う。 ある条件が Yes の場合と

    No の場合の処理を書くが 必ずどちらかの処理しか実行されない。
  18. Yesの場合 (条件が正しい場合)の処理 Noの場合 (条件が正しくない場合) の処理 a > b 条件を書く。 aよりbが小さい

    などと言葉で書いてもよい (曖昧でなければ) “a が大きい" “a が大きくはない" 長岡技術科学大学 電気系 基礎情報処理演習 18 書き方
  19. x > 0 かつ y < 0 注意:  分岐は必ず2つに分かれるとは限らない。 Yes

    だけの場合(図3)は Noの部分に何も書かない。 “x と y は 異符号" 図3 もしxが正の数で yが負の数ならば "xとyは異符号"と出力 そうでなければ何もしない 長岡技術科学大学 電気系 基礎情報処理演習 19
  20. x > 0 x ←x * (-1) x 図4 そうでなければ

    (= x が正の数でなければ) (= x が0か負の数ならば) x を -1 倍する。 もし x が0より大きい(正の数)ならば 何もしない xを出力する 長岡技術科学大学 電気系 基礎情報処理演習 20 さらに、Noだけの場合(図4)もある。
  21. w < 20 “110円" w < 50 “540円" “270円" “200円"

    w < 100 それ以外 図5 Wが20未満なら"110円"、 Wが50未満なら"200円"、 Wが100未満なら"270円"、 それ以外なら"540円"と出力 たくさん分岐する場合もある(多重分岐)。 例 : 郵便料金の計算 長岡技術科学大学 電気系 基礎情報処理演習 21