高樹芳
【摘 要】Raptor軟件是一種基于流程圖的圖形化的算法設計工具,本文對Raptor軟件的下載、安裝與啟動方法、以及Raptor的基本符號和使用方法進行了簡介。利用Raptor軟件作為程序設計基礎課程的實驗環境,可以把傳統的“寫程序”過程變成“畫程序”過程,可大大降低初學者學習編程語言的難度,激發學生學習興趣,提高課程教學效果。
【關鍵詞】Raptor;程序設計;流程圖;教學改革
一、引言
Raptor(The Rapid Algorithmic Prototyping Tool for Ordered Reasoning,用于有序推理的快速算法原型工具),它提供6個基本圖形符號,用戶可以用連接流程圖的方法創建算法,然后調試和運行算法,還可以將流程圖直接轉換成C++、C#和Java等高級程序語言。
學習Raptor可以從零開始培養學生的程序設計基礎,包括語言基礎,三種控制結構(順序、選擇、循環),也包括數組、函數、子程序等模塊化程序設計內容,還包括圖形界面的設計以及視窗交互程序內容。借助Raptor軟件學習編程,可以激發學生的學習興趣,培養學生的邏輯思維能力,促進學生思考與創新。
二、Raptor軟件的使用
(一)下載、安裝與啟動
Raptor是一款免費的工具,可以從百度等網站下載,官方網站是http://raptor.martincarlisle.com/,網站提供安裝版和便攜版(綠色版本)兩種版本。本文內容基于4.0.5漢化版。安裝Raptor后桌面上會出現一個程序圖標,雙擊圖標即可啟動程序。
Raptor有初級、中級、面向對象三種模式,用戶可以從“模式”菜單中選擇。其中,初級模式可以創始建子圖,但不能創建子程序;中級模式既可以創始建子圖和子程序;面向對象模式用于創建UML圖。
(二)Raptor的基本使用
啟動Raptor后,工作區中默認有開始(Start)和結束(End)兩個符號。繪制流程圖時,先從左側符號區單擊某個符號,然后將鼠標指針指向流程圖中的箭頭線段,當鼠標指針變為小手形狀時單擊鼠標即可畫出符號,再次在箭頭線段上單擊小手則會再次畫出同樣的符號。
雙擊符號會彈出對話框以編輯符號內容;拖動符號可改變符號位置;右擊符號會彈出快捷菜單,可從中選擇“復制/剪切/粘貼/注釋”等選項進行相應操作;拖動鼠標在流程圖中拖出一個虛框(其中的符號會顯示為紅色),可以將選中部分作為一個整體復制/移動或刪除。
單擊工具欄上的運行按鈕運行流程圖,運行結果會在主控制臺輸出,同時會顯示運算次數。在窗口左下角的觀察窗口還將動態顯示各個變量的值。
(三)Raptor的基本符號
1)輸入符號(Input)
用于在程序執行過程中從鍵盤輸入數據并將數據保存到一個變量。在“輸入提示”文本框中輸入提示信息,告知要輸入的數據類型、值的范圍、數據計量單位等信息,提示信息要用一對英文雙引號引起,在“輸入變量”文本框中輸入變量名稱,變量名稱以字母(不區分大小寫)和下劃線打頭,可以使用數字符號,不能包含空格和保留字。例如:提示信息為”Input your age”,變量名為age,在圖形中將會顯示”Input your age” GET age字樣。
2)輸出符號(Output)
用于在主控窗口顯示加工處理后的信息,可以顯示一個或多個文字串或變量,每個文字串要用一對雙引號引起,文字串和(或)變量之間要使用“+”號連接,例如:”x=”+x。如果希望在輸出信息后另起一行,則需要選中“End current line”復選框。例如,要以“x=5,y=6”的格式輸出x和y兩個變量的值,輸出框內容應為:"x="+x+",y="+y 。
3)賦值符號(Assignment)
用于執行計算然后將結果存儲在變量中。例如,要將8賦給age變量,應該在“Set”文本框中輸入變量名稱age,在“to”文本框中輸入8。“to” 文本框中可以是常量、變量或表達式。一個賦值語句只能給一個變量賦值。賦值語句顯示為age←8。
4)選擇符號(Selection)
用于實現分支算法。雙擊菱形框輸入判定條件,表達式可以由常量、變量和運算符組成,可以使用關系運算符(如>、>=、=、!=等)構造表達式,也可以使用邏輯運算符“與(and)”“或(or)”“非(not)”“異或(xor)”構造多條件表達式。
可以在Yes分支或No分支中的一個分支線段上插入流程圖符號,從而形成單分支結構;也可以在Yes分支和No分支中都插入流程圖符號,形成雙分支結構;還可以在Yes分支或(和)No分支中再插入選擇符號,從而構成嵌套分支結構。
5)循環符號(Loop)
用于實現循環結構。雙擊橢圓符號或菱形框符號均可輸入循環條件,條件表達式為真(true)時執行Yes分支退出循環;條件表達式為假(false)時則執行No分支,此時將執行循環體內的語句。
可以在菱形框符號的上方或下方插入流程圖符號以設置要重復的語句。菱形框符號上方的語句“至少”會執行一次,菱形框符號下方的語句是“先判斷、再執行”,也可以一次也不執行,可見Raptor完全可以模擬諸如C語言的“while”“do while”“for”三種循環結構,但是不能實現高級語言中循環的異常結束或退出功能(continue和break語句)。
(四)利用“子程序”實現模塊化程序設計
Raptor中有子圖和子程序概念。子圖是將main子圖進行擴展或折疊的一種方法,可以將一個大的復雜的流程圖劃分為一個main子圖和多個其他子圖,從而使圖形的閱讀和修改變得容易。所有子圖和main子圖共享所有變量,各圖之間無須定義和傳遞參數信息。
子程序是帶有參數的子圖。main子圖也可以看成一個子程序。子程序是相互獨立、級別平等的,每個子程序有各自的變量,一個子程序中的變量和調用它的程序沒有關系,一個子程序和調用它的子程序之間通過子程序的參數傳遞信息。參數有輸入、輸出、輸入/輸出(in、out、in out)三種,輸入參數向所調用的子程序傳遞信息;輸出參數由子程序向調用它的子圖或子程序返回信息;輸入/輸出參數在子程序和調用方雙向傳遞參數。
例如:設計判斷一個整數是否是閏年的流程圖,在main子圖中輸入一個年份nf變量,然后調用leap子程序,由子程序判斷nf是否是閏年,如果是閏年返回1,否則返回0,最后在main子圖中根據返回的值(1或0)輸出是否是閏年。leap子程序需要設置兩個參數nf和m,nf表示年份,它是輸入參數,它從main傳遞給leap;m是輸出參數,它從leap將m傳遞參數。
三、Raptor在程序設計課程中的應用
近年來,筆者在“C語言程序設計”課程教學中,堅持使用Raptor輔助教學,從輸入/輸出語句、三種結構,到數組、函數內容教學中,都指導學生先使用Raptor設計流程圖,再將流程圖轉換為代碼。實踐證明,學生非常喜歡Raptor工具,在沒有寫代碼之前就有了成就感,增強了編程的自信心。Raptor工具的學習可以穿插在課程教學中,不需專門安排學時。在學習具體語言時要注意區分Raptor和編程語言的具體差異。
【參考文獻】
[1]張光建. 使用Raptor培養學生程序設計思維[J].福建電腦,2015,(8).
[2] Raptor官網: http://raptor.martincarlisle.com/