《RAPTOR程序設(shè)計教程谷風(fēng)詳析》由會員分享,可在線閱讀,更多相關(guān)《RAPTOR程序設(shè)計教程谷風(fēng)詳析(55頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、RAPTOR程序設(shè)計基礎(chǔ)可視化計算1特制分析學(xué)習(xí)目標(biāo)為什么學(xué)習(xí)RAPTOR系統(tǒng)?RAPTOR程序設(shè)計環(huán)境有那些基本概念? 如何使用程序設(shè)計進(jìn)行計算問題的求解?2特制分析為什么要學(xué)習(xí)RAPTOR?RAPTOR(the Rapid Algorithmic Prototyping Tool for Ordered Reasoning-用于有序推理的快速算法原型工具),是一種基于流程圖仿真的可視化的程序設(shè)計環(huán)境,為程序和算法設(shè)計的基礎(chǔ)課程的教學(xué)提供實(shí)驗(yàn)環(huán)境使用RAPTOR設(shè)計的程序和算法可以直接轉(zhuǎn)換成為C+、C#、Java等高級程序語言,這就為程序和算法的初學(xué)者鋪就了一條平緩、自然的學(xué)習(xí)階梯3特制分析
2、使用RAPTOR的理由可以在最大限度地減少語法要求的情形下,幫助用戶編寫正確的程序指令程序就是流程圖,可以逐個執(zhí)行圖形符號,以便幫助用戶跟蹤指令流執(zhí)行過程容易掌握用RAPTOR可以進(jìn)行算法設(shè)計和驗(yàn)證,從而使初學(xué)者有可能理解和真正掌握“計算思維”4特制分析RAPTOR基本程序環(huán)境基本界面基本符號變量顯示區(qū)“Main”的初始狀態(tài)調(diào)速滑塊程序輸出區(qū)域5特制分析四種基本符號/語句目的目的符號符號名稱名稱說明說明輸入輸入語句輸 入 數(shù) 據(jù) 給一個變量變量處理賦值語句使 用 各 類 運(yùn)算 來 更 改 的變量變量的值處理過程調(diào)用執(zhí) 行 一 組 在命 名 過 程 中定義的指令輸出輸出語句顯 示變 量變 量的值
3、。6特制分析變量變量(variable)表示的是計算機(jī)內(nèi)存中的位置,用于保存數(shù)據(jù)值在任何時候,一個變量只能容納一個值在程序執(zhí)行過程中,變量的值可以改變命名:以字母開頭,由字母、數(shù)字、下劃線組成7特制分析變量賦值過程說明說明X的值的值程序程序當(dāng)程序開始時,沒有任何變量存在未定義第一個賦值語句,X32,分配數(shù)據(jù)值32給變量X32下一個賦值語句,XX +1,檢索到當(dāng)前X的值為32,給它加1,并把結(jié)果33給變量X33下一個賦值語句,XX * 2,檢索到X當(dāng)前值為33,乘以2,并把結(jié)果66給變量X668特制分析RAPTOR變量值的設(shè)置基本原則:任何變量在被引用前必須存在并被賦值變量的類型由最初的賦值語句
4、所給的數(shù)據(jù)決定設(shè)置方法通過輸入語句賦值通過賦值語句的中的公式運(yùn)算后賦值通過調(diào)用過程的返回值賦值9特制分析RAPTOR數(shù)據(jù)類型數(shù)值(Number):如12,567,-4,3.1415,0.000371字符串 (String):如“Hello, how are you?”, “James Bond”, “The value of x is: ”注意:本系統(tǒng)不能使用漢字字符!10特制分析變量報錯的原因未定義引用11特制分析變量報錯的原因拼寫錯12特制分析不同類型的數(shù)據(jù)不可比較13特制分析RAPTOR常量RAPTOR定義了四個常量(Constant)下列四個符號取值為固定值,不可更改,只能引用pi(圓
5、周率) 定義為 3.1416e (自然對數(shù)的底)定義為 2.7183true /yes(布爾值: 真) 定義為 1false/no(布爾值:假) 定義為 014特制分析給程序增加語句符號在“start”和“End”之間的箭頭上點(diǎn)鼠標(biāo)右鍵,在快捷菜單可以添加語句符號。15特制分析輸入(Input)(Input)語句輸入語句的編輯(Edit)對話框提示部分變量部分16特制分析輸入(Input)(Input)語句輸入語句在流程圖中顯示的狀態(tài)運(yùn)行時對話框17特制分析輸出語句 執(zhí)行輸出語句將在主控(Master Console)窗口顯示輸出結(jié)果輸出的結(jié)果可以使用或不使用換行操作其中The Number
6、Is:是輸出語句的提示部分,為文本型數(shù)據(jù)兩端加雙引號,+ 表示連接后面的內(nèi)容,n 兩端無雙引號表示它是一個變量。End current line 選中表示下一個輸出語句將另起一行。注意:提示部分文字只能用英文,不支持漢字。18特制分析輸出語句 運(yùn)行程序,點(diǎn)擊工具欄的在輸入框輸入數(shù)字:5輸出結(jié)果出現(xiàn)在主控窗口。19特制分析賦值語句(編輯)在輸入語句和輸出語句之間插入賦值符號,雙擊Set部分為接受賦值的變量或To部分為表達(dá)式20特制分析賦值語句(顯示)流程圖中的賦值語句21特制分析表達(dá)式可以是任何計算單個值的簡單或復(fù)雜公式是值(無論是常量或變量)和運(yùn)算符的組合。 例如,考慮下面的兩個例子:(1)x
7、 (3+9)/3(2)x 3+(9/3)22特制分析內(nèi)置運(yùn)算符和函數(shù) 數(shù)學(xué)運(yùn)算: +,-,*,/,*(加、減、乘、除、乘方)rem, mod(求余),sqrt(開平方)log, abs, (對數(shù),絕對值)ceiling, floor (向下取整,向上取整)23特制分析內(nèi)置運(yùn)算符和函數(shù)三角函數(shù):sin,cos,tan;正弦正弦 ,余弦余弦 ,正切正切 cot,arcsin,arccos;余切余切 ,反正弦反正弦 ,反余弦反余弦 arctan, arccot;反正切反正切 ,反余切反余切 24特制分析內(nèi)置運(yùn)算符和函數(shù)random,偽隨機(jī)數(shù) Length_of 求數(shù)組元素個數(shù),求字符串長度25特制分
8、析表達(dá)式計算的“優(yōu)先順序” 1.計算所有函數(shù)的值;2.計算括號中表達(dá)式;3.計算乘冪(,*);4.從左到右,計算乘法和除法,最后從左到右,計算加法和減法。26特制分析注釋 注釋本身對計算機(jī)毫無意義,并不會被執(zhí)行。注釋的目的是增強(qiáng)程序的可讀性,幫助他人理解你所設(shè)計的程序或算法 27特制分析一個帶注釋的算法注釋的四種類型:1.編程標(biāo)題2.分節(jié)描述3.邏輯描述4.變量說明28特制分析選擇控制可能性可能性 1可能性可能性2Statement 1Statement 2aStatement 3Statement 1Statement 2bStatement 3當(dāng)程序執(zhí)行時,如果決策的結(jié)果是“Yes”(Tr
9、ue),則執(zhí)行左側(cè)分支如果結(jié)果是“No”(False),則執(zhí)行右側(cè)分支29特制分析選擇控制注意選擇控制語句的兩個路徑之一可能是空的,或包含多條語句選擇控制結(jié)構(gòu)在英語環(huán)境中被稱為“if-if-thenthen”結(jié)構(gòu)30特制分析決策表達(dá)式?jīng)Q策表達(dá)式(Decision Expressions)是一組值(常量或變量)和關(guān)系運(yùn)算符的結(jié)合, 期望得到Y(jié)ES/NO這樣的結(jié)果關(guān)系運(yùn)算符(=、 / =、 、 =),必須針對兩個相同的數(shù)據(jù)類型值比較例如,3 = 4或Wayne = Sam是有效的比較,但3 = Mike則是無效的31特制分析決策表達(dá)式中的運(yùn)算符說明運(yùn)算說明例=等于3 = 4 結(jié)果為 No(fals
10、e)!=/=不等于3 != 4結(jié)果為Yes(true)3 /= 4結(jié)果為 Yes(true)小于3 4結(jié)果為Yes(true)=小于或等于3 大于3 4結(jié)果為No(false)=大于或等于3 = 4結(jié)果為No(false)and與(3 4) and (10 20)結(jié)果為Yes(true)or或(3 20) 結(jié)果為Yes(true) not非not (3 4)結(jié)果為No(false)32特制分析級聯(lián)( (嵌套) )選擇控制在選擇結(jié)構(gòu)里面插入選擇結(jié)構(gòu)33特制分析循環(huán)控制循環(huán)(loop)控制語句允許重復(fù)執(zhí)行一個或多個語句,直到某些條件變?yōu)檎嬷担═rue)菱形符號中的表達(dá)式結(jié)果為“No”,則執(zhí)行“No
11、”的分支,這將導(dǎo)致循環(huán)語句和重復(fù)要重復(fù)執(zhí)行的語句可以放在菱形符號上方或下方循環(huán)控制結(jié)構(gòu)在英語環(huán)境中被稱為“While-doWhile-do”結(jié)構(gòu)34特制分析循環(huán)測試在循環(huán)語句中,究竟是先計算后測試,還是先測試后計算,或者在計算的過程中間進(jìn)行測試?前序測試(Pre-test)后續(xù)測試(Post-test)中序測試(Intermediate-test)35特制分析刪除圖的Statement 2Statement1為前置條件Statement 3是主循環(huán)體如果進(jìn)入了Statement3,測試條件也必須由這一部分進(jìn)行修改;前序測試36特制分析中序測試Statement2是主循環(huán)體之一而測試條件也是在S
12、tatement 2中產(chǎn)生Statement3是主循環(huán)體之二37特制分析后續(xù)測試刪除和Statement3Statement2是主循環(huán)體而測試條件也是在Statement 2中產(chǎn)生;38特制分析輸入驗(yàn)證循環(huán)之一中序測試39特制分析輸入驗(yàn)證循環(huán)之二40特制分析計數(shù)循環(huán)循環(huán)按特定的次數(shù),來執(zhí)行某個代碼塊一個著名的縮寫 I.T.E.M (Initialize, Test, Execute, Modify,初始化,測試,執(zhí)行,和修改)表示可以用來檢查一個循環(huán)計數(shù)器變量使用是否正確的基本過程41特制分析典型的循環(huán)錯誤42特制分析計數(shù)控制循環(huán)之一前序測試43特制分析計數(shù)控制循環(huán)之二后序測試44特制分析RA
13、PTOR子程序與子圖定義與調(diào)用在計算機(jī)科學(xué)中,將實(shí)際問題抽象化是解決問題的關(guān)鍵要素之一一項(xiàng)研究成果表明,人類的大腦平均只能同時積極關(guān)注約4件事情,大大少于以往研究所得的7件事情的結(jié)論為了解決復(fù)雜的問題,必須能夠研究問題的“主要方面(big issues)”45特制分析組合數(shù)求解很容易看到,求組合數(shù)需要多次求階乘,這會造成許多重復(fù)的代碼,現(xiàn)在將求階乘代碼獨(dú)立出主程序,定義為一個子程序,在主程序運(yùn)行時,需要計算某數(shù)的階乘時就調(diào)用子程序,從而簡化整個軟件的組成,使結(jié)構(gòu)更清晰。46特制分析47特制分析創(chuàng)建RAPTOR子程序子程序如同一個加工廠,輸入原材料,然后按設(shè)計要求處理原材料,輸出產(chǎn)成品子程序的原
14、材料就是一些變量,例如(in:char),為統(tǒng)計子程序輸入測試樣本子程序的產(chǎn)成品也是變量,例如(out: count),向調(diào)用它的程序返回統(tǒng)計結(jié)果其中,in, out表示子程序的輸入輸出參數(shù)48特制分析子程序定義子程序定義界面上的接口參數(shù)稱為“形式參數(shù)”RAPTOR的子程序參數(shù)不得超過6個子程序參數(shù)可以是單個變量,也可以是數(shù)組49特制分析一個設(shè)計完成的子程序50特制分析過程調(diào)用語句(編輯) 編輯對話框注意已有過程提示51特制分析過程調(diào)用語句(顯示)注意,內(nèi)置過程,子圖,子程序的調(diào)用使用同樣的語句,但子圖沒有參數(shù);內(nèi)置過程或子程序需要參數(shù)52特制分析子程序的調(diào)用如要調(diào)用子程序,可以通過調(diào)用語句并給子程序的接口賦予“實(shí)際參數(shù)”進(jìn)行實(shí)際參數(shù)的名與形式參數(shù)的可以不同實(shí)際參數(shù)的數(shù)據(jù)類型則必須與形式參數(shù)的相同53特制分析實(shí)參形參54特制分析End of ch1-155特制分析