RAPTOR流程圖編程_第1頁(yè)
RAPTOR流程圖編程_第2頁(yè)
RAPTOR流程圖編程_第3頁(yè)
RAPTOR流程圖編程_第4頁(yè)
RAPTOR流程圖編程_第5頁(yè)
已閱讀5頁(yè),還剩69頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、RAPTOR程序設(shè)計(jì)基礎(chǔ),1,為什么要學(xué)習(xí)程序設(shè)計(jì)?,由于計(jì)算思維的核心之一是算法思維,同時(shí)算法思維也是計(jì)算機(jī)科學(xué)的精髓 而算法思維的實(shí)現(xiàn)離不開(kāi)程序設(shè)計(jì),所以對(duì)于計(jì)算思維的學(xué)習(xí)和認(rèn)識(shí),必須從程序設(shè)計(jì)開(kāi)始,2,計(jì)算思維的根本內(nèi)容,計(jì)算思維最根本的內(nèi)容,即其本質(zhì)(Essence)是抽象(Abstraction)和自動(dòng)化(Automation) 計(jì)算思維中的抽象完全超越物理的時(shí)空觀,并完全用符號(hào)來(lái)表示 抽象和自動(dòng)化 行為將貫徹課程的始終,3,什么是可視化程序設(shè)計(jì)?,可視化(Visual)程序設(shè)計(jì)是一種全新的程序設(shè)計(jì)方法,一般可視化程序主要是指編譯環(huán)境的可視化; 程序設(shè)計(jì)人員利用開(kāi)發(fā)環(huán)境本身提供各種可

2、視化的控件、方法和屬性等,像搭積木一樣構(gòu)造出應(yīng)用程序的各種界面 典型的可視化程序設(shè)計(jì)環(huán)境如Visual Basic,4,Visual Basic 6.0界面,5,為什么要使用RAPTOR?,RAPTOR(the Rapid Algorithmic Prototyping Tool for Ordered Reasoning-用于有序推理的快速算法原型工具),是一種基于流程圖的可視化程序設(shè)計(jì)環(huán)境,為程序和算法設(shè)計(jì)的基礎(chǔ)課程教學(xué)提供實(shí)驗(yàn)環(huán)境 使用RAPTOR設(shè)計(jì)的程序和算法可以直接轉(zhuǎn)換成為C+、C#、Java等高級(jí)程序語(yǔ)言,這就為程序和算法的初學(xué)者鋪就了一條平緩、自然的學(xué)習(xí)階梯,6,使用RAPTO

3、R的理由,可以在最大限度地減少語(yǔ)法要求的情形下,幫助用戶編寫正確的程序指令 程序就是流程圖,可以逐個(gè)執(zhí)行圖形符號(hào),以便幫助用戶跟蹤指令流執(zhí)行過(guò)程 容易掌握 用RAPTOR可以進(jìn)行算法設(shè)計(jì)和驗(yàn)證,從而使初學(xué)者有可能理解和真正掌握“計(jì)算思維”,7,RAPTOR基本程序環(huán)境,基本界面 F5:運(yùn)行流程圖 F10:?jiǎn)尾綀?zhí)行 顯示執(zhí)行結(jié)果。,8,四種基本符號(hào)/語(yǔ)句,9,變量,變量(variable)表示的是計(jì)算機(jī)內(nèi)存中的位置,用于保存數(shù)據(jù)值 在任何時(shí)候,一個(gè)變量只能容納一個(gè)值 變量的初始值決定了變量的數(shù)據(jù)類型,在流程執(zhí)行過(guò)程中變量的數(shù)據(jù)類型不能更改,但變量的值可以改變,10,變量賦值過(guò)程,11,RAPTO

4、R變量值的設(shè)置,基本原則: 任何變量在被引用前必須存在并被賦初值 變量的類型由最初的賦值語(yǔ)句所給的數(shù)據(jù)決定 設(shè)置方法 通過(guò)輸入語(yǔ)句賦值 通過(guò)賦值語(yǔ)句的中的公式運(yùn)算后賦值 通過(guò)調(diào)用過(guò)程的返回值賦值,12,RAPTOR數(shù)據(jù)類型,數(shù)值(Number): 如12,567,-4,3.1415,0.000371 字符串 (String): 如“Hello, how are you?”, “James Bond”, “The value of x is: ” 字符(Character): 如A,8,!。,13,變量報(bào)錯(cuò)的原因,未定義引用,14,變量報(bào)錯(cuò)的原因,拼寫錯(cuò),15,不同類型的數(shù)據(jù)不可比較,16,字符

5、串:用雙引號(hào)括起來(lái) 字 符:用單引號(hào)括起來(lái),RAPTOR常量,RAPTOR定義了四個(gè)常量(Constant) pi(圓周率) 定義為 3.1416 e (自然對(duì)數(shù)的底)定義為 2.7183 true /yes(布爾值: 真) 定義為 1 false/no(布爾值:假) 定義為 0,17,輸入(Input)語(yǔ)句,輸入語(yǔ)句的編輯(Edit)對(duì)話框 在提示文本框中說(shuō)明所需的輸入 在變量文本框中輸入變量名,18,輸入(Input)語(yǔ)句,輸入語(yǔ)句在流程圖中顯示的狀態(tài) 運(yùn)行時(shí)對(duì)話框,19,賦值語(yǔ)句(編輯),Set文本框中輸入 需要賦值的變量名。 To文本框中輸入需要執(zhí)行的表達(dá)式,表達(dá)式可以是一個(gè)值或 一個(gè)

6、公式。,20,賦值語(yǔ)句(顯示),流程圖中的賦值語(yǔ)句,21,表達(dá)式,可以是單個(gè)值 可以是常量或變量和運(yùn)算符的組合。 例如:(1)x (3+9)/3(2)x 3+(9/3),22,表達(dá)式計(jì)算的“優(yōu)先順序”,1.計(jì)算所有函數(shù)的值, 2.計(jì)算括號(hào)中表達(dá)式, 3.計(jì)算乘冪(,*), 4.從左到右,計(jì)算乘法和除法,最后 5.從左到右,計(jì)算加法和減法。,23,運(yùn)算符,邏輯運(yùn)算是一組值(常量或變量)和關(guān)系運(yùn)算符的結(jié)合, 期望得到Y(jié)ES/NO這樣的結(jié)果 關(guān)系運(yùn)算符(=、 / =、 、 =),必須針對(duì)兩個(gè)相同的數(shù)據(jù)類型值比較 例如,3 = 4或Wayne = Sam是有效的比較,但3 = Mike則是無(wú)效的,24

7、,關(guān)系運(yùn)算,25,內(nèi)置運(yùn)算符和函數(shù),數(shù)學(xué)運(yùn)算: +,-,*,/,*(加、減、乘、除、乘方) rem, mod, sqrt(求余,開(kāi)平方) log, abs, (對(duì)數(shù),絕對(duì)值) ceiling, floor (向下取整,向上取整),26,內(nèi)置運(yùn)算符和函數(shù),三角函數(shù): sin,cos,tan;正弦 ,余弦 ,正切 cot,arcsin,arccos;余切 ,反正弦 ,反余弦 arctan, arccot;反正切 ,反余切,27,內(nèi)置運(yùn)算符和函數(shù),random,偽隨機(jī)數(shù) Length_of 求數(shù)組元素個(gè)數(shù),求字符串長(zhǎng)度,28,過(guò)程調(diào)用語(yǔ)句(編輯),編輯對(duì)話框 注意已有過(guò)程提示,29,過(guò)程調(diào)用語(yǔ)句(顯

8、示),過(guò)程調(diào)用分內(nèi)置過(guò)程,子圖,子程序; 內(nèi)置過(guò)程、子圖、子程序的調(diào)用使用同樣的語(yǔ)句,但子圖沒(méi)有參數(shù),內(nèi)置過(guò)程或子程序需要參數(shù),30,輸出語(yǔ)句,執(zhí)行輸出語(yǔ)句將在主控(Master Console)窗口顯示輸出結(jié)果 必須用雙引號(hào),以便與變量區(qū)分 是否換行輸出結(jié)果選中表示換行,31,輸出語(yǔ)句的設(shè)計(jì)技巧,32,注釋,注釋本身對(duì)計(jì)算機(jī)毫無(wú)意義,并不會(huì)被執(zhí)行。注釋的目的是增強(qiáng)程序的可讀性,幫助他人理解你所設(shè)計(jì)的程序或算法,33,一個(gè)帶注釋的算法,注釋的四種類型: 1.編程標(biāo)題 2.分節(jié)描述 3.邏輯描述 4.變量說(shuō)明,34,控制結(jié)構(gòu),程序員合理利用控制結(jié)構(gòu)和控制語(yǔ)句,可以確定程序語(yǔ)句的執(zhí)行順序 這些控制

9、結(jié)構(gòu)可以做三件事: 1. 按照順序執(zhí)行某些語(yǔ)句; 2. 根據(jù)條件判斷結(jié)果,跳過(guò)某些語(yǔ)句而執(zhí)行其他語(yǔ)句; 3. 條件為真時(shí)重復(fù)執(zhí)行一條或多條語(yǔ)句 主要介紹選擇(Selection)和循環(huán)(Loop)命令,35,順序控制,順序邏輯是最簡(jiǎn)單的程序構(gòu)造 本質(zhì)上,就是把每個(gè)語(yǔ)句按順序排列,程序執(zhí)行時(shí),從開(kāi)始(Start)語(yǔ)句順序執(zhí)行到結(jié)束(End)語(yǔ)句,36,順序控制,程序員為解決問(wèn)題,必須首先確定問(wèn)題的解決方案,該方案需要哪些語(yǔ)句,以及語(yǔ)句的執(zhí)行順序 因此,編寫正確的語(yǔ)句以及確定語(yǔ)句在程序的何處放置是同樣重要的 例如:當(dāng)要獲取和處理來(lái)自用戶的數(shù)據(jù)時(shí),必須先取得數(shù)據(jù),然后才可以使用 如果交換一下這些語(yǔ)句

10、的順序,則程序根本無(wú)法執(zhí)行 順序控制在英語(yǔ)環(huán)境中被稱為“and-then”結(jié)構(gòu),37,選擇控制,當(dāng)程序執(zhí)行時(shí),如果決策的結(jié)果是“Yes”(True),則執(zhí)行左側(cè)分支 如果結(jié)果是“No”(False),則執(zhí)行右側(cè)分支,38,選擇控制,注意選擇控制語(yǔ)句的兩個(gè)路徑之一可能是空的,或包含多條語(yǔ)句 選擇控制結(jié)構(gòu)在英語(yǔ)環(huán)境中被稱為“if-then”結(jié)構(gòu),39,級(jí)聯(lián)選擇控制,40,循環(huán)控制,循環(huán)(loop)控制語(yǔ)句允許重復(fù)執(zhí)行一個(gè)或多個(gè)語(yǔ)句,直到某些條件變?yōu)檎嬷担═rue) 菱形符號(hào)中的表達(dá)式結(jié)果為“No”,則執(zhí)行“No”的分支,這將導(dǎo)致循環(huán)語(yǔ)句和重復(fù) 要重復(fù)執(zhí)行的語(yǔ)句可以放在菱形符號(hào)上方或下方 循環(huán)控制結(jié)

11、構(gòu)在英語(yǔ)環(huán)境中被稱為“While-do”結(jié)構(gòu),41,循環(huán)測(cè)試,在循環(huán)語(yǔ)句中,究竟是先計(jì)算后測(cè)試,還是先測(cè)試后計(jì)算,或者在計(jì)算的過(guò)程中間進(jìn)行測(cè)試? 前序測(cè)試(Pre-test) 后續(xù)測(cè)試(Post-test) 中序測(cè)試(Intermediate-test),42,刪除圖的Statement 2 Statement1為前置條件 Statement 3是主循環(huán)體 如果進(jìn)入了Statement3,測(cè)試條件也必須由這一部分進(jìn)行修改;,前序測(cè)試,43,中序測(cè)試,刪除圖中的Statement 1 Statement2是主循環(huán)體之一 而測(cè)試條件也是在Statement 2中產(chǎn)生 Statement3是主循環(huán)體

12、之二,44,后續(xù)測(cè)試,刪除圖中的Statement 1和Statement3 Statement2是主循環(huán)體 而測(cè)試條件也是在Statement 2中產(chǎn)生;,45,輸入驗(yàn)證循環(huán),46,輸入驗(yàn)證循環(huán)之二,47,(N=10),計(jì)數(shù)循環(huán),循環(huán)按特定的次數(shù),來(lái)執(zhí)行某個(gè)代碼塊 一個(gè)著名的縮寫 I.T.E.M (Initialize, Test, Execute, Modify,初始化,測(cè)試,執(zhí)行,和修改)表示可以用來(lái)檢查一個(gè)循環(huán)計(jì)數(shù)器變量使用是否正確的基本過(guò)程,48,典型的循環(huán)錯(cuò)誤,49,輸入控制循環(huán),50,輸入控制循環(huán)之二,51,RAPTOR數(shù)組變量,數(shù)組是有序數(shù)據(jù)的集合。 一般分為一維數(shù)組和二維數(shù)組

13、 數(shù)組最大的好處在于用一個(gè)統(tǒng)一的數(shù)組名和下標(biāo)(index)來(lái)唯一地確定某個(gè)數(shù)組變量中的元素,52,RAPTOR一維數(shù)組的元素表示,形式一 形式二,53,數(shù)組的創(chuàng)建,數(shù)組變量必須在使用之前創(chuàng)建 所創(chuàng)建的數(shù)組大小由賦值語(yǔ)句中給定的最大元素下標(biāo)來(lái)決定,可以在算法運(yùn)行過(guò)程中動(dòng)態(tài)增加數(shù)組元素,擴(kuò)展其大小。 第一次給values數(shù)組賦值: values7 3 結(jié)果如下圖:,54,一維數(shù)組的擴(kuò)展,第二次再給該數(shù)組賦值: values9 6 則將數(shù)組進(jìn)行了擴(kuò)展,得到的結(jié)果如下圖: 但不能將一個(gè)一維數(shù)組擴(kuò)展為一個(gè)二維數(shù)組。,55,二維數(shù)組的創(chuàng)建,創(chuàng)建二維數(shù)組時(shí),數(shù)組的兩個(gè)維度的大小由最大的下標(biāo)確定 例如: nu

14、mbers3,4 13 得到:,56,RAPTOR數(shù)組特性,RAPTOR并不強(qiáng)制每個(gè)數(shù)組的元素必須具備相同的數(shù)據(jù)類型 例如程序員可以將二維數(shù)組,設(shè)計(jì)成為類似像數(shù)據(jù)庫(kù)那樣的一種記錄式結(jié)構(gòu),57,數(shù)組變量的應(yīng)用,數(shù)組變量的好處來(lái)自數(shù)組符號(hào)允許RAPTOR在方括號(hào)內(nèi)執(zhí)行數(shù)學(xué)計(jì)算,58,什么是平行數(shù)組?,計(jì)算某個(gè)班級(jí)學(xué)員的一個(gè)學(xué)期4門課程的平均成績(jī)。 應(yīng)該如何保存參與計(jì)算的課程成績(jī) 可以分別使用:computer,math,physics,history,而每個(gè)同學(xué)的編號(hào),可以用做數(shù)組的下標(biāo),59,數(shù)組應(yīng)用注意事項(xiàng),在RAPTOR中,一旦某個(gè)變量名被用做數(shù)組變量,就不允許存在一個(gè)同名的非數(shù)組變量 RA

15、PTOR數(shù)組可以在算法運(yùn)行過(guò)程中動(dòng)態(tài)增加數(shù)組元素;但不可以將一個(gè)一維數(shù)組在算法運(yùn)行中擴(kuò)展成二維數(shù)組,60,RAPTOR子程序與子圖定義與調(diào)用,在計(jì)算機(jī)科學(xué)中,將實(shí)際問(wèn)題抽象化是解決問(wèn)題的關(guān)鍵要素之一 一項(xiàng)研究成果表明,人類的大腦平均只能同時(shí)積極關(guān)注約4件事情,大大少于以往研究所得的7件事情的結(jié)論 為了解決復(fù)雜的問(wèn)題,必須能夠研究問(wèn)題的“主要方面(big issues)”,61,計(jì)算一個(gè)英文文章中,使用了“a”開(kāi)頭的單詞的次數(shù),一個(gè)英文單詞的以特定字母開(kāi)頭,那么它的前面一定有空格 所以,判斷一個(gè)空格后面是否跟了一個(gè)字母“a”,就可以找出一段英文中所有以a開(kāi)頭單詞的使用次數(shù),62,63,統(tǒng)計(jì) “a

16、z” 字母開(kāi)頭單詞數(shù),解這個(gè)問(wèn)題程序似乎只要把上個(gè)例子部分程序再?gòu)?fù)制、粘貼25次,做一點(diǎn)修改就可以解決問(wèn)題 但是,為了使得設(shè)計(jì)的程序更加簡(jiǎn)練、具有更長(zhǎng)久的生命力和更廣泛的用途,可以將上一例中的程序改造成一個(gè)子程序,或者是一種抽象: 其功能就是“統(tǒng)計(jì)一個(gè)特定字母開(kāi)頭的單詞,在一段文字中出現(xiàn)了多少次”,64,創(chuàng)建RAPTOR子程序,子程序如同一個(gè)加工廠,輸入原材料,然后按設(shè)計(jì)要求處理原材料,輸出產(chǎn)成品 子程序的原材料就是一些變量,例如(in:char),為統(tǒng)計(jì)子程序輸入測(cè)試樣本 子程序的產(chǎn)成品也是變量,例如(out: count),向調(diào)用它的程序返回統(tǒng)計(jì)結(jié)果 其中,in, out表示子程序的輸入輸

17、出參數(shù),65,子程序定義,子程序定義界面上的接口參數(shù)稱為“形式參數(shù)” RAPTOR的子程序參數(shù)不得超過(guò)6個(gè) 子程序參數(shù)可以是單個(gè)變量,也可以是數(shù)組,66,一個(gè)設(shè)計(jì)完成的子程序,67,子程序的調(diào)用,如要調(diào)用子程序,可以通過(guò)調(diào)用語(yǔ)句并給子程序的接口賦予“實(shí)際參數(shù)”進(jìn)行 實(shí)際參數(shù)的名與形式參數(shù)的可以不同 實(shí)際參數(shù)的數(shù)據(jù)類型則必須與形式參數(shù)的相同,68,69,自頂向下 vs 自底向上,先規(guī)劃子程序,然后逐個(gè)實(shí)現(xiàn),為自頂向下的設(shè)計(jì)方法 先實(shí)現(xiàn)各個(gè)子程序的功能,然后進(jìn)行綜合,為自底向上的設(shè)計(jì)方法,70,計(jì)算問(wèn)題求解的一般過(guò)程,理解問(wèn)題 制定計(jì)劃 執(zhí)行計(jì)劃 回顧與總結(jié),71,使用計(jì)算機(jī)進(jìn)行問(wèn)題求解,程序開(kāi)發(fā)周期 分析問(wèn)題 設(shè)計(jì)程序以

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論