資源描述:
《fortran語言及在氣象方面應(yīng)用》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第二章算法-程序的關(guān)鍵本章內(nèi)容算法的含義及其特征算法的表示簡單算法舉例1.算法的含義(1)算法是程序的重要組成部分(2)算法是為解決一個問題而采取的方法和步驟(3)算法分類:數(shù)值運算算法,非數(shù)值運算算法2.1算法的含義及其特征計算機算法入門【例1_1】求5!即:1×2×3×4×5分析:重復(fù)做兩個數(shù)的乘法設(shè)兩個變量:T——被乘數(shù)i——乘數(shù)算法如下:S1:1=>TS2:2=>iS3:T×i=>TS4:i+1=>iS5:若i≤5,返回S3。否則,打印T,結(jié)束?!纠?_2】輸入三個數(shù),然后輸出其中最大的數(shù)。解決步驟即算法如下:(注意是計算
2、機算法)初步分析得以下結(jié)果:設(shè)四個變量:A,B,C---用來存放三個數(shù)MAX----用來存放最大數(shù)算法如下:S1:輸入A、B、C。S2:A與B中大的一個放入MAX中。S3:把C與MAX中大的一個放入MAX中。s4:輸出MAX,MAX即為最大數(shù)。細(xì)化后得到精確的算法:這樣的算法已經(jīng)可以很方便地轉(zhuǎn)化為相應(yīng)的程序語句了。s1:輸入A,B,C。s2:若A>B,則MAX←A;否則MAX←B。s3:若C>MAX,則MAX←C。s4:輸出MAX,MAX即為最大數(shù)?!纠?_3】猴子吃桃問題:有一堆桃子不知數(shù)目,猴子第一天吃掉一半,覺得不過癮,又多
3、吃了一只,第二天照此辦理,吃掉剩下桃子的一半另加一個,天天如此,到第十天早上,猴子發(fā)現(xiàn)只剩一只桃子了,問這堆桃子原來有多少個?分析:用a1,a2,..,a10分別表示第1天到第10天桃子的個數(shù),顯然有如下的關(guān)系:ai=2*(ai+1+1)(i=9,8,7,6,…,1)且只有a10是已知的。顯然這是一個遞推的計算過程,我們可以用循環(huán)來處理它,并且涉及到的僅僅是相鄰兩天的桃子的個數(shù)。所以可以有如下的簡化處理:統(tǒng)一用a0表示前一天的桃子數(shù),a1表示后一天的桃子數(shù)。算法如下:s1:a1=1;{第10天的桃子數(shù),a1的初值}s2:i=9;{
4、計數(shù)器初值為9}s3:a0=2*(a1+1);{計算當(dāng)天的桃子數(shù)}s4:a1=a0;{將當(dāng)天的桃子數(shù)作為下一次計算的值}s5:i=i-1;s6:若i>=1,轉(zhuǎn)s3;否則,輸出a0的值。2.算法的特征(1)有窮性一個算法必須總是在執(zhí)行有限步驟之后結(jié)束。(2)確定性算法中的每一個步驟應(yīng)當(dāng)是確定的,無二義性;相同的輸入只能得出相同的輸出。(3)可行性算法中的每步驟都是有效地執(zhí)行。(4)有零個或多個輸入(5)有一個或多個輸出2.2算法的表示1.算法表示(1)有效、簡潔地描述一個計算機求解過程(2)表示方法有:自然語言表示方法、流程圖表示方
5、法、PAD圖和偽代碼表示方法等2.程序的三種基本結(jié)構(gòu)(1)順序結(jié)構(gòu):從頭到尾一次執(zhí)行每一個語句。嚴(yán)格按照語句的書寫順序從上到下,從左到右執(zhí)行。(2)選擇結(jié)構(gòu):根據(jù)不同的條件執(zhí)行不同的語句或者語句體;可分為:單分支、二分支和多分支結(jié)構(gòu)。(3)循環(huán)結(jié)構(gòu):重復(fù)的執(zhí)行語句或者語句體,達(dá)到重復(fù)執(zhí)行一類操作的目的;常見有:計數(shù)型循環(huán)、當(dāng)型循環(huán)、直到型循環(huán)。3.流程圖及其表示(1)符號(2)順序結(jié)構(gòu)(3)選擇結(jié)構(gòu):兩分支和單分支(4)循環(huán)結(jié)構(gòu)(2)選擇結(jié)構(gòu)4.N-S圖及其表示特點:不允許使用流程線(1)順序結(jié)構(gòu)(3)循環(huán)結(jié)構(gòu)2.3簡單算法舉例例
6、1:根據(jù)降雪量的大小可分為小雪、中雪、大雪和暴雪四個等級。通常規(guī)定如下:1)小雪:12小時內(nèi)降雪量小于1.0mm;2)中雪:12小時內(nèi)降雪量1.0mm≤中雪<3.0mm;3)大雪:12小時內(nèi)降雪量3.0mm≤大雪<6.0mm;4)暴雪:12小時內(nèi)降雪量6.0mm≤暴雪。從鍵盤上接收一個12小時內(nèi)降雪量,輸出下雪的等級。(1)流程圖表示(2)N-S圖表示例2:寫一個算法輸入南京市2009年5月份每天的平均氣溫,求出這個月的平均氣溫并輸出。(1)流程圖表示(2)N-S圖表示本章小結(jié)算法是程序的關(guān)鍵和靈魂算法是使用計算機求解問題的思路和
7、步驟一個好的算法不僅能節(jié)省計算時間和存儲空間,而且能提高計算結(jié)果重點闡述了常見算法表示方法,使讀者能夠理解算法的表示和描述,有利于提高編程的質(zhì)量