




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、RAPTOR程序設(shè)計(jì)基礎(chǔ),1,為什么要學(xué)習(xí)程序設(shè)計(jì)?,由于計(jì)算思維的核心之一是算法思維,同時(shí)算法思維也是計(jì)算機(jī)科學(xué)的精髓 而算法思維的實(shí)現(xiàn)離不開程序設(shè)計(jì),所以對(duì)于計(jì)算思維的學(xué)習(xí)和認(rèn)識(shí),必須從程序設(shè)計(jì)開始,2,計(jì)算思維的根本內(nèi)容,計(jì)算思維最根本的內(nèi)容,即其本質(zhì)(Essence)是抽象(Abstraction)和自動(dòng)化(Automation) 計(jì)算思維中的抽象完全超越物理的時(shí)空觀,并完全用符號(hào)來表示 抽象和自動(dòng)化 行為將貫徹課程的始終,3,什么是可視化程序設(shè)計(jì)?,可視化(Visual)程序設(shè)計(jì)是一種全新的程序設(shè)計(jì)方法,一般可視化程序主要是指編譯環(huán)境的可視化; 程序設(shè)計(jì)人員利用開發(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í)程序語言,這就為程序和算法的初學(xué)者鋪就了一條平緩、自然的學(xué)習(xí)階梯,6,使用RAPTO
3、R的理由,可以在最大限度地減少語法要求的情形下,幫助用戶編寫正確的程序指令 程序就是流程圖,可以逐個(gè)執(zhí)行圖形符號(hào),以便幫助用戶跟蹤指令流執(zhí)行過程 容易掌握 用RAPTOR可以進(jìn)行算法設(shè)計(jì)和驗(yàn)證,從而使初學(xué)者有可能理解和真正掌握“計(jì)算思維”,7,RAPTOR基本程序環(huán)境,基本界面 F5:運(yùn)行流程圖 F10:單步執(zhí)行 顯示執(zhí)行結(jié)果。,8,四種基本符號(hào)/語句,9,變量,變量(variable)表示的是計(jì)算機(jī)內(nèi)存中的位置,用于保存數(shù)據(jù)值 在任何時(shí)候,一個(gè)變量只能容納一個(gè)值 變量的初始值決定了變量的數(shù)據(jù)類型,在流程執(zhí)行過程中變量的數(shù)據(jù)類型不能更改,但變量的值可以改變,10,變量賦值過程,11,RAPTO
4、R變量值的設(shè)置,基本原則: 任何變量在被引用前必須存在并被賦初值 變量的類型由最初的賦值語句所給的數(shù)據(jù)決定 設(shè)置方法 通過輸入語句賦值 通過賦值語句的中的公式運(yùn)算后賦值 通過調(diào)用過程的返回值賦值,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)括起來 字 符:用單引號(hào)括起來,RAPTOR常量,RAPTOR定義了四個(gè)常量(Constant) pi(圓周率) 定義為 3.1416 e (自然對(duì)數(shù)的底)定義為 2.7183 true /yes(布爾值: 真) 定義為 1 false/no(布爾值:假) 定義為 0,17,輸入(Input)語句,輸入語句的編輯(Edit)對(duì)話框 在提示文本框中說明所需的輸入 在變量文本框中輸入變量名,18,輸入(Input)語句,輸入語句在流程圖中顯示的狀態(tài) 運(yùn)行時(shí)對(duì)話框,19,賦值語句(編輯),Set文本框中輸入 需要賦值的變量名。 To文本框中輸入需要執(zhí)行的表達(dá)式,表達(dá)式可以是一個(gè)值或 一個(gè)
6、公式。,20,賦值語句(顯示),流程圖中的賦值語句,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則是無效的,24
7、,關(guān)系運(yùn)算,25,內(nèi)置運(yùn)算符和函數(shù),數(shù)學(xué)運(yùn)算: +,-,*,/,*(加、減、乘、除、乘方) rem, mod, sqrt(求余,開平方) 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ù),求字符串長度,28,過程調(diào)用語句(編輯),編輯對(duì)話框 注意已有過程提示,29,過程調(diào)用語句(顯
8、示),過程調(diào)用分內(nèi)置過程,子圖,子程序; 內(nèi)置過程、子圖、子程序的調(diào)用使用同樣的語句,但子圖沒有參數(shù),內(nèi)置過程或子程序需要參數(shù),30,輸出語句,執(zhí)行輸出語句將在主控(Master Console)窗口顯示輸出結(jié)果 必須用雙引號(hào),以便與變量區(qū)分 是否換行輸出結(jié)果選中表示換行,31,輸出語句的設(shè)計(jì)技巧,32,注釋,注釋本身對(duì)計(jì)算機(jī)毫無意義,并不會(huì)被執(zhí)行。注釋的目的是增強(qiáng)程序的可讀性,幫助他人理解你所設(shè)計(jì)的程序或算法,33,一個(gè)帶注釋的算法,注釋的四種類型: 1.編程標(biāo)題 2.分節(jié)描述 3.邏輯描述 4.變量說明,34,控制結(jié)構(gòu),程序員合理利用控制結(jié)構(gòu)和控制語句,可以確定程序語句的執(zhí)行順序 這些控制
9、結(jié)構(gòu)可以做三件事: 1. 按照順序執(zhí)行某些語句; 2. 根據(jù)條件判斷結(jié)果,跳過某些語句而執(zhí)行其他語句; 3. 條件為真時(shí)重復(fù)執(zhí)行一條或多條語句 主要介紹選擇(Selection)和循環(huán)(Loop)命令,35,順序控制,順序邏輯是最簡單的程序構(gòu)造 本質(zhì)上,就是把每個(gè)語句按順序排列,程序執(zhí)行時(shí),從開始(Start)語句順序執(zhí)行到結(jié)束(End)語句,36,順序控制,程序員為解決問題,必須首先確定問題的解決方案,該方案需要哪些語句,以及語句的執(zhí)行順序 因此,編寫正確的語句以及確定語句在程序的何處放置是同樣重要的 例如:當(dāng)要獲取和處理來自用戶的數(shù)據(jù)時(shí),必須先取得數(shù)據(jù),然后才可以使用 如果交換一下這些語句
10、的順序,則程序根本無法執(zhí)行 順序控制在英語環(huán)境中被稱為“and-then”結(jié)構(gòu),37,選擇控制,當(dāng)程序執(zhí)行時(shí),如果決策的結(jié)果是“Yes”(True),則執(zhí)行左側(cè)分支 如果結(jié)果是“No”(False),則執(zhí)行右側(cè)分支,38,選擇控制,注意選擇控制語句的兩個(gè)路徑之一可能是空的,或包含多條語句 選擇控制結(jié)構(gòu)在英語環(huán)境中被稱為“if-then”結(jié)構(gòu),39,級(jí)聯(lián)選擇控制,40,循環(huán)控制,循環(huán)(loop)控制語句允許重復(fù)執(zhí)行一個(gè)或多個(gè)語句,直到某些條件變?yōu)檎嬷担═rue) 菱形符號(hào)中的表達(dá)式結(jié)果為“No”,則執(zhí)行“No”的分支,這將導(dǎo)致循環(huán)語句和重復(fù) 要重復(fù)執(zhí)行的語句可以放在菱形符號(hào)上方或下方 循環(huán)控制結(jié)
11、構(gòu)在英語環(huán)境中被稱為“While-do”結(jié)構(gòu),41,循環(huán)測試,在循環(huán)語句中,究竟是先計(jì)算后測試,還是先測試后計(jì)算,或者在計(jì)算的過程中間進(jìn)行測試? 前序測試(Pre-test) 后續(xù)測試(Post-test) 中序測試(Intermediate-test),42,刪除圖的Statement 2 Statement1為前置條件 Statement 3是主循環(huán)體 如果進(jìn)入了Statement3,測試條件也必須由這一部分進(jìn)行修改;,前序測試,43,中序測試,刪除圖中的Statement 1 Statement2是主循環(huán)體之一 而測試條件也是在Statement 2中產(chǎn)生 Statement3是主循環(huán)體
12、之二,44,后續(xù)測試,刪除圖中的Statement 1和Statement3 Statement2是主循環(huán)體 而測試條件也是在Statement 2中產(chǎn)生;,45,輸入驗(yàn)證循環(huán),46,輸入驗(yàn)證循環(huán)之二,47,(N=10),計(jì)數(shù)循環(huán),循環(huán)按特定的次數(shù),來執(zhí)行某個(gè)代碼塊 一個(gè)著名的縮寫 I.T.E.M (Initialize, Test, Execute, Modify,初始化,測試,執(zhí)行,和修改)表示可以用來檢查一個(gè)循環(huán)計(jì)數(shù)器變量使用是否正確的基本過程,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)來唯一地確定某個(gè)數(shù)組變量中的元素,52,RAPTOR一維數(shù)組的元素表示,形式一 形式二,53,數(shù)組的創(chuàng)建,數(shù)組變量必須在使用之前創(chuàng)建 所創(chuàng)建的數(shù)組大小由賦值語句中給定的最大元素下標(biāo)來決定,可以在算法運(yùn)行過程中動(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ù)庫那樣的一種記錄式結(jié)構(gòu),57,數(shù)組變量的應(yīng)用,數(shù)組變量的好處來自數(shù)組符號(hào)允許RAPTOR在方括號(hào)內(nèi)執(zhí)行數(shù)學(xué)計(jì)算,58,什么是平行數(shù)組?,計(jì)算某個(gè)班級(jí)學(xué)員的一個(gè)學(xué)期4門課程的平均成績。 應(yīng)該如何保存參與計(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)行過程中動(dòng)態(tài)增加數(shù)組元素;但不可以將一個(gè)一維數(shù)組在算法運(yùn)行中擴(kuò)展成二維數(shù)組,60,RAPTOR子程序與子圖定義與調(diào)用,在計(jì)算機(jī)科學(xué)中,將實(shí)際問題抽象化是解決問題的關(guān)鍵要素之一 一項(xiàng)研究成果表明,人類的大腦平均只能同時(shí)積極關(guān)注約4件事情,大大少于以往研究所得的7件事情的結(jié)論 為了解決復(fù)雜的問題,必須能夠研究問題的“主要方面(big issues)”,61,計(jì)算一個(gè)英文文章中,使用了“a”開頭的單詞的次數(shù),一個(gè)英文單詞的以特定字母開頭,那么它的前面一定有空格 所以,判斷一個(gè)空格后面是否跟了一個(gè)字母“a”,就可以找出一段英文中所有以a開頭單詞的使用次數(shù),62,63,統(tǒng)計(jì) “a
16、z” 字母開頭單詞數(shù),解這個(gè)問題程序似乎只要把上個(gè)例子部分程序再復(fù)制、粘貼25次,做一點(diǎn)修改就可以解決問題 但是,為了使得設(shè)計(jì)的程序更加簡練、具有更長久的生命力和更廣泛的用途,可以將上一例中的程序改造成一個(gè)子程序,或者是一種抽象: 其功能就是“統(tǒng)計(jì)一個(gè)特定字母開頭的單詞,在一段文字中出現(xiàn)了多少次”,64,創(chuàng)建RAPTOR子程序,子程序如同一個(gè)加工廠,輸入原材料,然后按設(shè)計(jì)要求處理原材料,輸出產(chǎn)成品 子程序的原材料就是一些變量,例如(in:char),為統(tǒng)計(jì)子程序輸入測試樣本 子程序的產(chǎn)成品也是變量,例如(out: count),向調(diào)用它的程序返回統(tǒng)計(jì)結(jié)果 其中,in, out表示子程序的輸入輸
17、出參數(shù),65,子程序定義,子程序定義界面上的接口參數(shù)稱為“形式參數(shù)” RAPTOR的子程序參數(shù)不得超過6個(gè) 子程序參數(shù)可以是單個(gè)變量,也可以是數(shù)組,66,一個(gè)設(shè)計(jì)完成的子程序,67,子程序的調(diào)用,如要調(diào)用子程序,可以通過調(diào)用語句并給子程序的接口賦予“實(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ì)算問題求解的一般過程,理解問題 制定計(jì)劃 執(zhí)行計(jì)劃 回顧與總結(jié),71,使用計(jì)算機(jī)進(jìn)行問題求解,程序開發(fā)周期 分析問題 設(shè)計(jì)程序以
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 旅游景區(qū)開發(fā)經(jīng)營權(quán)轉(zhuǎn)讓合同
- 物聯(lián)網(wǎng)技術(shù)在農(nóng)業(yè)智能設(shè)備中的合作協(xié)議
- 城市交通基礎(chǔ)設(shè)施建設(shè)合同
- 廠房施工承包合同
- 別墅工程勞務(wù)承包合同
- 電線電纜項(xiàng)目供貨合同
- 醫(yī)院專業(yè)技術(shù)人員進(jìn)修學(xué)習(xí)協(xié)議書
- 承包建設(shè)房屋合同書
- 電子商務(wù)平臺(tái)服務(wù)與商家合作協(xié)議
- 碳排放權(quán)交易主協(xié)議
- 廚房安全知識(shí)課件
- 部編版語文四年級(jí)下冊第四單元整體教學(xué)設(shè)計(jì)教案
- 2023-2024學(xué)年湖南師大附中高一(下)入學(xué)數(shù)學(xué)試卷(含解析)
- 有色金屬冶金課件
- 公司留人方案
- 乒乓球基礎(chǔ)知識(shí)與技巧教案
- 親子教育活動(dòng)指導(dǎo)課件
- 青島啤酒企業(yè)文化
- 中華民族的形成與發(fā)展(原版)
- 雪鐵龍?jiān)埔軨4說明書
- 《健美操裁判法》課件
評(píng)論
0/150
提交評(píng)論