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

下載本文檔

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

文檔簡介

RAPTOR程序設(shè)計(jì)基礎(chǔ)

1RAPTOR程序設(shè)計(jì)基礎(chǔ)

1為什么要學(xué)習(xí)程序設(shè)計(jì)?由于計(jì)算思維的核心之一是算法思維,同時算法思維也是計(jì)算機(jī)科學(xué)的精髓而算法思維的實(shí)現(xiàn)離不開程序設(shè)計(jì),所以對于計(jì)算思維的學(xué)習(xí)和認(rèn)識,必須從程序設(shè)計(jì)開始2為什么要學(xué)習(xí)程序設(shè)計(jì)?由于計(jì)算思維的核心之一是算法思維,同時計(jì)算思維的根本內(nèi)容計(jì)算思維最根本的內(nèi)容,即其本質(zhì)(Essence)是抽象(Abstraction)和自動化(Automation)計(jì)算思維中的抽象完全超越物理的時空觀,并完全用符號來表示抽象和自動化行為將貫徹課程的始終3計(jì)算思維的根本內(nèi)容計(jì)算思維最根本的內(nèi)容,即其本質(zhì)(Essen什么是可視化程序設(shè)計(jì)?可視化(Visual)程序設(shè)計(jì)是一種全新的程序設(shè)計(jì)方法,一般可視化程序主要是指編譯環(huán)境的可視化;程序設(shè)計(jì)人員利用開發(fā)環(huán)境本身提供各種可視化的控件、方法和屬性等,像搭積木一樣構(gòu)造出應(yīng)用程序的各種界面典型的可視化程序設(shè)計(jì)環(huán)境如VisualBasic4什么是可視化程序設(shè)計(jì)?可視化(Visual)程序設(shè)計(jì)是一種VisualBasic6.0界面5VisualBasic6.0界面5http://xqc為什么要使用RAPTOR?RAPTOR(theRapidAlgorithmicPrototypingToolforOrderedReasoning--用于有序推理的快速算法原型工具),是一種基于流程圖的可視化程序設(shè)計(jì)環(huán)境,為程序和算法設(shè)計(jì)的基礎(chǔ)課程教學(xué)提供實(shí)驗(yàn)環(huán)境使用RAPTOR設(shè)計(jì)的程序和算法可以直接轉(zhuǎn)換成為C++、C#、Java等高級程序語言,這就為程序和算法的初學(xué)者鋪就了一條平緩、自然的學(xué)習(xí)階梯6為什么要使用RAPTOR?RAPTOR(theRapid使用RAPTOR的理由可以在最大限度地減少語法要求的情形下,幫助用戶編寫正確的程序指令程序就是流程圖,可以逐個執(zhí)行圖形符號,以便幫助用戶跟蹤指令流執(zhí)行過程容易掌握用RAPTOR可以進(jìn)行算法設(shè)計(jì)和驗(yàn)證,從而使初學(xué)者有可能理解和真正掌握“計(jì)算思維”7使用RAPTOR的理由可以在最大限度地減少語法要求的情形下,RAPTOR基本程序環(huán)境基本界面F5:運(yùn)行流程圖F10:單步執(zhí)行顯示執(zhí)行結(jié)果。8RAPTOR基本程序環(huán)境基本界面8四種基本符號/語句目的符號名稱說明輸入輸入語句輸入數(shù)據(jù)給一個變量處理賦值語句使用某些運(yùn)算來更改變量的值處理過程調(diào)用執(zhí)行一組在命名過程中定義的指令輸出輸出語句顯示變量的值。9四種基本符號/語句目的符號名稱說明輸入輸入語句輸入數(shù)據(jù)給一個變量變量(variable)表示的是計(jì)算機(jī)內(nèi)存中的位置,用于保存數(shù)據(jù)值在任何時候,一個變量只能容納一個值變量的初始值決定了變量的數(shù)據(jù)類型,在流程執(zhí)行過程中變量的數(shù)據(jù)類型不能更改,但變量的值可以改變10變量變量(variable)表示的是計(jì)算機(jī)內(nèi)存中的位置,用于變量賦值過程說明X的值程序當(dāng)程序開始時,沒有任何變量存在未定義第一個賦值語句,X←32,分配數(shù)據(jù)值32給變量X32下一個賦值語句,X←X+1,檢索到當(dāng)前X的值為32,給它加1,并把結(jié)果33給變量X33下一個賦值語句,X←X*2,檢索到X當(dāng)前值為33,乘以2,并把結(jié)果66給變量X6611變量賦值過程說明X的值程序當(dāng)程序開始時,沒有任何變量存在未定RAPTOR變量值的設(shè)置基本原則:任何變量在被引用前必須存在并被賦初值變量的類型由最初的賦值語句所給的數(shù)據(jù)決定設(shè)置方法通過輸入語句賦值通過賦值語句的中的公式運(yùn)算后賦值通過調(diào)用過程的返回值賦值12RAPTOR變量值的設(shè)置基本原則:12RAPTOR數(shù)據(jù)類型數(shù)值(Number):

如12,567,-4,3.1415,0.000371字符串(String):如“Hello,howareyou?”,“JamesBond”,“Thevalueofxis:

”字符(Character):如’A’,’8’,’!’。13RAPTOR數(shù)據(jù)類型數(shù)值(Number): 13變量報(bào)錯的原因未定義引用14變量報(bào)錯的原因未定義引用14變量報(bào)錯的原因拼寫錯15變量報(bào)錯的原因拼寫錯15不同類型的數(shù)據(jù)不可比較16字符串:用雙引號括起來字符:用單引號括起來不同類型的數(shù)據(jù)不可比較16字符串:用雙引號括起來RAPTOR常量RAPTOR定義了四個常量(Constant)pi(圓周率)定義為3.1416e(自然對數(shù)的底)定義為2.7183true/yes(布爾值:

真)定義為1false/no(布爾值:假)定義為017RAPTOR常量RAPTOR定義了四個常量(Constant輸入(Input)語句輸入語句的編輯(Edit)對話框在提示文本框中說明所需的輸入在變量文本框中輸入變量名18輸入(Input)語句輸入語句的編輯(Edit)對話框18輸入(Input)語句輸入語句在流程圖中顯示的狀態(tài)運(yùn)行時對話框19輸入(Input)語句輸入語句在流程圖中顯示的狀態(tài)19賦值語句(編輯)Set文本框中輸入需要賦值的變量名。To文本框中輸入需要執(zhí)行的表達(dá)式,表達(dá)式可以是一個值或一個公式。20賦值語句(編輯)Set文本框中輸入需要賦值的變量名。20賦值語句(顯示)流程圖中的賦值語句21賦值語句(顯示)流程圖中的賦值語句21表達(dá)式可以是單個值可以是常量或變量和運(yùn)算符的組合。例如:

(1)x←(3+9)/3 (2)x←3+(9/3)22表達(dá)式可以是單個值22表達(dá)式計(jì)算的“優(yōu)先順序”1. 計(jì)算所有函數(shù)的值,2. 計(jì)算括號中表達(dá)式,3. 計(jì)算乘冪(^,**),4. 從左到右,計(jì)算乘法和除法,最后5. 從左到右,計(jì)算加法和減法。23表達(dá)式計(jì)算的“優(yōu)先順序”1. 計(jì)算所有函數(shù)的值,23運(yùn)算符邏輯運(yùn)算是一組值(常量或變量)和關(guān)系運(yùn)算符的結(jié)合,期望得到Y(jié)ES/NO這樣的結(jié)果關(guān)系運(yùn)算符(=、/=、<、<=、>、>=),必須針對兩個相同的數(shù)據(jù)類型值比較例如,3=4或"Wayne"="Sam"是有效的比較,但3="Mike"則是無效的24運(yùn)算符邏輯運(yùn)算是一組值(常量或變量)和關(guān)系運(yùn)算符的結(jié)合,期關(guān)系運(yùn)算運(yùn)算說明例=等于3=4結(jié)果為

No(false)!=/=不等于3!=4結(jié)果為Yes(true)3/=4結(jié)果為

Yes(true)<小于3<4結(jié)果為Yes(true)<=小于或等于3<=4結(jié)果為Yes(true)>大于3>4結(jié)果為No(false)>=大于或等于3>=4結(jié)果為No(false)25關(guān)系運(yùn)算運(yùn)算說明例=等于3=4結(jié)果為No(false內(nèi)置運(yùn)算符和函數(shù)數(shù)學(xué)運(yùn)算:

+,-,*,/,^,**(加、減、乘、除、乘方)rem,mod,sqrt(求余,開平方)log,abs,(對數(shù),絕對值)ceiling,floor

(向下取整,向上取整)26內(nèi)置運(yùn)算符和函數(shù)數(shù)學(xué)運(yùn)算:26內(nèi)置運(yùn)算符和函數(shù)三角函數(shù):sin,cos,tan;正弦,余弦,正切

cot,arcsin,arccos;余切,反正弦,反余弦

arctan,arccot;反正切,反余切

27內(nèi)置運(yùn)算符和函數(shù)三角函數(shù):27內(nèi)置運(yùn)算符和函數(shù)random,偽隨機(jī)數(shù)

Length_of

求數(shù)組元素個數(shù),求字符串長度28內(nèi)置運(yùn)算符和函數(shù)random,偽隨機(jī)數(shù)28過程調(diào)用語句(編輯)編輯對話框注意已有過程提示29過程調(diào)用語句(編輯)編輯對話框29過程調(diào)用語句(顯示)過程調(diào)用分內(nèi)置過程,子圖,子程序;內(nèi)置過程、子圖、子程序的調(diào)用使用同樣的語句,但子圖沒有參數(shù),內(nèi)置過程或子程序需要參數(shù)30過程調(diào)用語句(顯示)過程調(diào)用分內(nèi)置過程,子圖,子程序;30輸出語句執(zhí)行輸出語句將在主控(MasterConsole)窗口顯示輸出結(jié)果必須用雙引號,以便與變量區(qū)分是否換行輸出結(jié)果選中表示換行31輸出語句執(zhí)行輸出語句將在主控(MasterConsole輸出語句的設(shè)計(jì)技巧32輸出語句的設(shè)計(jì)技巧32注釋注釋本身對計(jì)算機(jī)毫無意義,并不會被執(zhí)行。注釋的目的是增強(qiáng)程序的可讀性,幫助他人理解你所設(shè)計(jì)的程序或算法33注釋注釋本身對計(jì)算機(jī)毫無意義,并不會被執(zhí)行。注釋的目的是增一個帶注釋的算法注釋的四種類型:1.編程標(biāo)題2.分節(jié)描述3.邏輯描述4.變量說明34一個帶注釋的算法注釋的四種類型:34控制結(jié)構(gòu)程序員合理利用控制結(jié)構(gòu)和控制語句,可以確定程序語句的執(zhí)行順序這些控制結(jié)構(gòu)可以做三件事:1.按照順序執(zhí)行某些語句;2.根據(jù)條件判斷結(jié)果,跳過某些語句而執(zhí)行其他語句;3.條件為真時重復(fù)執(zhí)行一條或多條語句主要介紹選擇(Selection)和循環(huán)(Loop)命令35控制結(jié)構(gòu)程序員合理利用控制結(jié)構(gòu)和控制語句,可以確定程序語句的順序控制順序邏輯是最簡單的程序構(gòu)造本質(zhì)上,就是把每個語句按順序排列,程序執(zhí)行時,從開始(Start)語句順序執(zhí)行到結(jié)束(End)語句36順序控制順序邏輯是最簡單的程序構(gòu)造36順序控制程序員為解決問題,必須首先確定問題的解決方案,該方案需要哪些語句,以及語句的執(zhí)行順序因此,編寫正確的語句以及確定語句在程序的何處放置是同樣重要的例如:當(dāng)要獲取和處理來自用戶的數(shù)據(jù)時,必須先取得數(shù)據(jù),然后才可以使用如果交換一下這些語句的順序,則程序根本無法執(zhí)行順序控制在英語環(huán)境中被稱為“and-then”結(jié)構(gòu)37順序控制程序員為解決問題,必須首先確定問題的解決方案,該方案選擇控制可能性

1可能性2Statement1StatementStatement3Statement1Statement2bStatement3當(dāng)程序執(zhí)行時,如果決策的結(jié)果是“Yes”(True),則執(zhí)行左側(cè)分支如果結(jié)果是“No”(False),則執(zhí)行右側(cè)分支38選擇控制可能性1可能性2Statement1Statem選擇控制注意選擇控制語句的兩個路徑之一可能是空的,或包含多條語句選擇控制結(jié)構(gòu)在英語環(huán)境中被稱為“if-then”結(jié)構(gòu)39選擇控制注意選擇控制語句的兩個路徑之一可能是空的,或包含多條級聯(lián)選擇控制40級聯(lián)選擇控制40循環(huán)控制循環(huán)(loop)控制語句允許重復(fù)執(zhí)行一個或多個語句,直到某些條件變?yōu)檎嬷担═rue)菱形符號中的表達(dá)式結(jié)果為“No”,則執(zhí)行“No”的分支,這將導(dǎo)致循環(huán)語句和重復(fù)要重復(fù)執(zhí)行的語句可以放在菱形符號上方或下方循環(huán)控制結(jié)構(gòu)在英語環(huán)境中被稱為“While-do”結(jié)構(gòu)41循環(huán)控制循環(huán)(loop)控制語句允許重復(fù)執(zhí)行一個或多個語句,循環(huán)測試在循環(huán)語句中,究竟是先計(jì)算后測試,還是先測試后計(jì)算,或者在計(jì)算的過程中間進(jìn)行測試?前序測試(Pre-test)后續(xù)測試(Post-test)中序測試(Intermediate-test)42循環(huán)測試在循環(huán)語句中,究竟是先計(jì)算后測試,還是先測試后計(jì)算,刪除圖的Statement2Statement1為前置條件Statement3是主循環(huán)體如果進(jìn)入了Statement3,測試條件也必須由這一部分進(jìn)行修改;前序測試43刪除圖的Statement2前序測試43中序測試刪除圖中的Statement1Statement2是主循環(huán)體之一而測試條件也是在Statement2中產(chǎn)生Statement3是主循環(huán)體之二44中序測試刪除圖中的Statement144后續(xù)測試刪除圖中的Statement1和Statement3Statement2是主循環(huán)體而測試條件也是在Statement2中產(chǎn)生;45后續(xù)測試刪除圖中的Statement1和Statement輸入驗(yàn)證循環(huán)46輸入驗(yàn)證循環(huán)46輸入驗(yàn)證循環(huán)之二47(N<=10)輸入驗(yàn)證循環(huán)之二47(N<=10)計(jì)數(shù)循環(huán)循環(huán)按特定的次數(shù),來執(zhí)行某個代碼塊一個著名的縮寫I.T.E.M(Initialize,Test,Execute,Modify,初始化,測試,執(zhí)行,和修改)表示可以用來檢查一個循環(huán)計(jì)數(shù)器變量使用是否正確的基本過程48計(jì)數(shù)循環(huán)循環(huán)按特定的次數(shù),來執(zhí)行某個代碼塊48典型的循環(huán)錯誤49典型的循環(huán)錯誤49輸入控制循環(huán)50輸入控制循環(huán)50輸入控制循環(huán)之二51輸入控制循環(huán)之二51RAPTOR數(shù)組變量數(shù)組是有序數(shù)據(jù)的集合。一般分為一維數(shù)組和二維數(shù)組數(shù)組最大的好處在于用一個統(tǒng)一的數(shù)組名和下標(biāo)(index)來唯一地確定某個數(shù)組變量中的元素52RAPTOR數(shù)組變量數(shù)組是有序數(shù)據(jù)的集合。52RAPTOR一維數(shù)組的元素表示形式一形式二53RAPTOR一維數(shù)組的元素表示形式一53數(shù)組的創(chuàng)建數(shù)組變量必須在使用之前創(chuàng)建所創(chuàng)建的數(shù)組大小由賦值語句中給定的最大元素下標(biāo)來決定,可以在算法運(yùn)行過程中動態(tài)增加數(shù)組元素,擴(kuò)展其大小。第一次給values[]數(shù)組賦值:values[7]3結(jié)果如下圖:54數(shù)組的創(chuàng)建數(shù)組變量必須在使用之前創(chuàng)建54一維數(shù)組的擴(kuò)展第二次再給該數(shù)組賦值:values[9]6則將數(shù)組進(jìn)行了擴(kuò)展,得到的結(jié)果如下圖:但不能將一個一維數(shù)組擴(kuò)展為一個二維數(shù)組。55一維數(shù)組的擴(kuò)展第二次再給該數(shù)組賦值:55二維數(shù)組的創(chuàng)建創(chuàng)建二維數(shù)組時,數(shù)組的兩個維度的大小由最大的下標(biāo)確定例如:numbers[3,4]13得到:56二維數(shù)組的創(chuàng)建創(chuàng)建二維數(shù)組時,數(shù)組的兩個維度的大小由最大的下RAPTOR數(shù)組特性RAPTOR并不強(qiáng)制每個數(shù)組的元素必須具備相同的數(shù)據(jù)類型例如程序員可以將二維數(shù)組,設(shè)計(jì)成為類似像數(shù)據(jù)庫那樣的一種記錄式結(jié)構(gòu)57RAPTOR數(shù)組特性RAPTOR并不強(qiáng)制每個數(shù)組的元素必須具數(shù)組變量的應(yīng)用數(shù)組變量的好處來自數(shù)組符號允許RAPTOR在方括號內(nèi)執(zhí)行數(shù)學(xué)計(jì)算58數(shù)組變量的應(yīng)用數(shù)組變量的好處來自數(shù)組符號允許RAPTOR在方什么是平行數(shù)組?計(jì)算某個班級學(xué)員的一個學(xué)期4門課程的平均成績。應(yīng)該如何保存參與計(jì)算的課程成績可以分別使用:computer[],math[],physics[],history[],而每個同學(xué)的編號,可以用做數(shù)組的下標(biāo)59什么是平行數(shù)組?計(jì)算某個班級學(xué)員的一個學(xué)期4門課程的平均成績數(shù)組應(yīng)用注意事項(xiàng)在RAPTOR中,一旦某個變量名被用做數(shù)組變量,就不允許存在一個同名的非數(shù)組變量RAPTOR數(shù)組可以在算法運(yùn)行過程中動態(tài)增加數(shù)組元素;但不可以將一個一維數(shù)組在算法運(yùn)行中擴(kuò)展成二維數(shù)組60數(shù)組應(yīng)用注意事項(xiàng)在RAPTOR中,一旦某個變量名被用做數(shù)組變RAPTOR子程序與子圖定義與調(diào)用在計(jì)算機(jī)科學(xué)中,將實(shí)際問題抽象化是解決問題的關(guān)鍵要素之一一項(xiàng)研究成果表明,人類的大腦平均只能同時積極關(guān)注約4件事情,大大少于以往研究所得的7件事情的結(jié)論為了解決復(fù)雜的問題,必須能夠研究問題的“主要方面(bigissues)”61RAPTOR子程序與子圖定義與調(diào)用在計(jì)算機(jī)科學(xué)中,將實(shí)際問題計(jì)算一個英文文章中,使用了“a”開頭的單詞的次數(shù)一個英文單詞的以特定字母開頭,那么它的前面一定有空格所以,判斷一個空格后面是否跟了一個字母“a”,就可以找出一段英文中所有以a開頭單詞的使用次數(shù)62計(jì)算一個英文文章中,使用了“a”開頭的單詞的次數(shù)一個英文單詞6363統(tǒng)計(jì)“a~z”字母開頭單詞數(shù)解這個問題程序似乎只要把上個例子部分程序再復(fù)制、粘貼25次,做一點(diǎn)修改就可以解決問題但是,為了使得設(shè)計(jì)的程序更加簡練、具有更長久的生命力和更廣泛的用途,可以將上一例中的程序改造成一個子程序,或者是一種抽象:其功能就是“統(tǒng)計(jì)一個特定字母開頭的單詞,在一段文字中出現(xiàn)了多少次”64統(tǒng)計(jì)“a~z”字母開頭單詞數(shù)解這個問題程序似乎只要把上個創(chuàng)建RAPTOR子程序子程序如同一個加工廠,輸入原材料,然后按設(shè)計(jì)要求處理原材料,輸出產(chǎn)成品子程序的原材料就是一些變量,例如(in:char),為統(tǒng)計(jì)子程序輸入測試樣本子程序的產(chǎn)成品也是變量,例如(out:count),向調(diào)用它的程序返回統(tǒng)計(jì)結(jié)果其中,in,out表示子程序的輸入輸出參數(shù)65創(chuàng)建RAPTOR

溫馨提示

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

評論

0/150

提交評論