資源描述:
《碼農(nóng)手冊 程序設(shè)計的三種基本結(jié)構(gòu)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、4.1.1算法概述及特性一、算法概述廣義地講:算法是為完成一項任務所應當遵循的一步一步的規(guī)則的、精確的、無歧義的描述,它的總步數(shù)是有限的。狹義地講:算法是解決一個問題采取的方法和步驟的描述。下面通過兩個簡單的例子加以說明:【例】輸入10個數(shù),打印輸出其中最大的數(shù)。其算法設(shè)計如下:1、輸入1個數(shù),存入變量A中,將記錄數(shù)據(jù)個數(shù)的變量N賦值為1,即N=1。2、將A存入表示最大值的變量Max中,即Max=A。3、再輸入一個值給A,如果A>Max,則Max=A,否則Max不變。4、讓記錄數(shù)據(jù)個數(shù)的變量增加1,即N=N+1。5、
2、判斷N是否小于10,若成立則轉(zhuǎn)到第3步執(zhí)行,否則轉(zhuǎn)到第6步。6、打印輸出max。二、算法的特性1、有窮性:一個算法必須在執(zhí)行有窮多個計算步驟后終止。2、確定性:一個算法給出的每個計算步驟,必須都是精確定義的、無二義性的。3、有0個或多個輸入:一個算法中可以沒有輸入,也可以有一個或多個輸入信息,如果需要運行時輸入不同數(shù)據(jù),這些輸入信息是算法所需的初始數(shù)據(jù)。4、有一個或多個輸出:一個算法應有一個或多個輸出,一個算法得到的結(jié)果(中間結(jié)果或最后結(jié)果)就是算法的輸出。沒有輸出的算法是沒有意義的。5、有效性:算法中的每一個步驟必
3、須有效地執(zhí)行,并能得到確定結(jié)果。4.1.2算法的表示一、自然語言與偽代碼表示算法自然語言:就是指人們?nèi)粘J褂玫恼Z言,可以是漢語、英語或其它語言。用自然語言表示的優(yōu)點是通俗易懂,缺點是文字冗長,容易出現(xiàn)“歧義性”。偽代碼:是用介于自然語言和計算機語言之間的文字和符號(包括數(shù)學符號)來描述算法?!纠枯斎?個數(shù),打印輸出其中最大的數(shù)。可用如下的偽代碼表示:Begin(算法開始)輸入A,B,CIFA>B則A→Max否則B→MaxIFC>Max則C→MaxPrintMaxEnd(算法結(jié)束)二、用傳統(tǒng)流程圖表示算法三、三種基本
4、結(jié)構(gòu)的特點1、只有一個入口2、只有一個出口3、不存在死語句4、不存在死循環(huán)【例】輸入10個數(shù),打印輸出其中的最大的數(shù)的流程圖如下圖4-4所示:圖4-44.1.3用N-S流程圖表示算法N-S流程圖完全去掉了帶箭頭的流程線,將全部算法寫在一個矩形框內(nèi),在矩形內(nèi)還可包含其它從屬于它的框。一、順序結(jié)構(gòu)順序結(jié)構(gòu)的N-S流程圖如下圖4-5所示,執(zhí)行順序先<語句A>后<語句B>。語句A語句B圖4-5二、選擇結(jié)構(gòu)(a)(b)圖4-6圖4-6(a)所示為條件為真時執(zhí)行語句塊A,條件為假時執(zhí)行語句塊B。圖4-6(b)所示為條件為真時執(zhí)行
5、語句塊,為假時什么都不做。三、循環(huán)結(jié)構(gòu)圖4-7其中圖4-7(a)為當型循環(huán),圖4-7(b)為直到循環(huán)。【例】畫出從10個數(shù)中選出最大的數(shù)的N—S流程圖4-8:圖4-8最后需要說明的是:上面介紹的算法表示是給人看的,即是為幫助程序開發(fā)人員閱讀、編寫程序而設(shè)計的一種輔助工具,而程序則必須符合計算機語言的語法規(guī)則。以下是上面例子的計算機程序,即為用計算機語言表示算法:PrivateSubForm_Click()Dima%,max%,i%a=Val(InputBox("A=?"))max=aFori=1To10a=Val(I
6、nputBox("A=?"))Ifa>maxThenmax=aNextiPrint"Max=";maxEndSub4.2.1賦值語句計算機要完成指定的工作,首先要接收計算機內(nèi)部或外界給予的各種數(shù)據(jù),賦值語句是一種數(shù)據(jù)賦給計算機內(nèi)部變量或?qū)傩缘拿睢R?、賦值語句的格式格式1:[let]<變量名>=<表達式>格式2:[let][<對象名>.]<屬性名>=<表達式>說明:◆<變量名>應符合VisualBasic的變量命名約定?!?表達式>可以是常量、變量、表達式及帶有屬性的對象。◆<對象名>缺省時為當前窗體。二、賦值語句的
7、功能將表達式的值賦值給變量名或指定對象的屬性。一般用于給變量賦值或?qū)丶O(shè)定屬性值。三、賦值語句的幾種形式(一)給變量賦值例如:DimvAsIntegerDimbookAsString*20v=26book="VisualBasic"把數(shù)值26賦給整型變量v,把字符串“VisualBasic”賦給字符串變量book。26與“VisualBasic”都為常量,常量是表達式最簡單的形式。可以將一個表達式的值賦給一個變量,所以下面的賦值語句是合法的:Dimsum1AsDoubleDimprice1AsSingle,pric
8、e2AsSingleprice1=198.6price2=1386.95*0.8sum1=price1*23+price2*500(二)為對象的屬性賦值在VB中可以在程序中用賦值語句為對象的屬性設(shè)置屬性值(有的屬性則必須如此)。它的一般格式為:對象.屬性=屬性值例如,為命令按鈕cmdDisplay的Caption屬性設(shè)置值:cmdDisplay