![計算機結構 附加_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/16/69323483-b4c7-42e0-95d1-142fd5f39260/69323483-b4c7-42e0-95d1-142fd5f392601.gif)
![計算機結構 附加_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/16/69323483-b4c7-42e0-95d1-142fd5f39260/69323483-b4c7-42e0-95d1-142fd5f392602.gif)
![計算機結構 附加_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/16/69323483-b4c7-42e0-95d1-142fd5f39260/69323483-b4c7-42e0-95d1-142fd5f392603.gif)
![計算機結構 附加_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/16/69323483-b4c7-42e0-95d1-142fd5f39260/69323483-b4c7-42e0-95d1-142fd5f392604.gif)
![計算機結構 附加_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/16/69323483-b4c7-42e0-95d1-142fd5f39260/69323483-b4c7-42e0-95d1-142fd5f392605.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、附加內容計算機結構計算機結構l 本章要點本章要點l 主要內容主要內容2.1 2.1 算法的概念算法的概念2.2 2.2 簡單算法舉例簡單算法舉例2.3 2.3 算法的特性算法的特性2.4 2.4 怎樣表示一個算法怎樣表示一個算法2.5 2.5 化程序設計方法化程序設計方法 一個程序應包括兩個方面的內容一個程序應包括兩個方面的內容: :對數(shù)據的描述:數(shù)據結構對數(shù)據的描述:數(shù)據結構(data structure)對操作的描述:算法對操作的描述:算法(algorithm)著名計算機科學家沃思提出一個公式著名計算機科學家沃思提出一個公式: 數(shù)據結構數(shù)據結構 + 算法算法 = 程序程序數(shù)據結構算法程序設
2、計方法語言工具數(shù)據結構算法程序設計方法語言工具完整的程序設計應該是完整的程序設計應該是: : 2.1 算法的概念算法的概念 廣義地說,為解決一個問題而采取的方廣義地說,為解決一個問題而采取的方法和步驟,就稱為法和步驟,就稱為“算法算法”。方法方法1:1+2,+3,+4,一直加到,一直加到100 加加99次次方法方法2:100+(1+99)+(2+98)+(49 +51)+50 = 100 + 49100 +50 加加51次次對同一個問題,可有不同的解題方法和步驟對同一個問題,可有不同的解題方法和步驟例: 求1001nn 2.1 算法的概念 為了有效地進行解題,不僅需要保證算法正為了有效地進行解
3、題,不僅需要保證算法正確,還要考慮算法的質量,選擇合適的算法。希確,還要考慮算法的質量,選擇合適的算法。希望方法簡單,運算步驟少。望方法簡單,運算步驟少。計算機算法可分為兩大類別:計算機算法可分為兩大類別:數(shù)值運算算法:求數(shù)值解,例如求方程的根、數(shù)值運算算法:求數(shù)值解,例如求方程的根、求函數(shù)的定積分等。求函數(shù)的定積分等。非數(shù)值運算:包括的面十分廣泛,最常見的是非數(shù)值運算:包括的面十分廣泛,最常見的是用于事務管理領域,例如圖書檢索、人事管理、用于事務管理領域,例如圖書檢索、人事管理、行車調度管理等。行車調度管理等。 2.2 簡單算法舉例簡單算法舉例例例2.1: 求求12345 步驟步驟1 1:先
4、求:先求1 12 2,得到結果,得到結果2 2步驟步驟2 2:將步驟:將步驟1 1得到的乘積得到的乘積2 2再乘以再乘以3 3,得到結果,得到結果6 6步驟步驟3 3:將:將6 6再乘以再乘以4 4,得,得2424步驟步驟4 4:將:將2424再乘以再乘以5 5,得,得120120如果要求如果要求1 12 210001000,則要寫,則要寫999999個步驟個步驟 S1:使:使p=1。 S2:使:使i=2。 S3:使:使pi,乘積仍放在變量,乘積仍放在變量p中,可表示為:中,可表示為:pip S4:使:使i的值加的值加1,即,即i+1i。 S5:如果:如果i不大于不大于5,返回重新執(zhí)行步驟,返
5、回重新執(zhí)行步驟S3以及其后以及其后的步驟的步驟S4和和S5;否則,算法結束。最后得到;否則,算法結束。最后得到p的值就的值就是是5!的值。的值??梢栽O兩個變量:可以設兩個變量:一個變量代表被乘數(shù),一個變一個變量代表被乘數(shù),一個變量代表乘數(shù)。不另設變量存放乘積結果,而直量代表乘數(shù)。不另設變量存放乘積結果,而直接將每一步驟的乘積放在被乘數(shù)變量中。設接將每一步驟的乘積放在被乘數(shù)變量中。設p p為為被乘數(shù),被乘數(shù),i i為乘數(shù)。用循環(huán)算法來求結果為乘數(shù)。用循環(huán)算法來求結果, , 算法算法可改寫:可改寫: S1:1pS2:3 iS3:pi pS4:i+2 pS5:若i11,返回S3。否則,結束。 如果題
6、目改為:求如果題目改為:求1 13 35 510001000算法只算法只需作很少的改動:需作很少的改動: 用這種方法表示的算法具有通用性、靈活用這種方法表示的算法具有通用性、靈活性。性。S3S3到到S5S5組成一個循環(huán),在實現(xiàn)算法時組成一個循環(huán),在實現(xiàn)算法時 要要反復多次執(zhí)行反復多次執(zhí)行S3S3,S4S4,S5S5等步驟,直到某一時等步驟,直到某一時刻,執(zhí)行刻,執(zhí)行S5S5步驟時經過判斷,乘數(shù)步驟時經過判斷,乘數(shù)i i已超過規(guī)已超過規(guī)定的數(shù)值而不返回定的數(shù)值而不返回S3S3步驟為止。此時算法結束步驟為止。此時算法結束,變量,變量p p的值就是所求結果。的值就是所求結果。例例2.2 有有50個學
7、生,要求將他們之中成績在個學生,要求將他們之中成績在80分以分以上者打印出來。設上者打印出來。設n表示學號,表示學號, n1代表第一個學生代表第一個學生學號,學號, 代表第代表第i個學生學號。用個學生學號。用G代表學生成績代表學生成績 , gi代表第代表第i個學生成績,算法表示如下個學生成績,算法表示如下: S1S1:1 1 i i S2 S2:如果:如果8080,則打印和,否則不打印。,則打印和,否則不打印。 S3 S3:i+1 i+1 i i S4 S4:如果:如果i50i50,返回,返回S2S2,繼續(xù)執(zhí)行。否則算法結束,繼續(xù)執(zhí)行。否則算法結束 變量變量i i作為下標,用來控制序號作為下標
8、,用來控制序號( (第幾個學生,第第幾個學生,第幾個成績幾個成績) )。當。當i i超過超過5050時,表示時,表示 已對已對5050個學生的個學生的成績處理完畢,算法結束。成績處理完畢,算法結束。例例2.3 判定判定20002500年中的每一年是否閏年,將結果輸出。年中的每一年是否閏年,將結果輸出。 變量變量i i作為下標,用來控制序號作為下標,用來控制序號( (第幾個學生,第第幾個學生,第幾個成績幾個成績) )。當。當i i超過超過5050時,表示時,表示 已對已對5050個學生的個學生的成績處理完畢,算法結束。成績處理完畢,算法結束。分析:分析:閏年的條件是:閏年的條件是:(1)(1)能
9、被能被4 4整除,但不能被整除,但不能被100100整除整除的年份都是閏年,如的年份都是閏年,如1996,20041996,2004年是閏年;年是閏年;(2)(2)能被能被100100整除,又能被整除,又能被400400整除的年份是閏年。如整除的年份是閏年。如1600,20001600,2000年年是閏年。不符合這兩個條件的年份不是閏年。是閏年。不符合這兩個條件的年份不是閏年。 設設y y為被檢測的年份,算法可表示如下為被檢測的年份,算法可表示如下 :S1S1:2000 2000 y yS2S2:若:若y y不能被不能被4 4整除,則輸出整除,則輸出y “y “不是閏年不是閏年”。然后。然后轉
10、到轉到S6S6。S3S3:若:若y y能被能被4 4整除,不能被整除,不能被100100整除,則輸出整除,則輸出y “y “是閏是閏年年”。然后轉到。然后轉到S6S6。S4S4:若:若y y能被能被100100整除,又能被整除,又能被400400整除,輸出整除,輸出y“y“是閏是閏年年”,否則輸出,否則輸出“不是閏年不是閏年”。 然后轉到然后轉到S6S6。S5: S5: 輸出輸出y “y “不是閏年不是閏年”。S6S6:y+1 y+1 y yS7S7:當:當y2500y2500時,轉時,轉S2S2繼續(xù)執(zhí)行,如繼續(xù)執(zhí)行,如y y25002500,算法,算法停止。停止。 以上算法中每做一步以上算法
11、中每做一步都分別分離出一些范圍都分別分離出一些范圍( (巳能判定為閏年或非巳能判定為閏年或非閏年閏年) ),逐步縮小范圍,逐步縮小范圍,直至執(zhí)行,直至執(zhí)行S5S5時,只可時,只可能是非閏年。能是非閏年?!捌渌渌?” 包括能被包括能被4 4整整除,又能被除,又能被100100整除,整除,而不能被而不能被400400整除的那整除的那些年份些年份( (如如1990) 1990) 是非是非閏年。閏年。例例2.4 求求算法如下 :1001991.4131211 S1S1:sign=1sign=1 S2 S2:sum=1sum=1 S3 S3:deno=2deno=2 S4 S4:sign=(-1)s
12、ign=(-1)signsign S5 S5:term=signterm=sign(1/deno)(1/deno) S6 S6:sum=sum+termsum=sum+term S7 S7:deno=deno+1deno=deno+1 S8 S8:若:若deno100deno100返回返回S4S4,否則算法結束。,否則算法結束。單詞作變量名,以使算法更易于理解:sum表示累加和,deno是英文分母(denom inator)縮寫,sign代表數(shù)值的符號,term代表某一項。 反復執(zhí)行S4到S8步驟,直到分母大于100為止。一共執(zhí)行了99次循環(huán),向sum累加入了99個分數(shù)。sum最后的值就是多項
13、式的值。 例例2.5 對一個大于或等于對一個大于或等于3的正整數(shù),判斷它是的正整數(shù),判斷它是不是一個素數(shù)。不是一個素數(shù)。 概念:概念:所謂素數(shù),是指除了所謂素數(shù),是指除了1 1和該數(shù)本身之外,不能被和該數(shù)本身之外,不能被其它任何整數(shù)整除的數(shù)。例如,其它任何整數(shù)整除的數(shù)。例如,1313是素數(shù)。因為它是素數(shù)。因為它不能被不能被2 2,3 3,4 4,1212整除。整除。分析:分析:判斷一個數(shù)判斷一個數(shù)n(n3)n(n3)是否素數(shù)的方法:是否素數(shù)的方法: 將將n n作為被除數(shù),將作為被除數(shù),將2 2到到(n-1)(n-1)各個整數(shù)輪流作為除數(shù)各個整數(shù)輪流作為除數(shù),如果都不能被整除,則,如果都不能被整
14、除,則n n為素數(shù)。為素數(shù)。 算法如下 :S1S1:輸入:輸入n n的值的值S2S2:i=2 i=2 (i i作為除數(shù))作為除數(shù))S3S3:n n被被i i除,得余數(shù)除,得余數(shù)r rS4S4:如果:如果r=0r=0,表示,表示n n能被能被i i整除,則打印整除,則打印n“n“不不是素數(shù)是素數(shù)”,算法結束。否則執(zhí)行,算法結束。否則執(zhí)行S5S5S5S5:i+1i+1i iS6S6:如果:如果in-1in-1,返回,返回S3S3。否則打印。否則打印 n “ n “是素是素數(shù)數(shù)”。然后結束。然后結束。 實際上,實際上,n n不必被不必被2 2到到(n-1)(n-1)的整數(shù)除,只需被的整數(shù)除,只需被2
15、 2到到n/2n/2間整間整數(shù)除,甚至只需被數(shù)除,甚至只需被2 2到到 之間的整數(shù)除即可。之間的整數(shù)除即可。n 2.3 算法的特性有窮性:包含有限的操作步驟。包含有限的操作步驟。確定性:算法中的每一個步驟都應當是確定的算法中的每一個步驟都應當是確定的。 有零個或多個輸入:輸入是指在執(zhí)行算法時需要輸入是指在執(zhí)行算法時需要從外界取得必要的信息。從外界取得必要的信息。有一個或多個輸出:算法的目的是為了求解,算法的目的是為了求解,“解解” ” 就是輸出。就是輸出。 有效性:算法中的每一個步驟都應當能有效地執(zhí)算法中的每一個步驟都應當能有效地執(zhí)行,并得到確定的結果行,并得到確定的結果 。一個算法應該具有以
16、下特點:一個算法應該具有以下特點: 2.4 算法的表示可以用不同的方法表示算法,常用的有:可以用不同的方法表示算法,常用的有:n自然語言自然語言n傳統(tǒng)流程圖傳統(tǒng)流程圖n結構化流程圖結構化流程圖n偽代碼偽代碼nPADPAD圖圖 2.4.1 用自然語言表示算法 自然語言就是人們日常使用的語言,可以是自然語言就是人們日常使用的語言,可以是漢語或英語或其它語言。用自然語言表示通俗漢語或英語或其它語言。用自然語言表示通俗易懂,但文字冗長,容易出現(xiàn)易懂,但文字冗長,容易出現(xiàn)“歧義性歧義性”。自。自然語言表示的含義往往不大嚴格,要根據上下然語言表示的含義往往不大嚴格,要根據上下文才能判斷其正確含義,描述包含
17、分支和循環(huán)文才能判斷其正確含義,描述包含分支和循環(huán)的算法時也不很方便。因此,除了那些很簡單的算法時也不很方便。因此,除了那些很簡單的問題外,一般不用自然語言描述算法。的問題外,一般不用自然語言描述算法。 2.4.2 用流程圖表示算法美國國家標準化協(xié)會美國國家標準化協(xié)會ANSI(American National ANSI(American National Standard Institute)Standard Institute)規(guī)定了一些常用的流程圖規(guī)定了一些常用的流程圖符號:符號:起止框起止框判斷框判斷框處理框處理框輸入輸入/輸出框輸出框注釋框注釋框流向線流向線連接點連接點例例2.6 將
18、求將求5!的算法用流程圖表示的算法用流程圖表示如果需要將最后結如果需要將最后結果打印出來,可在果打印出來,可在菱形框的下面加一菱形框的下面加一個輸出框個輸出框。 例例2.7 將例將例2.2的算法用流的算法用流程圖表示。打印程圖表示。打印50名名 學生學生中成績在中成績在80分以上者的學號分以上者的學號和成績。和成績。如果如果包括如果如果包括這個輸入數(shù)據這個輸入數(shù)據的部分,流程的部分,流程圖為圖為 例例2.8 將例將例2.3判定閏年的算判定閏年的算法用流程圖表法用流程圖表示示 用流程圖表示算法要比用文字描述算法邏輯清晰、易于理解。 例例2.9 將例將例2.4的算法用流程圖表示的算法用流程圖表示
19、1001991.4131211 例例2.10 將例將例2.5判斷素數(shù)的判斷素數(shù)的算法用流程圖表示算法用流程圖表示 小結:小結:流程圖是表示算法的較好的工具。一流程圖是表示算法的較好的工具。一個流程圖包括以下幾部分個流程圖包括以下幾部分 :(1)(1)表示相應操作的框;表示相應操作的框;(2)(2)帶箭頭的流程線;帶箭頭的流程線;(3)(3)框內外必要的文字說明。框內外必要的文字說明。 2.4.3 三種基本結構和改進的流程圖三種基本結構和改進的流程圖1.1.傳統(tǒng)流程圖的弊端傳統(tǒng)流程圖的弊端 傳統(tǒng)流程圖用流程線指出各框的執(zhí)行順序,傳統(tǒng)流程圖用流程線指出各框的執(zhí)行順序,對流程線的使用沒有嚴格限制。因
20、此,使用者對流程線的使用沒有嚴格限制。因此,使用者可以毫不受限制地使流程隨意地轉向,使流程可以毫不受限制地使流程隨意地轉向,使流程圖變得毫無規(guī)律,閱讀者要花很大精力去追蹤圖變得毫無規(guī)律,閱讀者要花很大精力去追蹤流程,使人難以理解算法的邏輯。如圖:流程,使人難以理解算法的邏輯。如圖:傳統(tǒng)流程圖的流程可以是: 這種如同亂麻一樣的算法稱為這種如同亂麻一樣的算法稱為BSBS型算法,意為一碗型算法,意為一碗面條面條(A Bowl of Spaghetti)(A Bowl of Spaghetti),亂無頭緒。,亂無頭緒。缺點:難以閱讀、修改,使算法的可靠性和可維護性難以保證。解決辦法:必須限制箭頭的濫用
21、,即不允許無規(guī)律地使流程隨意轉向,只能順序地進行下去。 2.三種基本結構 BohraBohra和和JacopiniJacopini提出了以下三種基本結構提出了以下三種基本結構: 順序結構、選擇結構、循環(huán)結構順序結構、選擇結構、循環(huán)結構 用這三種基本結構作為表示一個良好算法的用這三種基本結構作為表示一個良好算法的基本單元。基本單元。三種基本結構的圖示: 順序結構順序結構選擇結構選擇結構循環(huán)循環(huán)結構的圖示: 當型當型(While型型)循環(huán)結構循環(huán)結構 直到型直到型(Until型型)循環(huán)循環(huán) 三種基本結構的共同特點:三種基本結構的共同特點:(1)(1)只有一個入口。只有一個入口。 (2)(2)只有一
22、個出口。只有一個出口。(請注意:請注意:一個菱形判斷一個菱形判斷框有兩個出口,而一個選擇結構只有一個框有兩個出口,而一個選擇結構只有一個出口。不要將菱形框的出口和選擇結構的出口。不要將菱形框的出口和選擇結構的出口混淆。)出口混淆。)(3)(3)結構內的每一部分都有機會被執(zhí)行到。結構內的每一部分都有機會被執(zhí)行到。(4)(4)結構內不存在結構內不存在“死循環(huán)死循環(huán)”(”(無終止的循環(huán)無終止的循環(huán)) )。 圖中沒有一條從入口到出圖中沒有一條從入口到出口的路徑通過口的路徑通過A A框框不正確的流程表示:流程內的死循環(huán)流程內的死循環(huán)小結:由三種基本結構順序組成的算法結構,可由三種基本結構順序組成的算法結
23、構,可以解決任何復雜的問題。由基本結構所構以解決任何復雜的問題。由基本結構所構成的算法屬于成的算法屬于“結構化結構化”的算法,它不存的算法,它不存在無規(guī)律的轉向,只在本基本結構內才允在無規(guī)律的轉向,只在本基本結構內才允許存在分支和向前或向后的跳轉。許存在分支和向前或向后的跳轉。擴展:只要具有上述四個只要具有上述四個特點的都可以作為特點的都可以作為基本結構。可以自基本結構。可以自己定義基本結構,己定義基本結構,并由這些基本結構并由這些基本結構組成結構化程序。組成結構化程序。此圖符合基本結構的特點 這是一個多分支選這是一個多分支選擇結構,根據表達式擇結構,根據表達式的值決定執(zhí)行路線。的值決定執(zhí)行路
24、線。虛線框內的結構是一虛線框內的結構是一個入口一個出口,并個入口一個出口,并且有上述全部的四個且有上述全部的四個特點。由此構成的算特點。由此構成的算法結構也是結構化的法結構也是結構化的算法??梢哉J為這是算法??梢哉J為這是由三種基本結構所派由三種基本結構所派生出來的。生出來的。 2.4.4 用N-S流程圖表示算法 1973 1973年美國學者年美國學者I.NassiI.Nassi和和B.ShneidermanB.Shneiderman提出了提出了一種新的流程圖形式。在這種流程圖中,完全去掉一種新的流程圖形式。在這種流程圖中,完全去掉了帶箭頭的流程線。全部算法寫在一個矩形框內,了帶箭頭的流程線。全
25、部算法寫在一個矩形框內,在該框內還可以包含其它的從屬于它的框,或者說在該框內還可以包含其它的從屬于它的框,或者說,由一些基本的框組成一個大的框。這種流程圖又,由一些基本的框組成一個大的框。這種流程圖又稱稱N-SN-S結構化流程圖。結構化流程圖。 N-S流程圖用以下的流程圖符號: (1)順序結構順序結構(2)選擇結構選擇結構(3)循環(huán)結構循環(huán)結構 用三種用三種N-SN-S流程圖中的基本框,可以組成復雜的流程圖中的基本框,可以組成復雜的N-SN-S流程圖。圖中的流程圖。圖中的A A框或框或B B框,可以是一個簡單的操作,框,可以是一個簡單的操作,也可以是三個基本結構之一也可以是三個基本結構之一。
26、A框可以是一個選擇結構 B框可以是一個循環(huán)結構 例例2.11 將例將例2.1的求的求5!算法用算法用N-S圖表示圖表示例例2.12 將例將例2.2的算法的算法用用N-S圖表示。(打圖表示。(打印印50名學生中成績高名學生中成績高于于80分的學號和成績分的學號和成績)沒有輸入數(shù)據例例2.12 將例將例2.2的算法的算法用用N-S圖表示。(打圖表示。(打印印50名學生中成績高名學生中成績高于于80分的學號和成績分的學號和成績)有輸入數(shù)據例例2.13 將例將例2.3判定閏判定閏年的算法用年的算法用N-S圖表示圖表示例例2.14 將例將例2.4的算法用的算法用N-S圖圖表示表示1001991.4131
27、211例例2.15 將例將例2.5判別素數(shù)的算法判別素數(shù)的算法用用N-S流程圖表示。流程圖表示。傳統(tǒng)流程圖分析:傳統(tǒng)流程圖分析:出口出口1出口出口2此圖不符合基本結構特點!此圖不符合基本結構特點!由于不能分解為三種基本結由于不能分解為三種基本結構,就無法直接用構,就無法直接用N-SN-S流程流程圖的三種基本結構的符號來圖的三種基本結構的符號來表示。因此,應當先作必要表示。因此,應當先作必要的變換。的變換。例例2.15 將例將例2.5判別素數(shù)的算法判別素數(shù)的算法用用N-S流程圖表示。流程圖表示。傳統(tǒng)流程圖變換為:傳統(tǒng)流程圖變換為:一個出口一個出口用用N-S流程圖表示:流程圖表示:N-SN-S圖表
28、示算法的優(yōu)點圖表示算法的優(yōu)點比文字描述直觀、形象、比文字描述直觀、形象、 易于理解;易于理解;比傳統(tǒng)流程圖緊湊易畫。尤其是它廢除比傳統(tǒng)流程圖緊湊易畫。尤其是它廢除了流程線,整個算法結構是由各個基本了流程線,整個算法結構是由各個基本結構按順序組成的,結構按順序組成的,N-SN-S流程圖中的上流程圖中的上下順序就是執(zhí)行時的順序。用下順序就是執(zhí)行時的順序。用N-SN-S圖表圖表示的算法都是結構化的算法,因為它不示的算法都是結構化的算法,因為它不可能出現(xiàn)流程無規(guī)律的跳轉,而只能自可能出現(xiàn)流程無規(guī)律的跳轉,而只能自上而下地順序執(zhí)行。上而下地順序執(zhí)行。小結:小結:一個結構化的算法是由一些基本結構順序組成一
29、個結構化的算法是由一些基本結構順序組成的。在基本結構之間不存在向前或向后的跳轉的。在基本結構之間不存在向前或向后的跳轉,流程的轉移只存在于一個基本結構范圍之內,流程的轉移只存在于一個基本結構范圍之內( (如循環(huán)中流程的跳轉如循環(huán)中流程的跳轉) );一;一 個非結構化的算法個非結構化的算法可以用一個等價的結構化算法代替,其功能不可以用一個等價的結構化算法代替,其功能不變變 。如果一個算法不能分解為若干個基本結構。如果一個算法不能分解為若干個基本結構,則它必然不是一個結構化的算法。,則它必然不是一個結構化的算法。 2.4.5 用位代碼表示算法概念:概念:偽代碼是用介于自然語言和計算機語言偽代碼是用
30、介于自然語言和計算機語言之間的文字和符號來描述算法。之間的文字和符號來描述算法。特點:特點:它如同一篇文章一樣它如同一篇文章一樣 ,自上而下地寫下,自上而下地寫下來。每一行來。每一行( (或幾行或幾行) )表示一個基本操作。它不用表示一個基本操作。它不用圖形符號,因此書寫方便圖形符號,因此書寫方便 、格式緊湊,也比較、格式緊湊,也比較好懂,也便于向計算機語言算法好懂,也便于向計算機語言算法( (即程序即程序) )過渡。過渡。用處:用處:適用于設計過程中需要反復修改時的流適用于設計過程中需要反復修改時的流程描述。程描述。 IF x is positive THEN print x ELSE pr
31、int -x也可以用漢字偽代碼表示:也可以用漢字偽代碼表示: 若若 x為正為正 打印打印 x 否則否則 打印打印 -x也可以中英文混用,如:也可以中英文混用,如: IF x 為正為正 print x ELSE print -x例:例: “ “打印打印x x的絕對值的絕對值”的算法可以用偽代碼表的算法可以用偽代碼表示為:示為:開始開始 置置t的初值為的初值為1 置置i的初值為的初值為2 當當i=5,執(zhí)行下面操作:,執(zhí)行下面操作: 使使t=ti 使使i=i+1 循環(huán)體到此結束循環(huán)體到此結束 輸出輸出t的值的值 結束結束也可以寫成以下形式:也可以寫成以下形式: BEGIN算法開始算法開始 1t 2
32、i while i5 ti t i+1 i print t END算法結束算法結束例例2.16 求求5!。用偽代碼表示算。用偽代碼表示算法:法:例例2.17 輸出輸出50個學生中成績高于個學生中成績高于80分者的學號和成績。分者的學號和成績。用偽代碼表示算法:用偽代碼表示算法:BEGIN算法開始算法開始 1 i while i50 input ni and gi i+1 i 1 i while i50 if gi80 print ni and gi i+1 i END算法結束算法結束 2.4.6 用計算機語言表示算法概念:概念:用計算機實現(xiàn)算法。計算機是無法識別用計算機實現(xiàn)算法。計算機是無法識
33、別流程圖和偽代碼的。只有用計算機語言編寫的程流程圖和偽代碼的。只有用計算機語言編寫的程序才能被計算機執(zhí)行。因此在用流程圖或偽代碼序才能被計算機執(zhí)行。因此在用流程圖或偽代碼描述出一個算法后,還要將它轉換成計算機語言描述出一個算法后,還要將它轉換成計算機語言程序。程序。 特點:特點:用計算機語言表示算法必須嚴格遵循所用計算機語言表示算法必須嚴格遵循所用的語言的語法規(guī)則,這是和偽代碼不同的。用的語言的語法規(guī)則,這是和偽代碼不同的。用處:用處:要完成一件工作,包括設計算法和實現(xiàn)要完成一件工作,包括設計算法和實現(xiàn)算法兩個部分。設計算法的目的是為了實現(xiàn)算法算法兩個部分。設計算法的目的是為了實現(xiàn)算法。#in
34、clude void main( ) int i,t; t=1; i=2; while(i=5) t=t*i; i=i+1; printf(%dn,t); 例例 2.20 將例將例2.16表示表示的算法(求的算法(求5!)用)用C語言表示。語言表示。應當強調說明:應當強調說明:寫出了寫出了C C程序,仍然只是程序,仍然只是描述了算法,并未實現(xiàn)算法。只有運行程描述了算法,并未實現(xiàn)算法。只有運行程序才是實現(xiàn)算法。應該說,用計算機語言序才是實現(xiàn)算法。應該說,用計算機語言表示的算法是計算機能夠執(zhí)行的算法。表示的算法是計算機能夠執(zhí)行的算法。 2.5 結構化程序設計方法一個結構化程序一個結構化程序 就是用高級語言表示的結構化算就是用高級語
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教版數(shù)學八年級下冊16.2《二次根式的乘除》聽評課記錄4
- 岳麓版歷史八年級下冊第16課《“一國兩制”與香港、澳門回歸祖國》聽課評課記錄
- 蘇教版三年級第五冊整百數(shù)乘一位數(shù)的口算教學設計
- 小學二年級語文教學計劃范文
- 廠房物業(yè)管理服務合同范本
- 五年級上冊數(shù)學聽評課記錄《第5單元:第3課時 用字母表示稍復雜的數(shù)量關系》人教新課標
- 2025年度互聯(lián)網金融服務連帶責任保證擔保協(xié)議范文
- 2025年度蔬菜種植基地病蟲害防治合作協(xié)議
- 二零二五年度XX裝修公司員工崗位責任合同協(xié)議書
- 2025年度電商團隊數(shù)據安全合作協(xié)議
- 詩詞寫作入門課件
- 2023年上海青浦區(qū)區(qū)管企業(yè)統(tǒng)一招考聘用筆試題庫含答案解析
- 2023年高一物理期末考試卷(人教版)
- 2023版押品考試題庫必考點含答案
- 植物之歌觀后感
- 空氣能熱泵安裝示意圖
- 建筑工程施工質量驗收規(guī)范檢驗批填寫全套表格示范填寫與說明
- 2020年中秋國慶假日文化旅游市場安全生產檢查表
- 辦公家具項目實施方案、供貨方案
- 七年級英語下冊閱讀理解10篇
- 節(jié)后開工收心會
評論
0/150
提交評論