Download presentation
Presentation is loading. Please wait.
1
Raptor 流程圖編程 荔景天主教中學
2
Raptor流程圖編程介紹 視覺編程工具(Visual Programming Tool)
流程圖解譯器(Flowchart Interrupter) Raptor流程圖編程網站(相關資料及下載)
3
程式編寫概念的教學難點 在教授必修部分「基本程式編寫概念」遇到的兩難:
只教流程圖:紙上談兵 教授程式語言:要照顧語法/非課程範圍 只有約20小時處理三個課題:「解難程序」、 「算法設計」、「算法測試」
4
Raptor流程圖編程的優勢 教學層面: 學生利用流程圖及偽代碼來編程,較能集中於構建解難的算法,而不是執著於處理編寫語言的語法。 免費
方便教學示範:容易更改、加入備註等等 照顧學習差異 相比其他編程語言, Raptor的所需的語法(Syntax/Grammer)較少 其他補充: 用戶友好(User-friendly) 能夠縮短建立方案(Project)的時間 圖像化的編程環境提高了程序(Program)的可讀性(Readability)
5
Raptor工作環境簡介 繪製工具視窗 訊息 顯示視窗 變量視窗
6
教學套件操作流程
7
利用Raptor流程圖編程教學的注意事項
軟件只作為輔助角色,學生仍需親手繪畫流程圖 組件與標準繪畫方法有些微差異 迴轉部分須另行解說 小心監察變量內容的變化 真正掌握「空運行」技巧
8
Raptor課程教學(精簡)
9
流程圖編程介紹 Raptor程序是一個有向圖(Directed Graph) 必須要有「Start」和「End」
輸入 把數據及指令 輸入電腦 處理 電腦對輸入的 數據進行運算 輸出 電腦顯示處理 數據的結果
10
甚麼是變量(Variables)? 在主記憶體訂定的一個存貯位置 存貯空間大小視定義類型而定 程序運行時,變量的值是可改變的 主記憶體
名稱:x 類型:數字 名稱:myname 類型:文字
11
變量(Variables) 一般來說,變量在程序運行前, 其數值是未定的 數值的來源通常來自 在程序運行的過程中, 變量的數值或會有所變化
第一個被賦予的值為起始值(initializing a variable) 如應用未定起始值的變量,或會引發運行時錯誤(Runtime Error) 數值的來源通常來自 用戶輸入 電腦載入 在程序運行的過程中, 變量的數值或會有所變化 能夠處理不同的輸入, 才是一個較具意義的程序
12
變量(Variables) 使用變量時須注意的地方 命名限制: 編程的良好習慣 起首字符必須為英文字母
其後的字符可以是英文字母、數字或底橫線,但不可以是其他符號或空白鍵 對:Hello, send2you, it_a_nice_day 錯:2myfriend, iamveryangry! 名字不可與一些內定的預留字(Reserved word)相同 編程的良好習慣 有意義的命名 (e.g. a, exam_mark) 妥善管理變量 (e.g. Average, Avg)
13
甚麼是常數(Constant)? 預設的變量,它的值是不可被改變的 例子:pi, e, true, false, yes, no
True 與 Yes 即是 1. False 與 No 即是 0.
14
考考你! 試指出下列變量是合法 (L)legal,或是不合法的 (I)Illegal。如不合法,試加以解釋。
1) U_2 2) Money$ 3) Thisisaveryveryveryveryverylongname 4) Mickey-Mouse 5) 365_Days 6) Begin 7) End_Of_Data 8) Procedure 9) Is This Identifier Legal 10) Why_Isn’t_This_One_Legal 就RAPTOR編程語言來說,在程序賦予數值之前,變量在產生時是沒有數值的。(True/ False)
15
動手做! 這個程序 x 的最終值是甚麼? 在 x←x*2 下方加上x←x/3, x 的最終值是甚麼?
若把 x←32 改成variable←32, 會有什麼後果?
16
語句(Statement) 語句(Statement)的意思 Raptor包含6種語句
編程語言內的指令句子。當程序執行時,語句能發動某種指定的動作 Raptor包含6種語句 直述結構 (Sequential structure) Input, Output, Assignment, Call, 控制結構 (Control structure) Selection Loop
17
例子一 此程序應用了 Assignment Loop Input Output
18
例子二 此程序應用了 Input Call Selection
19
輸入語句 Input Statement 從用戶得到資料 實現方法: 在程序執行時利用彈出式視窗 收集用戶的數據,並存入變量內
利用提問句(prompt)發問 提問句必須精簡,如有需要應註明單位 Input Text(輸入文字) Input Expression(輸入複句) 例子“Enter a number between ” + low + “ and ” + high + “: ”
20
輸出語句 Output Statement Output Expression (輸出複句) Output Text (輸出文字)
增加可讀性
21
動手做! 試寫一個程序,先顯示 12+34,再顯示”12”+”34”,留意兩次顯示結果有何不同 左圖程序有多少個變量,變量的名稱是什麼?
左圖「+」號在字符處理上代表什麼意思? 試把程序加上詢間用戶嗜好部份,然後輸出句子如下: Hello, John. Nice to meet you! I like running too!
22
指派Assignment Assignment 的用途 Expression(複句) 的定義 Assigment 的句法(Syntax):
改變或取代變量的值 Expression(複句) 的定義 由一系列數值和運算符組合而成的句子串,當它被運算時將產生一個值 Assigment 的句法(Syntax): <Variable> ← <Expression> 或 Set <Variable> to <Expression> <變數名稱> ← <複句> 或 Set <變數名稱> to <複句> 例子: Cost ← (Tax_Rate * Non_Food_Total) + Food_Total 成本 ← (稅率 * 非食物總值) + 食物總值 成本 Variable being assigned (被派入數值的變量) ← Assignment Symbol (派入符號) (稅率 * 非食物總值) + 食物總值 Expression to be evaluated and assigned during run time (複句的值會在機器運算時被運算出來)
23
運算符Operator 表達方式 Bulit in Operator E.g. X/3, Y+7 Function/Method (功能/過程) E.g. sqrt(4.7), sin(2.9) Relational Operator, Logical Operator 只能在 Selection和 Loop使用 Relational Operator只會算出真假(T/F)值, 而Logical Operator只可處理真假值 basic math (基本數學) +, -, *, /, ^, **, rem, mod, sqrt, log, abs, ceiling, floor Trigonometry (三角學) sin, cos, tan, cot, arcsin, arcos, arctan, arccot Relational (關係符) =, !=, /=, <, >, >=, <= Logical (邏輯) and, or, not Miscellaneous (其他) random, Length_of
24
考考你! 計算下列各題的結果 試指出下列各題是
1) 46 / 2 2) 46 / 3 3) 46 rem 3 4) 46 ** 2 5) 12 < 13 6) 35 > 90 7) 120 /= 60*2 8) 46 < 49.5 9) True and False 10) (False and False) or True 11) (45.6 < 32.4) or (14 < 28) 12) 8 < 10 < 20 13) True and 7 14) 4**4 < 15) 試指出下列各題是 (A) Arithmetic operators算術運算子, (L) Logical邏輯運算子, 或是 (R) relational operators關係運算子. 1) != 2) ** 3) / 4) not
25
程序呼召 Procedure Call statements
Procedure包含一堆語句,以完成一個工作(Task) 好處:只需提供輸入,便有相應的輸出,不必為設計程序的內容而煩惱。 呼召方法:提供程序名稱和所需的數據(Data)
26
例子
27
註釋Comments 註釋的主要用途是令程式的閱讀者更容易理解程序的運作,在程序碼較難明、較繁複時最為有效。
註釋部份是不會被電腦執行的,它只供我們在開發時閱讀和參考 加入註釋的方法 滑鼠左鍵點選部件,再按滑鼠右鍵點選 ‘Comment’ 進行設定
28
動手做! 左圖是一個計算圓面積程序的一小部分,試參考它的算法,把它改寫成一個計算圓形周界的程序 把題一的程序改為一個計算半圓周界的程序
另寫一個計算梯形面積的程序 (提示:你需要哪些變量?)
29
控制結構 Control Structure
Sequential Structure(線性結構) 按指令排列,順序執行 Selection Structure(選擇結構) 按條件判斷,分流執行 由條件句判別True或False 例子:某個考試,60分合格, 合格者可獲糖果一粒, 不合格者罰留堂。
30
邏輯表格Logic Table And Table Or Table Expression Result True and True
True and False False False and True False and False Expression Result True Or True True True Or False False Or True False Or False False Not Table 例子: 街燈:晚上8時,又或環境光度少於40,便會開啟。 提款機:密碼正確,提款額不多於六千元,而提款額又不多於結餘,才可提款 Expression Result Not(True) False Not(False) True
31
控制結構 Control Structure
32
控制結構 Control Structure
留意條件的運用
33
控制結構 Control Structure
疊式控制結構
34
考考你! 為下列各題填上相應的字母: Always True 永對(A), Always False 永錯(B), Good 恰當(C)
GR_Score > 100 or GR_Score < GR_Score > 100 and GR_Score < GR_Score < 100 or GR_Score > GR_Score < 100 and GR_Score > 90.
35
動手做! 試編寫一個程序,檢查X變量的數值是1, 2, 或3,並顯示相應的英文字 “ONE”, “TWO”, or “THREE”
試編寫一個程序,能夠作出華氏溫度(Fahrenheit)和攝氏溫度(Celsius)的轉換。 用戶首先選擇那一種換算 (F to C 或 C to F),然後輸入所需數值,程序按照以下公式把結果運算出來: C to F: F = 9/5 C + 32 F to C: C = 5/9 (F – 32)
36
迴轉結構 Iteration Control
迴轉結構的設計是讓我們能夠方便地進行重覆運算動作 一般來說,重覆運算的次數按照以下條件而定 以數字設定執行次數 以某項條件的發生而停止重覆運算 疊式迴轉(Cascading Loop) 永遠迴轉(Infinite Loop) 脫離條件永遠都是No 一般來說,迴轉內的語句應能改動迴轉的脫離條件
37
例子 以數字設定執行次數 次數已知的 視乎需要 以某項條件的發生而停止重覆運算 次數未知的 確定用戶的輸入是合理的
38
考考你! 下列的迴轉有甚麼問題?
39
例子 這個程序有甚麼功用?
40
例子 這個程序有甚麼功用?
41
例子 這個程序有甚麼功用?
42
質數檢驗程序編寫 從用戶處得到一個數字,把數字載入變量“Possible_Prime”內
先假設用戶輸入的數字是質數 (Set “Is_Prime” to True) 迴轉:x由2至 “Possible_Prime”-1 a如果x整除“Possible_Prime”, b顯示x是“Possible_Prime”的因數 c記錄該數不是一個質數 (Set “Is_Prime” to False) 如果 “Is_Prime” is True, 顯示“Possible_Prime”是一個質數
43
從用戶處得到一個數字,把數字載入變量“Possible_Prime”內
先假設用戶輸入的數字是質數 (Set “Is_Prime” to True) 迴轉:x由2至 “Possible_Prime”-1 a如果x整除“Possible_Prime” b顯示x是“Possible_Prime”的因數 c記錄該數不是一個質數 (Set “Is_Prime” to False) 如果 “Is_Prime” is True, 顯示“Possible_Prime”是一個質數
44
選擇與迴轉的考慮 當我們應使用Selection語句還是Loop語句時,我們最好先考慮以下問題:
是否從多項選擇中選取其中一個? (Cascading Selection) 是否有需要執行多於一次? (loop) 能否預知執行指令的次數? (count-controlled-loop)
45
你掌握了嗎? 明白控制結構是編程的一個重要部份
了解 Sequential, Selection, Iteration 控制結構的用途,並能分辨它們的不同之處 明白判別式的二元性及它在控制結構的重要性 能辨識我們應用Selection或Iteration控制結構來處理所面對的問題 能以 Selection或iteration控制結構編寫小型程序 針對 Selection控制結構: 做A與不做A, 做A或B 從A,B,C….選一個 針對 Iteration控制結構: 重覆A多次 能因應情況,選取「限次迴轉」或「條件迴轉」來解決問題 明白一個欠佳的脫離條件,又或未能更新迴轉變量,將產生永遠迴轉
46
考考你! 以下的工作應使用哪種控制結構 Sequential (A) Selection (B1) Cascading Selection (B2), Loop (C) - 顯示某君的中學畢業年度. - 確保用家輸入的身分證號碼是正確的. - 計算學生學科的平均分. - 利用用戶提供的半徑,計算圓形面積. - 把整個程序將要使用的變量都設定為 判斷用戶輸入的是數字、文字還是符號. - 為用戶輸入負號而顯示錯誤訊息 - 按用戶輸入數字,顯示“Odd”或“Even” - 顯示1至100的二次方結果 - 讀取用戶輸入的數據,直至用戶輸入-1
47
參考資料 http://raptor.martincarlisle.com/
Similar presentations