データ構造とアルゴリズム論 第1章 アルゴリズムの表現-流れ図

Slides:



Advertisements
Similar presentations
プログラミング 平成24年1月11日 森田 彦.
Advertisements

プログラミング 平成25年10月29日 森田 彦.
データ構造とアルゴリズム論 第5章 整列(ソート)のアルゴリズム
プログラミング 平成25年12月3日 森田 彦.
プログラミング 平成25年11月19日 森田 彦.
データ構造とアルゴリズム論 第5章 整列(ソート)のアルゴリズム
データ構造とアルゴリズム論 第6章 探索のアルゴリズム
データ構造とアルゴリズム論 第5章 レコード構造を使った処理-クラスの利用
プログラミング 平成24年10月23日 森田 彦.
データ構造とアルゴリズム論 第4章 レコード構造を使った処理-クラスの利用
データ構造とアルゴリズム論 第9章 木構造 平成16年12月21日 森田 彦.
情報基礎A 第7週 プログラミング入門 VBAの基本文法2 データ型・If ~Then~Else
情報数理Ⅱ 平成27年9月30日 森田 彦.
データ構造とアルゴリズム論 第6章 探索のアルゴリズム
データ構造とアルゴリズム論 第2章 配列(構造)を使った処理
プログラミング 平成25年12月10日 森田 彦.
ネットワークプログラミング論 平成28年12月12日 森田 彦.
プログラミング 平成24年10月30日 森田 彦.
プログラミング 平成23年10月5日 森田 彦.
データ構造とアルゴリズム論 第7章 探索のアルゴリズム
データ構造とアルゴリズム論 第9章 木構造 平成17年12月20日 森田 彦.
プログラミング基礎a 第8回 プログラムの設計 アルゴリズムとデータ構造
第7回 条件による繰り返し.
データ構造とアルゴリズム論 第2回目テスト 平成15年12月9日 森田 彦.
データ構造とアルゴリズム論 第8章 再帰処理 平成15年12月2日 森田 彦.
プログラミング 平成25年11月5日 森田 彦.
データ構造と アルゴリズム論 平成29年9月27日 森田 彦.
CGプログラミング論 平成28年4月20日 森田 彦.
プログラミング 平成22年11月24日 森田 彦.
プログラミング 平成23年12月21日 森田 彦.
データ構造とアルゴリズム論 第4章 レコード構造を使った処理-クラスの利用
データ構造とアルゴリズム論 第3章 ファイルを用いたデータ入出力2
データ構造とアルゴリズム論 第3章 ファイルを用いたデータ入出力
第7回 条件による繰り返し.
 情報の授業 アルゴリズムとプログラム(1) Go.Ota.
データ構造とアルゴリズム論 第7章 再帰処理 平成17年12月6日 森田 彦.
データ構造とアルゴリズム論 第6章 整列(ソート)のアルゴリズム
プログラミングⅠ 平成30年10月29日 森田 彦.
ネットワークプログラミング論 平成28年12月19日 森田 彦.
データ構造とアルゴリズム論 第9章 木構造 平成29年12月20日 森田 彦.
データ構造とアルゴリズム論 第9章 木構造 平成30年6月27日 森田 彦.
データ構造とアルゴリズム論 第2回目テスト 平成16年12月14日 森田 彦.
プログラミング基礎a 第8回 プログラムの設計 アルゴリズムとデータ構造
データ構造とアルゴリズム論 第5章 整列(ソート)のアルゴリズム
データ構造とアルゴリズム論 第5章 整列(ソート)のアルゴリズム
プログラミング言語論 第四回 理工学部 情報システム工学科 新田直也.
データ構造とアルゴリズム論 第4章 レコード構造を使った処理-クラスの利用
プログラミングⅠ 平成30年10月15日 森田 彦.
データ構造とアルゴリズム論 第5章 整列(ソート)のアルゴリズム
プログラムの基本構造と 構造化チャート(PAD)
プログラミング 平成22年10月13日 森田 彦.
プログラミングⅠ 平成30年10月22日 森田 彦.
プログラミングⅠ 平成31年1月7日 森田 彦.
プログラミング 平成22年12月15日 森田 彦.
1~15までの数字の中から、 1個の数字を選び、覚えて下さい。
データ構造とアルゴリズム論 第4章 レコード構造を使った処理-クラスの利用
プログラミング 平成24年11月13日 森田 彦.
データ構造とアルゴリズム論 第6章 探索のアルゴリズム
データ構造とアルゴリズム論 第7章 再帰処理 平成16年11月30日 森田 彦.
プログラミング 平成24年10月9日 森田 彦.
プログラミングⅠ 平成30年12月10日 森田 彦.
アルゴリズム入門 (Ver /10/07) ・フローチャートとプログラムの基本構造 ・リスト ・合計の計算
プログラミング基礎演習 第4回.
プログラミング 平成28年11月15日 森田 彦.
データ構造とアルゴリズム論 第9章 連結リスト
プログラミング 平成24年12月11日 森田 彦.
プログラミング 平成28年10月25日 森田 彦.
情報処理Ⅱ 第3回 2004年10月19日(火).
情報処理Ⅱ 2006年10月20日(金).
アルゴリズム ~すべてのプログラムの基礎~.
Presentation transcript:

データ構造とアルゴリズム論 第1章 アルゴリズムの表現-流れ図 データ構造とアルゴリズム論 第1章 アルゴリズムの表現-流れ図 平成15年9月30日 森田 彦

アルゴリズムとは? 問題を解決するための手順 例:1缶110円のジュースの(自動)販売を行う <処理の流れ(アルゴリズム)> 料金を投入する  問題を解決するための手順  例:1缶110円のジュースの(自動)販売を行う <処理の流れ(アルゴリズム)> 料金を投入する 料金が不足していないかどうかを判定し、 料金≧110なら「ありがとうございます」と表示。   それ以外(料金<110)なら「お金が不足しています」と表示。

流れ図による表現 開始 料金を入力 料金≧110 No 「お金が不足しています」と表示 Yes 「ありがとうございました」と表示 終了

プログラムとは?  アルゴリズムをプログラミング言語で表現したもの Javaで記述 C++で記述

本章(本日)の学習のねらい 標準的な流れ図(JIS規格に準拠)の記述の仕方を学ぶ。 流れ図を用いて簡単なアルゴリズムを記述できるようになる。 アルゴリズムの(処理の)流れをつかむため、トレースの仕方を身につける。 重要!

基本制御構造 連接構造(順次処理) 選択構造(分岐処理) 反復構造(繰り返し処理) これら3つの制御構造の組み合わせであらゆるアルゴリズムが表現可能。

1-2 連接構造(順次処理) 例:朝起きて顔を洗って歯を磨く 開始 上から下へ順番に処理 朝起きる (一般に)順序が意味を持つ。 顔を洗う 1-2 連接構造(順次処理) 例:朝起きて顔を洗って歯を磨く 開始 朝起きる 上から下へ順番に処理 (一般に)順序が意味を持つ。 顔を洗う 歯を磨く 終了

1-3 選択構造(分岐処理) 2分岐処理 例:テストの得点Xが50点以上なら合格、50点未満なら不合格と表示する。 No Yes 開始 1-3 選択構造(分岐処理) 2分岐処理 例:テストの得点Xが50点以上なら合格、50点未満なら不合格と表示する。 開始 Xの値を入力 X:50 ≧ < X≧50 No Yes “合格”と表示 “不合格”と表示 終了

選択構造その2 多分岐処理1 例:テストの得点Xが80点以上なら「よくできました」、80>X≧50なら「合格」、50点未満なら「不合格」と表示する。 開始 Xの値を入力 X≧80 No X≧50 No Yes Yes “よくできました” と表示 “合格”と表示 “不合格”と表示 終了

多分岐処理2 選択構造その3 変数の値に応じて処理を分ける。 「その他」は省略可 Java言語ではswitch文で表現 開始 Xの値を入力 0 1 2 その他 処理1 処理2 処理3 処理4 Java言語ではswitch文で表現 終了

【基礎課題1-1 】 Xを入力すると、それが偶数か奇数かを表示するアルゴリズム No Y=0 Yes 開始 Xの値を入力 Y← X % 2 “偶数です”と表示 “奇数です”と表示 終了

1-4 反復構造(繰り返し処理) 決まった回数の繰り返し 例:腕立て伏せを5回行う。 トレース表 開始 i ← 1 iの値 腕立て伏せ回数 1-4 反復構造(繰り返し処理) 決まった回数の繰り返し 例:腕立て伏せを5回行う。 開始 トレース表 i ← 1 iの値 腕立て伏せ回数 4 2 1 3 5 6 No No i≦5 2 3 5 4 1 Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes 腕立て伏せをする。 腕立て伏せをする。 腕立て伏せをする。 腕立て伏せをする。 腕立て伏せをする。 腕立て伏せをする。 腕立て伏せをする。 腕立て伏せをする。 腕立て伏せをする。 腕立て伏せをする。 腕立て伏せをする。 終了 終了 i ← i+1 i ← i+1 i ← i+1 i ← i+1 i ← i+1 i ← i+1 i ← i+1 i ← i+1 i ← i+1 i ← i+1 i ← i+1

トレースとは? アルゴリズム(流れ図)の処理過程をたどって行くこと。 具体的には、変数の値の変化をたどること。 → トレース表 反復構造その2 アルゴリズム(流れ図)の処理過程をたどって行くこと。 具体的には、変数の値の変化をたどること。 → トレース表 アルゴリズムの理解 ← トレースが不可欠 本講義で学習するアルゴリズムを理解できるかどうか? → 理解できるまでトレースするかどうかにかかっている。

【基礎課題1-3】 反復構造その3 1~5までを順に表示させる 開始 開始 i ← i ← 0 i ← 1 No No i≦ i≦4 i≦5 Yes Yes i ← i+1 iを表示 iを表示 終了 i ← i+1 終了 ※ 「iを表示」と「i ← i+1」を入れ替え

ループ端記号を使った表現 反復構造その4 例:処理AをN回繰り返す 理解度チェック → 【基礎課題1-5】 (2)「変数名:初期値,増分,終値」 提示型 (3)終了条件提示型 (1)列挙型 i ← 1 ループi=1,2,3,・・・,N ループ i:1,1,N ループ i>N (となるまで) 処理A 処理A 処理A ループ ループ i ← i+1 ループ 理解度チェック → 【基礎課題1-5】

一般的な終了条件による繰り返し 反復構造その5 例:可能な限り腕立て伏せを行う Java言語ではwhile文で表現 開始 Java言語ではwhile文で表現 続行可能 No Yes 腕立て伏せをする。 終了 理解度チェック → 【基礎課題1-4】、【応用課題1-E】

演習にとりかかってください。 少なくとも、基礎課題のチェックは終えること。 演習の時間内に基礎課題を終了できなかった場合は、必ず次週までに課題を終えておいて下さい。基礎課題を翌週に持ち越すと、本科目の修学が困難になります。