データ構造とアルゴリズム論 第1章 アルゴリズム の表現-流れ図 平成15年9月30日 森田 彦 アルゴリズムとは? 問題を解決するための手順 例:1缶110円のジュースの(自動)販売を行う ① ② ③ <処理の流れ(アルゴリズム)> 料金を投入する 料金が不足していないかどうかを判定し、 料金≧110なら「ありがとうございます」と表示。 それ以外(料金<110)なら「お金が不足してい ます」と表示。 流れ図による表現 開始 料金を入力 料金≧110 No 「お金が不足しています」と表示 Yes 「ありがとうございました」と表示 終了 プログラムとは? アルゴリズムをプログラミング言語で表現 したもの Javaで記述 C++で記述 本章(本日)の学習のねらい ① 標準的な流れ図(JIS規格に準拠)の記 述の仕方を学ぶ。 ② 流れ図を用いて簡単なアルゴリズムを 記述できるようになる。 ③ アルゴリズムの(処理の)流れをつかむ ため、トレースの仕方を身につける。 重要! 基本制御構造 1. 連接構造(順次処理) 2. 選択構造(分岐処理) 3. 反復構造(繰り返し処理) これら3つの制御構造の組み合わせであ らゆるアルゴリズムが表現可能。 1-2 連接構造(順次処理) 開始 朝起きる 顔を洗う 歯を磨く 終了 例:朝起きて顔を洗って歯を磨く 上から下へ順番に処理 (一般に)順序が意味を持つ。 1-3 選択構造(分岐処理) 2分岐処理 開始 例:テストの得点Xが50点以上 なら合格、50点未満なら不合 格と表示する。 Xの値を入力 X≧50 X:50 ≧ No Yes “合格”と表示 終了 “不合格”と表示 < 選択構造その2 多分岐処理1 開始 例:テストの得点Xが80点以上なら「よくで きました」、80>X≧50なら「合格」、50点未 満なら「不合格」と表示する。 Xの値を入力 X≧80 Yes No X≧50 No Yes “よくできました” と表示 終了 “合格”と表示 “不合格”と表示 選択構造その3 多分岐処理2 変数の値に応じて処理を分ける。 開始 Xの値を入力 「その他」は省略可 X 0 処理1 1 2 処理2 処理3 終了 その他 処理4 Java言語ではswitch文 で表現 【基礎課題1-1 】 開始 Xを入力すると、それが偶数か 奇数かを表示するアルゴリズム Xの値を入力 Y← X % 2 Y=0 No Yes “偶数です”と表示 終了 “奇数です”と表示 1-4 反復構造(繰り返し処理) 決まった回数の繰り返し 例:腕立て伏せを5回行う。 開始 トレース表 i←1 iの値 No 腕立て伏せ回数 5 1 2 3 4 i≦5 Yes 腕立て伏せをする。 i ← i+1 1 2 3 4 6 5 終了 反復構造その2 トレースとは? アルゴリズム(流れ図)の処理過程をた どって行くこと。 具体的には、変数の値 の変化をたどること。 → トレース表 アルゴリズムの理解 ← トレースが不可 欠 本講義で学習するアルゴリズムを理解で きるかどうか? → 理解できるまでト レースするかどうかにかかっている。 反復構造その3 【基礎課題1-3】 1~5までを順に表示させる 開始 開始 i←1 i i← ←0 i≦5 Yes i≦ i≦4 No Yes i ← i+1 iを表示 i ← i+1 No 終了 iを表示 終了 ※ 「iを表示」と「i ← i+1」を入れ替え 反復構造その4 ループ端記号を使った表現 例:処理AをN回繰り返す (1)列挙型 (2)「変数名:初期値,増分, 終値」 提示型 (3)終了条件提示型 i←1 ループ i=1,2,3,・・・,N ループ i:1,1,N 処理A 処理A ループ ループ ループ i>N (となるまで) 処理A i ← i+1 ループ 理解度チェック → 【基礎課題1-5】 反復構造その5 一般的な終了条件による繰り返し 例:可能な限り腕立て伏せを行う 開始 続行可能 No Java言語ではwhile 文で表現 Yes 腕立て伏せをする。 終了 理解度チェック → 【基礎課題1-4】、【応用課題1-E】 演習にとりかかってください。 少なくとも、基礎課題のチェックは終える こと。 演習の時間内に基礎課題を終了できな かった場合は、必ず次週までに課題を終 えておいて下さい。基礎課題を翌週に持 ち越すと、本科目の修学が困難になりま す。
© Copyright 2024 ExpyDoc