偽代碼實例紹
第2章 偽代碼實例介紹 主講:黃明瓊 第2章 偽代碼實例介紹 2.1 偽代碼介紹 2.2 三角形問題 2.3 NextDate函數問題 2.4 傭金問題 2.5 簡單ATM系統 2.6 貨幣轉換器 本章教學目標 正確理解偽代碼的概念 正確理解偽代碼的規則 正確理解偽代碼實例中的邏輯 能夠看懂實例中的偽代碼所表達的含義 2.1 偽代碼介紹 2.1.1 偽代碼概念 2.1.2 一種偽代碼規則 2.1 偽代碼介紹 偽代碼 引言: 在單元測試中,我們會用到三個例子,分別是:三角形問題;邏輯比較復雜的函數,NextDate();有代表性的MIS測試,傭金問題。這三個例子合在一起,可以說明測試人員在單元級別上會遇到的大多數問題,而在討論這幾個問題時,我們會用到偽代碼這個工具,因此今天我們先介紹偽代碼的概念和一種偽代碼規則。 2.1.1 偽代碼概念 偽代碼實際上是計算機代碼的簡略形式,它比流程圖更像計算機代碼。 偽代碼必須結構清晰,代碼簡單,可讀性好。 偽代碼要求程序設計人員集中于解決問題而不是計算機語言。 2.1.1 偽代碼概念(續) 偽代碼(Pseudocode)是一種算法描述語言。使用偽代碼的目的是為了使被描述的算法可以容易地以任何一種編程語言(Pascal,C,Java,etc)實現。因此,偽代碼必須結構清晰、代碼簡單、可讀性好,并且類似自然語言。 介于自然語言與編程語言之間。 2.1.1 偽代碼概念(續) 例如,類Pascal語言的偽代碼的語法規則是: 在偽代碼中,每一條指令占一行(else if,例外)。指令后不跟任何符號(Pascal和C中語句要以分號結尾)。書寫上的“縮進”表示程序中的分支程序結構。這種縮進風格也適用于if-then-else語句。用縮進取代傳統Pascal中的begin和end語句來表示程序的塊結構可以大大提高代碼的清晰性;同一模塊的語句有相同的縮進量,次一級模塊的語句相對與其父級模塊的語句縮進。 2.1.1 偽代碼概念(續) 偽代碼只是像流程圖一樣用在程序設計的初期,幫助寫出程序流程。簡單的程序一般都不用寫流程、寫思路,但是復雜的代碼,最好還是把流程寫下來,總體上去考慮整個功能如何實現。寫完以后不僅可以用來作為以后測試,維護的基礎,還可用來與他人交流。但是,如果把全部的東西寫下來必定可能會浪費很多時間,那么這個時候可以采用偽代碼方式。比如: ? ?IF 九點以前 THEN ? ?? ???do 私人事務; ELSF 9點到18點 THEN ? ?? ???工作; ? ???ELSE ? ?? ???下班; END IF 這樣不但可以達到文檔的效果,同時可以節約時間. 更重要的是,使結構比較清晰,表達方式更加直觀. 2.1.2 一種偽代碼規則 變量聲明 符號‘后的內容表示注釋 數據結構聲明 賦值語句 輸入 輸出 簡單條件 復合條件 順序結構 簡單選擇 2.1.2 一種偽代碼規則(續) 變量聲明用:Dim As 例如: Dim a As INTEGER 意思是:聲明a為整形變量 Dim a,b,c,match As INTEGER 意思是:聲明a,b,c,match都為整形變量 符號‘后的內容表示注釋; 例如: Dim a,b,c As INTEGER ‘定義三角形 ‘的三條邊 2.1.2 一種偽代碼規則(續) 數據結構聲明: Type End 例如: Type STUDENT Dim name As STRING Dim age As INTEGER Dim NO As STRING Dim tele As STRING End STUDENT 2.1.2 一種偽代碼規則(續) 賦值語句: = 例如: tomorrowDay=day+1 tomorrowMonth=month+1 輸入: Input () 例如: Input (a) Input(a,b,c) 2.1.2 一種偽代碼規則(續) 輸出 Output () 例如: Output (“Side A is”,a) Output (“Side B is”,b) Output (“Side C is”,c) Output (“Error!please again!”) 2.1.2 一種偽代碼規則(續) 簡單條件: 例如: Stud.age>=0 Stud.age<=100 a+b>c 2.1