CHAP13 演算法概論 高中資訊科技概論 松崗圖書公司.

Slides:



Advertisements
Similar presentations
教學與行政收費 E 化平台建置 總務處出納組 102/4/25. 前言 本校學雜、學分及招生報名費外之公 款繳納方式,由繳款人透過開立於中 信商銀 401 專戶辦理匯款 ( 金融機構或 ATM) 入帳,或親至出納組辦理。 為因應數位化及現代生活習慣,擬設 置繳費 E 化平台,同時收款通路將增 加全國四大超商、線上刷卡或網路.
Advertisements

1 安全乘坐电梯 与大型游乐设施 福建省特检院宁德分院党支部 王祖生 特种设备安全知识进校园.
1 97 年度新住民子女教育研討會 九十七年十月二十九日 柯伯儒 [1] 詹雅琄 [2] [1] [2] [1] [1] 國立台北教育大學課程與教學研究所博士生、 彰化縣二林鎮廣興國小主任 [2] [2] 國立台中教育大學課程與教學研究所研究生、 彰化縣二林鎮廣興國小教師 有效提升國小新住民子女 語文學習的策略.
語文教學分享心得 組員: B 蘇品綺 B 張慈真 B 陳怡君 B 蕭美玲 B 王雅萍 B 蔡佳珍.
高一年级组家长会. 一、考试成绩分析 二、存在的问题 三、给家长的建议 四、科任教师交流 表扬 1 、 年级组语数外成绩优异同学 ( 年级排名 ) 李 芮第 1 名 吕明洋第 2 名 王 越第 3 名 杨天宇第 4 名 张凯燕第 5 名 李 曦第 7 名 魏书静第 8 名 项春怡第 10 名 郑明明第.
沟通交流 活动有序 内容轻松 文明守纪 团结共进 1. 成立家长委员会, 通知 15 人明天下午 3-5 点五楼报告厅 “ 全面育人教育论坛 ” 2. 介绍附中、年级、班级的规范和要求 日常行为规范,高中学习特点,考试、作业要求 3. 开学以来年级、班级开展的工作及安排 开学以来年级、班级开展的工作及安排.
環保 環保問題社會病態行為 從選購產品方面 家庭廢棄物的處理 住家的節約能源方面. 環保問題社會病態行為 社會功利主義過盛,疏忽善盡設備的責任; 缺乏惜福愛物的觀念,以自我為重心,任 意破壞使用資源; 「家」的觀念過度狹隘,只顧裝修生活的 表面,缺乏公同經營人類共有的家 — 地球 的概念; 無正確的理財觀念,而以金錢的謀取為目.
電腦與問題解決 5-1 電腦解題概論 5-2 電腦解題程序 5-3 演算法概論.
1、毛将后代握手言欢泯恩怨 2、美国总统奥巴马访华.
大学生安全防范知识 城北派出所 陶燕雄.
远 方 宽厚肩膀,手指干净而修长。 笑声像大海,眼睛里有阳光。 我想象你,一定就是这样。 还没出现,就已对你爱恋;还没遇见,就先有了思念。
情境导入: 诚信是金 同学们,这是一个非常经典的故事。请大家思考当小男孩真的遇到狼时,为什么没人去救他呢? 你从中得到了什么启示?狼来了.MP4.
金融商品與服務之基本模式 時間 資金投入 風險 金融商品與服務 資金產出 2. 金融商品與服務之基本模式 時間 資金投入 風險 金融商品與服務 資金產出 2.
欢迎各位家长 同样的心情 一样的期待 初二(2)班家长会.
欢迎各位家长的到来! 沟通 交流 协作 初二 班家长会.
家校同心, 师生同行 ——八(五、六)班家长会.
“他的人生观真是一种‘单纯信仰’,这里面只有三个大字:一个是爱,一个是自由,一个是美。他梦想这三个理想的条件能够回合在一个人生里,这是他的‘单纯信仰’。他的一生的历史,只是他追求这个单纯信仰的实现的历史。” ——胡适《追悼志摩》
欢迎各位家长光临 初二(1)班家长会
学习情境七 领队业务 【学习目标】 了解领队工作职责; 掌握领队的工作程序; 掌握领队的服务要点。 【技能目标】
蒙古与苗族的特色建筑 项艺烽小组 最炫民族风.mp3.
親愛的老師您好 感謝您選用本書作為授課教材,博碩文化準備本書精選簡報檔,特別摘錄重點提供給您授課專用。 說明: 博碩文化:
大聲一點又如何? 打耳光、重擊或大聲音會使聲波以極大的力量快速撞擊鼓膜而傷害鼓膜。 事先知道要聽到很大的聲音要張開嘴巴。
一分钟电话营销分享 刘瑾.
金融产品认知 09会计3班 刘碧莲.
國立空中大學台南中心  註冊工作簡報.
用“自言自语法”提高学生 英语口头表达能力 李奉栖.
热烈欢迎您 参加家长会!.
當那時候,末底改坐在朝門,王的太監中有兩個守門的,辟探和提列,惱恨亞哈隨魯王,想要下手害他。(斯2:21)
欢迎各位家长 参加初一八班的家长会!.
通州市教研室 王作良 邮箱 06高考复习讲座 通州市教研室 王作良 邮箱
反思,调整学习方法 迎接中考的挑战 九(7)班.
課程名稱:程式設計 授課老師:________
大学生安全防范教育.
大学生安全防范教育 济宁职业技术学院 安全保卫处.
校園霸凌事件處理、申復流程暨狀況模擬 林華杉教官 此範本可作為群組設定中簡報訓練教材的起始檔案。 章節
斑马线上的安全学问 学校:平安二小 班级:四年级(1)班 姓名:张海超 时间:2016年6月21日.
令我后悔的一件事.
热烈欢迎各位家长 初二(1)班
感受柏林禅寺—— 华莲的日记 2006年6月9日 周五 多云
第十课我的朋友圈.
节日安全指导手册.
网点常规审计管理办法.
台南市石門國民小學 九十八學年度上學期 作文教學成果
2-1熟記網路交友的注意事項 2-2分析各種網路交友的錯誤心態 2-3認識各種網路交友的正確方法
1-1 電腦的起源 1-2 電腦的演進 1-3 電腦的種類 1-4 電腦與生活
当那时候,末底改坐在朝门,王的太监中有两个守门的,辟探和提列,恼恨亚哈随鲁王,想要下手害他。(斯2:21)
程式撰寫流程.
第三章 結構化程式設計 授課老師:___________.
電腦解題─流程圖簡介 臺北市立大同高中 蔡志敏老師.
程式設計 老師:戴自強 助教:楊斯竣.
陳維魁 博士 儒林圖書公司 第五章 控制結構 陳維魁 博士 儒林圖書公司.
鄧姚文 資料結構 第一章:基本概念 鄧姚文
学习目标 1、知道家中被盗后要保护现场; 2、了解一些防盗的小技巧。. 学习目标 1、知道家中被盗后要保护现场; 2、了解一些防盗的小技巧。
15-16 水運會 維多利亞公園游泳池 4月30日 (星期六) 9:00-12:30.
2019/4/26 值得您列入生涯規劃的 一個重要選項 參加國家考試 考選部國家考試宣導小組.
歐巴桑症候群 *** 歐巴桑症候群***.
Microsoft Visio 2002 實用簡單的繪圖軟體 第八組.
資料結構簡介 綠園.
第二章 会计要素和会计等式 会计要素; 会计等式; 学习目标.
学习目标 1、知道家中被盗后要保护现场; 2、了解一些防盗的小技巧。. 学习目标 1、知道家中被盗后要保护现场; 2、了解一些防盗的小技巧。
單元名稱:結構化程式設計 報告人 劉洲溶.
我會看年曆.
迴圈(重複性結構) for while do while.
判斷(選擇性敘述) if if else else if 條件運算子.
網路智慧財產權 著作權法.
106學年度四技二專技優甄審入學報名說明 1 1.
孙 权 劝 学 --《资治通鉴》 随县炎帝学校 谭芳.
13-1 電腦可以協助解決哪些問題 13-2 電腦解題簡介 13-3 電腦解題規劃-演算法 13-4 認識資料結構
資格審查登錄系統-首次登入設定通行碼 若考生先前已於「繳費身分審查系統」設定過通行碼,則無須再行設定,直接登入系統即可.
Presentation transcript:

CHAP13 演算法概論 高中資訊科技概論 松崗圖書公司

本章目錄 13-1 演算法簡介 13-2 演算法表示方法 一、演算法的基本結構 二、演算法的表示 13-3 演算法與電腦解題

13-1 演算法簡介

13-1 演算法簡介 使用電腦的目的就是要解決問題,為了解決問題, 電腦要能依照給定的步驟執行,這些執行的步驟就 是演算法的概念 13-1 演算法簡介 使用電腦的目的就是要解決問題,為了解決問題, 電腦要能依照給定的步驟執行,這些執行的步驟就 是演算法的概念 演算法 (Algorithm) 是資訊科學中重要的領域之一, 也是使用電腦解決問題所不可或缺的方法

13-1 演算法簡介 演算法是一套解決 問題的程序和方法, 不但使用在日常生 活,也使用在每天 的學習活動 製作蛋糕的食譜

13-1 演算法簡介 在資訊科學的世界中,許多領域常會用到演算 法。使用電腦一定會用到演算法,例如 壓縮檔案時,會使用到資料壓縮的演算法 13-1 演算法簡介 在資訊科學的世界中,許多領域常會用到演算 法。使用電腦一定會用到演算法,例如 壓縮檔案時,會使用到資料壓縮的演算法 將 CD 音樂轉成 MP3 檔案時,就會使用到聲 音格式轉換的演算法 上網搜尋資料時,就會使用到資料搜尋的演算 法 收發電子郵件時,就會用到許多網路相關的演 算法

13-1 演算法簡介 演算法操作步驟的特性: 輸入 (Input) 要有零個或零個以上的外部輸入值 13-1 演算法簡介 演算法操作步驟的特性: 輸入 (Input) 要有零個或零個以上的外部輸入值 輸出 (Output) 經過演算法處理後,至少會有一個或一個以上的輸出結 果 明確性 (Definiteness) 每一個處理動作都必須明確,不可含糊混淆,不同的人 解讀,都可以得到同樣的結果 有限性 (Finiteness) 必須在有限的步驟或時間內結束 有效性 (Effectiveness) 演算法的處理動作必須是有效且具體可行的,同時能讓 使用者使用紙筆計算獲得答案

13-1 演算法簡介 一個演算法是明確、有效、最終會結束 的可執行步驟 因此演算法可以定義成: 13-1 演算法簡介 因此演算法可以定義成: 一個演算法是明確、有效、最終會結束 的可執行步驟 正確的演算法,應該能夠將輸入的資料,經過 電腦有限次的運算後,得到所要的輸出資料, 且能完全符合上述的五個特性

13-1 演算法簡介 檢驗正確的演算法

13-1 演算法簡介 每個人的思考方式不同,設計出來的演算法, 也可能會不同,例如按高矮次序排隊

13-2 演算法表示方法

13-2 演算法表示方法 演算法的表示方法是指透過人類易懂的自然語 言或文字符號,將電腦解題執行的步驟、邏輯 判斷或流程進行全盤推演,用以表示出解決問 題的方法。

一、演算法的基本結構 循序 (Sequence) 結構 選擇 (Selection) 結構 重複 (Iteration) 結構 依先後順序,一個步驟接著一個步驟依序執行。 選擇 (Selection) 結構 依據不同的條件,選擇不同的解題步驟執行。 重複 (Iteration) 結構 部分解題步驟需要反覆執行,直到符合或是不符合某 一條件式時,才會離開重複執行的部份。 重複結構也常被稱為「迴圈 (Loop)」 。

一、演算法的基本結構 循序 (Sequence) 結構 例如兩個杯子內的水互相交換的演算法,可使用文字 描述如下:

一、演算法的基本結構 選擇 (Selection) 結構 較複雜的問題,通常無法只使用循序結構解決, 因此解題的演算法,必須能依據不同的條件, 選擇不同的解題步驟,這就是選擇結構的功能

一、演算法的基本結構 例如考試成績高於 90 分顯示 Excellent 的演算法,可以描述為 選擇 (Selection) 結構 單向選擇結構 例如考試成績高於 90 分顯示 Excellent 的演算法,可以描述為

一、演算法的基本結構 選擇 (Selection) 結構 雙向選擇結構 例如根據考試成績判斷是否及格的演算法可以描述如下:

一、演算法的基本結構 重複 (Iteration) 結構 重複結構是指演算法中,某一區塊的解題步驟需要反 覆執行,直到符合或是不符合某一條件式時,才會離 開重複執行的部份,這些條件式也是由邏輯判斷式所 組成的。重複結構也常被稱為「迴圈 (Loop)」

一、演算法的基本結構 重複 (Iteration) 結構 前測式重複結構 例如欣賞音樂會的聽眾入場的演算法,可用文字描述如下

一、演算法的基本結構 重複 (Iteration) 結構 後測式重複結構 例如捷運購票機購票的演算法,可用文字描述如下

一、演算法的基本結構 結構化設計 電腦解題中,使用「結構化設計」的演算法是很重要 的一項設計方法,它具有和模組化設計相同的優點, 所以常常被使用在電腦解題上 結構化設計的要素: 使用循序、選擇和重複三種基本結構 使用由上而下的解題方法設計 模組間應具有高度的獨立性,彼此不會互相影響

二、演算法的表示 文字 (自然語言) 流程圖 (Flowchart) 虛擬碼 (Pseudo Code)

二、演算法的表示 文字 使用自然語言來表示演算法,使用方便,最接近人類 的使用習慣。 但敘述易過於冗長,使用的詞彙認知若不同,易造成 誤解; 自然語言的種類繁多,不同的使用者常會發生認知差 異,因此用以表達演算法,會比較不精確

二、演算法的表示 流程圖 (Flowchart) 流程圖的功能是將解決問題的順序與步驟,使 用特定的圖形和符號表達出來。 為了方便流通與閱讀,流程圖的符號是固定且 統一的,每個符號都有其特殊意義,閱讀時很 容易一目了然

二、演算法的表示 流程圖 的符號

二、演算法的表示 循序結構的表示圖

二、演算法的表示 選擇結構的表示圖

二、演算法的表示 重複結構的表示圖

二、演算法的表示 流程圖 日常生活許多演算法都可 以使用流程圖表示,例如 大富翁遊戲的簡易規則

二、演算法的表示 流程圖 日常生活許多演算法都可 以使用流程圖表示,例如 大富翁遊戲的簡易規則 較複雜的演算法可使用模 組化表示,先用較大模組 的流程圖表示解題的演算 法,然後再逐步細緻化, 將各個大模組細分成多個 小模組,每個小模組再使 用各別的流程圖描述

二、演算法的表示 流程圖 以常用的自動櫃員機 ATM 為例,其簡易流程 圖可描述如右,其中「更 改密碼」與「提款」兩項 作業的模組,可另行使用 流程圖說明

二、演算法的表示 流程圖的優缺點 流程圖具有許多優點,但複雜的流程圖中,如果箭頭 符號太多交錯時,會使其所代表的演算法結構不易理 解,大型軟體系統常使用流程圖來表示系統的結構

二、演算法的表示 流程圖的繪製軟 體 文書處理、試算表、 或簡報軟體內建的繪 圖功能,通常可提供 繪製簡易的流程圖 複雜的流程圖可以用 專業的繪製軟體,例 如免費軟體 Dia、免 費的線上繪製流程圖; 或使用 Microsoft Visio 等軟體

二、演算法的表示 虛擬碼 (Pseudo Code)※ 虛擬碼是一種介於自然語言與程式語言的敘述,使用 不正規且較直覺的符號,在演算法發展過程中,將問 題解決的邏輯表達出來。其撰寫與修改都比流程圖容 易,且沒有一定的語法標準,也不受限於某一種特定 的程式語言,通常是由使用者以特定的關鍵字、簡潔 的敘述或運算式來表示。

二、演算法的表示 使用虛擬碼的目的包含: 虛擬碼 (Pseudo Code)※ 因為程式語言不容易直接寫出完整的解題架構, 且較缺乏直覺性,使用虛擬碼可以使程式設計師 不用分心於複雜的程式語言語法,能專注於問題 解決的處理過程。 寫作方便、敘述清晰、方便閱讀整體解題架構。 容易轉化成電腦程式。

二、演算法的表示 虛擬碼 (Pseudo Code)※ 使用虛擬碼時,常會使用指定敘述 (Assignment Statement),將運算結果儲存起 來,本單元將以符號 「←」 來表示指定的意思, 指定敘述的表示法如下:

二、演算法的表示 虛擬碼 (Pseudo Code)※ 其中變數是用來表示資料的名稱,所以上頁的表示式 可以說成是「將運算式的值指定給名稱」。例如

二、演算法的表示 基本結構 循序結構 相對應的例子如

二、演算法的表示 基本結構 選擇結構 相對應的例子如

二、演算法的表示 基本結構 重複結構 相對應的例子如

二、演算法的表示 巢狀結構 巢狀結構 (Nested Structure) 是在選擇或重複 結構中,包含其它選擇或重 複結構。 例如在 if ... then ... else 結構內又有 if ... then ... else 結構;或在 while ... do ... 結構內又有 if ... then ... else 結構

二、演算法的表示 巢狀結構 例如要依天氣狀況,決定活動項目的演算法,可以表示 如下

二、演算法的表示 巢狀結構 使用虛擬碼表示演算法時,應該適度縮排,以增加可讀 性,使演算法更容易除錯,例如

二、演算法的表示 巢狀結構 使用虛擬碼表示模組時,本單元將以下列方式表示一個完 整的模組,其中程序名稱代表模組的名稱。當虛擬碼的某 個敘述需要執行模組時,只要以使用「呼叫程序 程序名 稱」表示就可以了

二、演算法的表示 巢狀結構 例如簡易 ATM 的例子中,可以使用虛擬碼定義「提款 作業」和「更改密碼作業」兩個模組

二、演算法的表示 巢狀結構 完整的簡易 ATM 的電腦解題演算法,可以使用下列虛 擬碼表示

13-3 演算法與電腦解題

13-3 演算法與電腦解題 進行電腦解題時,要先針對所要解決的問題,形 成解題的概念,再將這些概念使用演算法表示出 來,最後再將演算法轉化成程式,讓電腦可以執 行,求出問題的解答

13-3 演算法與電腦解題 分析演算法是在不同的輸入大小時,計算該演算 法所執行的基本運算次數。當輸入資料的情況不 同時,許多演算法的執行次數也會不同。通常會 分析以下三種情形: 1.最差情形:演算法執行基本運算次數的最大值 2.最佳情況:演算法執行基本運算次數的最小值 3.平均情況:演算法執行基本運算次數的平均值

13-3 演算法與電腦解題 演算法的優劣和問題解決的品質息息相關,例 如 13-3 演算法與電腦解題 演算法的優劣和問題解決的品質息息相關,例 如 具有高效率和能搜尋到更多正確資料之演算法 的搜尋引擎,能提供更快速、更正確的搜尋資 料 更嚴密的加密演算法,將更能保障資料在網路 傳輸時的安全性 更有效率的排程演算法,將能為航空公司或貨 運公司設計出最省錢的交通路徑

13-3 演算法與電腦解題 並不是所有問題都可以使用電腦解決的,有些 問題是無法使用演算法解決的,例如判斷一個 程序是否會在有限的時間之內結束運行的問題, 便無法使用電腦解題

13-3 演算法與電腦解題 在可以使用電腦解決的問題中,有一部分問題 是可以找到具有較高執行效率的演算法,例如 溫度單位間的轉換、閏年的判斷等,這些問題 的演算法,通常可以在有限的時間內完成

13-3 演算法與電腦解題 有些問題,看起來似乎很容易使用電腦解決,但是實 際上,卻不容易找到一個有效率的演算法,即使使用 高效率的電腦,也很難找到最佳解,例如

13-3 演算法與電腦解題 貨運路線問題 要找出送貨的最短路徑,先要將所有可能的送貨路徑列出,再計算每條路徑的距離,才能找出最短的送貨路徑與距離。

13-3 演算法與電腦解題 貨運路線問題 如果使用電腦找出運送貨物到 20 家便利商店的最短路 徑,若電腦每秒鐘可排一條運送的路徑,共需要 7.68 × 1010 年 (一年約 3.15 × 107 秒)。若電腦每秒可排 一百萬(106)條路徑,也要 76,800 年才能找到最佳解。 即使使用更快的電腦,或使用更多部電腦同時平行處理, 所得到的效果也很有限,要找出此類問題更有效率的演 算法,有賴更進一步研究。

13-3 演算法與電腦解題 以輾轉相除法求兩數最大公因數

13-3 演算法與電腦解題 以輾轉相除法求兩數最大公因數-問題分析

13-3 演算法與電腦解題 以輾轉相除法求兩數最大公因數-解題方法 使用文字表示

13-3 演算法與電腦解題 以輾轉相除法求兩數最大公因數-解題方法 使用文字表示-測試與修正

13-3 演算法與電腦解題 以輾轉相除法求兩數最大公因數-解題方法 使用流程圖表示

13-3 演算法與電腦解題 以輾轉相除法求 兩數最大公因數 -解題方法 使用流程圖表示- 測試與修正

13-3 演算法與電腦解題 以輾轉相除法求兩數最大公因數-解題方法 使用虛擬碼表示

13-3 演算法與電腦解題 以輾轉相除法求兩數最大公因數-解題方法 使用虛擬碼表示-測試與修正

本章內容結束