演算法概論 電腦解題實作 國立豐原高中 郭再興.

Slides:



Advertisements
Similar presentations
計算機程式語言實習課.
Advertisements

钢铁是 这样炼成的 长乐航城中学 陈惠芳.
《警察职业道德》课程渗透“三生教育” 说课课件 云南警官学院马列部 黄晓平.
为何教室会伤人? 主讲:李迪.
第六 章 幼儿园的日常生活和节日娱乐活动 第一节 幼儿园日常生活活动.
陳維魁 博士 儒林圖書公司 第九章 資料抽象化 陳維魁 博士 儒林圖書公司.
機 器 車 介 紹 & 實做.
TQC+ JAVA全國教師研習會 PLWeb 程式設計練習平台 簡介.
題目:十六對一多工器 姓名:李國豪 學號:B
機器人設計與應用專題 國立豐原高中 郭再興.
第 1 章 使用 APP INVENTOR 2 開發 ANDROID APP
程式語言的基礎 Input Output Program 世代 程式語言 第一世代 Machine language 第二世代
臺北市立大學 資訊科學系(含碩士班) 賴阿福
程式設計概論 1.1 程式設計概論 程式語言的演進 物件導向程式 程式開發流程 1.2 C++開發工具
直流無刷馬達作動原理 南台科技大學 機械系 陳沛仲.
如何在程式編寫課堂的學習活動中結合STEM相關元素的經驗分享
Chap 1. 智慧型機器人發展概況.
LEGO機器人製作專題 -以MSRDS為例(上).
第一篇 Unix/Linux 操作介面 第 1 章 Unix/Linux 系統概論 第 2 章 開始使用 Unix/Linux
JDK 安裝教學 (for Win7) Soochow University
第1章 認識Arduino.
手機作業系統介紹.
資料庫操作.
LEGO機器人教學 -MRDS為例(下).
國立台灣大學生物產業機電工程研究所 簡君良
R教學 安裝RStudio 羅琪老師.
ASP.NET基本設計與操作 建國科技大學 資管系 饒瑞佶 2007年.
安裝JDK 安裝Eclipse Eclipse 中文化
Programmable System-on-Chip™ Cypress MicroSystems (PSoC™) 簡 介
LEGO機器人製作專題 -以MSRDS為例(上).
Android App簡介及 App Inventor 2體驗 靜宜大學資管系 楊子青
第二章 SPSS的使用 2.1 啟動SPSS系統 2.2 結束SPSS系統 2.3 資料分析之相關檔案 2.4 如何使用SPSS軟體.
四足機器人-進度報告 指導教授: 李博明 組員:4A 沈威城 4A 陳煒傑 4A 賴俊縣
Java 程式設計 講師:FrankLin.
網路安全技術 OSI七層 學生:A 郭瀝婷 指導教授:梁明章.
VS.NET 2003 IDE.
App Inventor 2初體驗 靜宜大學資管系 楊子青
INDEX 資訊學科種子教師研習 課程說明 教學活動計畫.
TA教育訓練 微處理機系統實習.
5min教學錄製-PC Jay Lin 2016.
Working Model 2D 朝陽科技大學 工業設計系 邱相文.
網頁程式概論 建國科技大學資管系 饒瑞佶 2015/9 V1 2016/4 V2 2016/9 V3.
表格(HTML – FORM).
打地鼠(陣列版).
語法:結構 實作:Analog in (VR、光敏+七段顯示電壓) 簡報:廖崇義
第一次Labview就上手 參考書籍: LabVIEW for Everyone (Jeffrey Travis/Jim Kring)
期末考.
電子量角器 撰寫人:董瑩蟬.
第13單元 實習8 Focus-Router-Lamp
智慧型手機程式設計 建國科技大學資管系 饒瑞佶 2011年(992).
六年級電腦科 KompoZer w3.dhps.tp.edu.tw.
MicroSim pspice.
樂高機器人實作 準備工作─組裝簡易型車 NXT-G 初階程式複習 Data Hub 數字轉字串(自製View程式) 變數應用(馬達角度讀取)
表格(HTML – FORM)
電腦概論考題分析 佛學資訊組 碩一 張榮顯.
Video 影像 (VideoPlayer 影像播放器、Camcorder 錄影機) 靜宜大學資管系 楊子青
函數應用(二)與自定函數.
電子學實驗(三) --非反相運算放大器電路
六年級電腦科 我是小導演 影音剪輯Movie Maker
黃影雯副教授講授 E_Mail Address:
資訊隱藏概論 (Introduction to Data Hiding)
ZigBee PRO教學系統 CC2530 實驗.
使用VHDL設計-8x3編碼電路 通訊一甲 B 楊穎穆.
資料擷取與監控應用實務.
資料結構與C++程式設計進階 期末考 講師:林業峻 CSIE, NTU 7/ 15, 2010.
安裝JDK 配置windows win7 環境變數
使用VHDL設計-七段顯示 通訊一甲 B 楊穎穆.
C語言程式設計 老師:謝孟諺 助教:楊斯竣.
微 處 理 機 專 題 – 8051 C語言程式設計 主題:階乘計算
InputStreamReader Console Scanner
Presentation transcript:

演算法概論 電腦解題實作 國立豐原高中 郭再興

遇到問題 ? 了解問題、分析問題、解決問題 解決模式--輸入資料、資料處理、輸出結果 設計演算法--有限性、明確性、效率 使用流程圖、虛擬碼表達演算法的概念 電腦解題教學工具 機器人克服難關問題 機器人資源

引起動機 益智遊戲題目 問題一 過河問題 問題二 河內塔問題 問題三 猜數字遊戲 3

說明猜數字遊戲規則 思考如何解題 將討論的解題法畫成流程圖 討論此策略的優缺點 電腦顯示猜數字 Y 詢問使用者反應 結束 開始 使用者任選一個 0~100 之間的數字X 電腦顯示猜數字 Y 詢問使用者反應 Y太小 輸入”1” Y太大 輸入”2” X = Y 輸入”3” 調整 Y 大一些 調整 Y 小一些 猜對了 結束 說明猜數字遊戲規則 思考如何解題 將討論的解題法畫成流程圖 討論此策略的優缺點

演算法 演算法是解決問題每個步驟的細節與順序,可用圖表(流程圖)、文字(虛擬碼)表達 由有限個步驟所構成 連接各步驟的流程明確、每個步驟意義明確 開始執行後,經過有限步驟會達成目標

猜數字虛擬碼 X <= 出題、任選 0~ 100 之間的整數 Y <= 隨機猜一個數字 While (X< >Y) { If (X > Y) THEN 增加Y值 If (X < Y) THEN 減少Y值 } Display (“猜對了”)

應用流程圖 7

使用「流程圖」的優點 讓人容易了解整個作業流程。 使程式除錯的工作容易進行。 方便程式工作的移交。 有助於程式的修改與維護。

變數與資料型態 資料處理模式 電腦如何儲存資料? 變數與資料型態 成績處理程式練習 資料輸入 -> 處理 -> 資料輸出 平均 = (國+英+數+社)/4 加權平均=(國*3+英*3+數*2+社*2)/10

成績處理程式 ‘宣告變數 Dim A1, A2, A3, A4 as single ‘宣告變數 存放成績 Dim BB as single ‘宣告變數 存放平均成績 ‘輸入 A1 = 75 ‘輸入國文成績 A2 = 84 ‘輸入英文成績 A3 = 77 ‘輸入數學成績 A4 = 92 ‘輸入社會成績 ‘處理 BB = (A1 + A2 + A3 + A4)/4 ‘成績處理 ‘輸出 PRINT “平均成績 =” ; BB ‘輸出平均成績

陣列介紹 一維陣列 二維陣列 三維陣列

成績處理程式 ‘宣告變數 Dim A(5) as single ‘宣告變數 存放成績 Dim BB as single ‘宣告變數 存放平均成績 ‘輸入 A(1) = 75 ‘輸入國文成績 A(2) = 84 ‘輸入英文成績 A(3) = 77 ‘輸入數學成績 A(4) = 92 ‘輸入社會成績 ‘處理 BB = 0 FOR I=1 to 4 BB = BB + A(I) / 4 ‘成績處理 NEXT I ‘輸出 PRINT “平均成績 =” ; BB ‘輸出平均成績

資料結構 資料結構說明 常見資料結構概念

電腦解題教學工具 Game Maker (http://www.yoyogames.com/make) Scratch (http://scratch.mit.edu/) Alice (http://www.alice.org) 益智遊戲 可程式化機器人系統 Next

Game Maker

back

Scratch back

Alice back

可程式化機器人 back

機器人學習套件 Basic Stamp BoeBot (http://www.parallax.com) Basic Commander (http://innovati.com.tw) 科學魔法車 (http://www.me.tnu.edu.tw/~me017/welcome) Lego Mindstorms (http://mindstorms.lego.com) Arduino (http://www.arduino.cc) Microsoft Robotics Developer Studio (MSRDS) RobotBasic (http://www.robotbasic.org)

LEGO Mindstorms NXT 電機控制元件 控制器 伺服馬達 感測器 積木元件 圖控式程式發展環境

電機控制元件 包含NXT 控制器、伺服馬達、感應器等组成 NXT控制器就像人的大腦,伺服馬達好比人的肌肉,提供動力,感應器就像人的五官,偵測外界環境並轉換成數位資料,再傳送回NXT控制器,驅動伺服馬達做出反應 基本運算模式 輸入->處理->輸出 圖控式程式發展環境 back

back

LEGO Mindstorms NXT

選擇結構: 若按下按鈕責執行上半側的指令,反之則走下半側 迴圈結構 開始 物件屬性

程式虛擬碼 while(true) { if (touch_sensor_is_press) { beep(); show_picture_on_screen( ) } 感測器若被壓下,則由喇叭播放音效,螢幕也會顯示笑臉畫面,學生在此可學到基本程式撰寫方法,以及三種基本流程

車身組合

自走車 組合基本車身 前進後退 控制馬達後退一小段距離 控制馬達前近一小段距離 無窮迴圈

單光感循跡 挑戰問題:如何讓機器人使用一個光感應器, 控制兩個馬達,依循地上黑線前進 ?

單光感循跡演算法 演算法說明 step 1 光感應偵測地面亮度 step 2 若偵測到亮-左馬達出力 step 3 若偵測到暗-右馬達出力 不斷重複上面步驟,即可循跡前進

參考程式 右馬達停止 左馬達運轉 光感測到亮,則走上半側路徑控制馬達左轉;反之則走下半側控制馬達右轉 無窮迴圈 NXT 單光感循跡-0.mp4

演算法虛擬碼 while(true) { if (LightSensor_detect_white) { // 若光感測為亮 motorB_stop ( ); //右馬達停 motorC_run( ); //左馬達旋轉 } else { motorB_run( ); //右馬達旋轉 motorC_stop ( ); //左馬達停 }

進階挑戰地圖

討論 討論單光感循跡演算法的特性 優點 缺點 改進演算法 光感在線的左側(或右側),程式也要更改 演算法簡單易懂 容易脫軌 效率不佳 不適合太複雜的路線… 改進演算法 NXT 掃描式單光感循跡.mp4 NXT 單光感循跡.mp4

雙光感循跡 挑戰問題:如何讓機器人使用2個光感應器, 控制兩個馬達,依循地上黑線前進,且到達底線時自動停止 ?

請同學思考如何利用第二個光感應器來循跡,同時還能判斷是否到達底線。 綜合學生的想法,教師解釋如何使用2個光感應器偵測地面的黑色膠帶,達到控制車子依循黑色膠帶前進的演算法 可能會有多種演算法

演算法二 右光感 左馬達 右馬達 左光感 NXT 雙光感循跡.mp4

while(true) { if (left_LightSensor_detect_white) if (right_LightSensor_detect_white) { motorC_run( ); motorB_run( ); } else { motorB_stop( ); } else motorC_stop( );

演算法一 無窮迴圈 若左光感測到亮 則左馬達旋轉; 反之則左馬達停止 若右光感測到亮 則右馬達旋轉; 反之則右馬達停止

while(true) { // 若左光感偵測到地面為亮 if (left_LightSensor_detect_white) motorC_run( ); //左馬達運轉 else motorC_stop( ); //左馬達停止 // 若右光感偵測到地面為亮 if (right_LightSensor_detect_white) motorB_run( ); //右馬達運轉 motorB_stop( ); //右馬達停止 }

進階挑戰 兩點之間折返跑 繞圈前進遇橫線停止 NXT 3光感循跡.flv

機器人學習套件 Basic Stamp BoeBot (http://www.parallax.com) Basic Commander (http://innovati.com.tw) 科學魔法車(http://www.me.tnu.edu.tw/~me017/welcome) Lego Mindstorms (http://mindstorms.lego.com) Arduino (http://www.arduino.cc) Microsoft Robotics Developer Studio (MSRDS) Robot Simulator (http://www.robotsimulator.nl) Lego Mindstorms Simulator (http://ddi.uni-paderborn.de/index.php?L=1&id=4687) RobotBasic (http://www.robotbasic.org)

Basic Stamp BoeBot Basic Stamp 晶片 提供類似BASIC語法的程式發展環境 提供完整感測器模組 完整的自學手冊 支援MSRDS http://www.parallax.com BoeBot.mp4 back

Basic Commander 利基科技自行開發之控制板 軟體發展環境 innoBASIC 提供完整感測器模組 完整的自學手冊 http://www.innovati.com.tw Innobot with Sonar.mp4 back

科學魔法車 東南科技大學曹齊平老師 附有詳細實驗手冊 基本電學實驗 感測器電路實驗 自走車實驗 簡單適合初學者 科學魔法車bridge1.mpg back

Arduino 開放原始碼的電路圖設計,程式開發介面 提供類似Java,C語言的開發環境,可免費下載 可簡單地與感測器,各式各樣的電子元件連接(EX:紅外線,超音波,熱敏電阻,光敏電阻,伺服馬達,…等) 支援多樣的互動程式 ex: Flash、Max/Msp… 低價格的微處理控制器(ATMEGA8-16) USB介面,不需外接電源。另支援使用9VDC 可作為機器人的大腦,接收感測器的訊號,控制馬達動作 利用Arduino,突破以往只能使用滑鼠,鍵盤,CCD等輸入的裝置的互動內容,可以更簡單地達成單人或多人遊戲互動。 http://www.arduino.cc/ http://www.Arduino.TW Arduino 機器人.flv Audino Robot.mp4 back

Microsoft Robotics Developer Studio 微軟的機器人開發環境 Runtime Services (CCR, DSS) Visual Programming Language (VPL) Visual Simulation Environment (VSE) 更視覺化開發工具 更容易編寫程式與除錯 透過視窗或網頁介面控制機器人 利用 3D 模擬的方式實現機器人動作

介紹主題 介紹

MSRDS 啟動模擬畫面.wmv MSRS 模擬走迷宮影片.flv MSRS 模擬 KHR 影片.flv 介紹