程序設(shè)計(jì)提高班培訓(xùn)講義_第1頁
程序設(shè)計(jì)提高班培訓(xùn)講義_第2頁
程序設(shè)計(jì)提高班培訓(xùn)講義_第3頁
程序設(shè)計(jì)提高班培訓(xùn)講義_第4頁
程序設(shè)計(jì)提高班培訓(xùn)講義_第5頁
已閱讀5頁,還剩43頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、程序設(shè)計(jì)計(jì)提高班班培訓(xùn)講講義胡苗坤 (220077寒假)第一講 順序序結(jié)構(gòu)程程序設(shè)計(jì)計(jì)主要內(nèi)容容:熟練掌握握賦值語語句、輸輸入輸出出語句的的用法掌握順序序結(jié)構(gòu)程程序設(shè)計(jì)計(jì)常用方方法基本運(yùn)算算符的使使用4、常用用函數(shù)和和過程一、賦值值語句(:=)格式:變變量名:=表達(dá)達(dá)式功能:將將表達(dá)式式的值計(jì)計(jì)算出來來賦給相相應(yīng)的變變量。 不管什什么計(jì)算算機(jī)語言言,賦值值語句都都是最基基本最常常用的語語句,通通過它給給變量賦賦值來進(jìn)進(jìn)行各種種運(yùn)算、處理。如 aa:=110*55; a的值值為500a:=aa+1;將aa的值增增加1,常常用此語語句來進(jìn)進(jìn)行計(jì)數(shù)數(shù)s:=ss+a; 將將s的值值增加aa,常用用類似

2、的的累加語語句來進(jìn)進(jìn)行求和和t:=tt*a; 將將t的值值變?yōu)樵瓉淼腶a后倍,常常用類似似的語句句來進(jìn)行行累乘例題1:交換兩兩個(gè)數(shù)值值型變量量a和bb的值分析與與算法選選擇:要交換兩兩個(gè)變量量的值,可可以聯(lián)想想起現(xiàn)實(shí)實(shí)世界中中交換兩兩個(gè)容器器A和BB中所裝裝的東西西,一般般要先引引進(jìn)一個(gè)個(gè)空的容容器C,先先將一個(gè)個(gè)容器(如如A)里里的倒入入C,再再將另一一個(gè)容器器B的倒倒入A,最最后將CC的倒入入B,從從而實(shí)現(xiàn)現(xiàn)A、BB容器內(nèi)內(nèi)容的互互換。方法11:引引進(jìn)第三三個(gè)變量量c:=aa;a:=bb;b:=cc;方法22:先先合并后后分開a:=aa+b; 如如原來aa=3,b=55,執(zhí)行行此語句句后

3、a=8,bb=5b:=aa-b; 執(zhí)行此此語句后后a=88,b=3a:=aa-b; 執(zhí)行此此語句后后a=55,b=3還有其它它一些辦辦法,但但都沒有有上面的的兩種方方法通用用。如可可先乘再再除,這這種方法法對(duì)于有有一個(gè)變變量為00的情況況就不正正確了。也可能能會(huì)出現(xiàn)現(xiàn)除數(shù)為為0的情情況。例題2:計(jì)算四四個(gè)變量量的乘積積分析與與算法選選擇:一般的計(jì)計(jì)算,可可以直接接用一個(gè)個(gè)表達(dá)式式將運(yùn)算算結(jié)果給給一個(gè)變變量就行行了。如如果變量量的個(gè)數(shù)數(shù)不確定定,或者者說變量量的個(gè)數(shù)數(shù)很多,此此時(shí)用一一個(gè)表達(dá)達(dá)式就不不方便了了,可行行的方法法是來一一個(gè)就算算一個(gè),直直到全部部的都算算好結(jié)束束。在后后面的循循環(huán)中常

4、常用這種種方法。參考程程序:proggramm exxampple55_2;var t:llonggintt; aa,b,c,dd:inntegger;begiin wriite(Ennterr inntegger a,bb,c,d:); reaadlnn(a,b,cc,d);t:=11;t:=tt*a;t:=tt*b;t:=tt*c;t:=tt*d;writtelnn(aa*b*c*cc=,t); endd. 補(bǔ)充說說明:累加時(shí),存存放累加加值的變變量初值值一般為為0;而而累乘時(shí)時(shí)必須將將相應(yīng)變變量的初初值賦為為1。如如上述程程序中tt的初值值為1,如如果沒有有這句,系系統(tǒng)默認(rèn)認(rèn)的初值值為0

5、,那那么乘下下來結(jié)果果也是00。二、reead/reaadlnn 讀取取數(shù)據(jù)格式:rreadd(變量量)或 reead(變量11,變量量2,)readdln(變量)或 reeadlln(變變量1,變變量2,)功能:在在運(yùn)行程程序時(shí)讀讀入相應(yīng)應(yīng)數(shù)據(jù)給給指定變變量,直直到讀入入的數(shù)據(jù)據(jù)滿足為為止,這這里所說說的滿足足有兩個(gè)個(gè)方面的的含義,一一是類型型的一致致,二是是數(shù)據(jù)的的滿足。Readdln跟跟reaad不同同的地方方就是它它執(zhí)行完完后將到到下一行行。例:reead(a,bb,c) ;根據(jù)事先先定義的的類型由由用戶在在運(yùn)行程程序時(shí)輸輸入相應(yīng)應(yīng)的數(shù)據(jù)據(jù)給a,b,cc,也可可分開寫寫成三個(gè)個(gè)reaa

6、d語句句:reead(a);reaad(bb);rreadd(c)。readdln(a,bb,c); 與與reaad(aa,b,c)不不同是讀讀完數(shù)據(jù)據(jù)后另起起一行,如如果將它它分為三三個(gè)語句句reaadlnn(a); rreaddln(b); reeadlln(cc)執(zhí)行行時(shí)可能能讀入的的數(shù)據(jù)跟跟原來不不一樣,自自己上機(jī)機(jī)去試試試吧!readdln; 空空讀語句句,一般般起到讓讓程序運(yùn)運(yùn)行時(shí)停停止由用用戶回車車后繼續(xù)續(xù)或跨過過一行中中其余的的數(shù)據(jù),保保證下一一個(gè)讀語語句從下下一行頭頭一個(gè)數(shù)數(shù)據(jù)開始始讀取。三、wrritee/wrriteeln 輸出語語句語句功能能:輸出出指定表表達(dá)式的的值。

7、 如wiirtee(a),wrritee(JJianngshhu); 分分別輸出出a的值值和Jiianggshuu(1)場(chǎng)場(chǎng)寬在輸出項(xiàng)項(xiàng)后用“:數(shù)字字”指明輸輸出的寬寬度。如wriite(5:66),則則輸出: 55的前前面有55個(gè)空格格,整個(gè)個(gè)輸出項(xiàng)項(xiàng)占6個(gè)個(gè)字符的的位置對(duì)于實(shí)數(shù)數(shù)類型的的還可以以通過“:數(shù)字字1:數(shù)數(shù)字2”指明輸輸出數(shù)字字的寬度度和小數(shù)數(shù)點(diǎn)后的的位數(shù)。如:wrritee(1.2:110:55) 將將輸出: 1.500000 整個(gè)個(gè)輸出項(xiàng)項(xiàng)占100個(gè)字符符位置,整整數(shù)部分分占4位位,小數(shù)數(shù)點(diǎn)1位位,小數(shù)數(shù)部分55位,其其中整數(shù)數(shù)部分不不足的在在高位補(bǔ)補(bǔ)空,小小數(shù)部分分不足在在

8、后面補(bǔ)補(bǔ)0如果指定定的寬度度比原輸輸出項(xiàng)應(yīng)應(yīng)有的寬寬度小呢呢?對(duì)于整數(shù)數(shù)或字符符等類型型的,將將自動(dòng)調(diào)調(diào)整到最最小所要要的寬度度,如wwritte(ABCCD:2)仍仍將輸出出ABCCD。對(duì)于實(shí)數(shù)數(shù),小數(shù)數(shù)部分會(huì)會(huì)取自定定的位數(shù)數(shù),將尾尾部去除除(四舍舍五入),并并自動(dòng)適適應(yīng)到最最少的寬寬度。思考:如何對(duì)小小數(shù)點(diǎn)后后指定位位進(jìn)行四四舍五入入?解答:一種方法法是直接接指定輸輸出小數(shù)數(shù)點(diǎn)后指指定的位位數(shù),如如對(duì)于變變量a要要保留到到小數(shù)點(diǎn)點(diǎn)后第三三位并考考慮四舍舍五入,可可以直接接寫為wwritte(aa:0:3)。這種方方法跟系系統(tǒng)的設(shè)設(shè)置有關(guān)關(guān),也就就是說這這樣不能能保證任任何時(shí)候候都正確確。

9、可以對(duì)指指定位加加5后從從這位始始截尾。如要求求對(duì)實(shí)型型變量aa要求精精確到小小數(shù)點(diǎn)后后兩位,對(duì)對(duì)小數(shù)點(diǎn)點(diǎn)后第三三位進(jìn)行行四舍五五入,可可以用這這樣的輸輸出語句句wriite(a+00.0005:00:2)。一般般來說對(duì)對(duì)于變量量的處理理,可以以先按這這種方法法(即相相應(yīng)位加加5后再再去尾)通通過賦值值語句進(jìn)進(jìn)行處理理,輸出出時(shí)不進(jìn)進(jìn)行處理理,只是是直接輸輸出就行行了。四、wrriteeln跟跟wirrte的的區(qū)別writtelnn語句在在輸出完完指定內(nèi)內(nèi)容后另另起一行行,wrritee只管輸輸出除非非真滿一一行后才才另起一一行。 空的wwirttelnn起到一一個(gè)輸出出空行的的作用,如如果它

10、前前面有wwritte語句句,則在在其它輸輸出空行行(可能能不滿一一行),保保證下一一個(gè)輸出出另起一一行。在在程序中中經(jīng)常用用一個(gè)空空的wrriteeln語語句起換換行的作作用。五、一個(gè)個(gè)語句多多個(gè)輸出出項(xiàng)一個(gè)wrritee或wriitelln中可可以有多多個(gè)輸出出項(xiàng),各各項(xiàng)之間間用逗號(hào)號(hào)間隔。如wriite(1,22,3);它與三個(gè)個(gè)wriite語語句作用用一樣:wriite(1);wriite(2);wriite(3);再如 wwrittelnn(1,2,33); 輸出1123后后換行。 與它它等同的的分開寫寫的形式式為:wwritte(11);wwritte(22);wwrittelnn

11、(3);練習(xí)及作作業(yè):(1) 輸入三三角形的的三邊,輸輸出三角角形的面面積(假假設(shè)這三三邊一定定能構(gòu)成成三角形形)。計(jì)算三角角形面積積的公式式:p:=(a+bb+c)/2s:=ssqrtt(p*(p-a)*(p-b)*(p-c)(2) 輸入一一個(gè)三位位整數(shù),逆逆向輸出出,如輸輸入1223,輸輸出為3321,如如果個(gè)位位數(shù)是零零,則輸輸出二位位數(shù),如如:3220,輸輸出為223。(3) 輸入一一個(gè)1000000以內(nèi)的的整數(shù),輸輸出它的的位數(shù)(4) 分錢游游戲:甲甲、乙、丙三人人共有224元錢錢,先由由甲分錢錢給乙、丙兩人人,所分分給的數(shù)數(shù)與各人人已有數(shù)數(shù)相同;接著由由乙分給給甲、丙丙,分法法同前

12、;再由丙丙分錢給給甲、乙乙,分法法亦同前前。經(jīng)上上述三次次分錢之之后,每每個(gè)人的的錢數(shù)恰恰好一樣樣多。求求原先各各人的錢錢數(shù)分別別為多少少?第二講 分支支結(jié)構(gòu)程程序設(shè)計(jì)計(jì)主要內(nèi)容容:掌握復(fù)合合語句、基本IIF語句句及CAASE語語句語法法格式和和執(zhí)行過過程;能夠根據(jù)據(jù)實(shí)際情情靈活運(yùn)運(yùn)用IFF語句和和CASSE語句句3、掌握握IF語語句的嵌嵌套原則則一復(fù)合合語句1為什什么要用用復(fù)合語語句 在在程序中中有時(shí)候候要將多多個(gè)語句句結(jié)合起起來作為為一個(gè)整整體,象象一個(gè)語語句一樣樣來使用用。這時(shí)時(shí)就要用用到復(fù)合合語句,用用beggin和和endd將多個(gè)個(gè)語句結(jié)結(jié)合在一一起。2格式式:begiin語句1;語

13、句2;語句N;end;說明:endd前的最最后一個(gè)個(gè)分號(hào)可可以不寫寫,也可可以寫,相相當(dāng)于其其后是一一個(gè)空語語句。其效果跟跟普通的的語句一一樣,也也就是將將多個(gè)語語句合并并成一個(gè)個(gè)語句來來使用,特特別是在在后面的的條件語語句或循循環(huán)語句句里執(zhí)行行的是多多個(gè)語句句要像一一個(gè)語句句一樣時(shí)時(shí)就必須須要使用用復(fù)合語語句。二條件件語句(if-then-else)格式1:一個(gè)分分支if 條條件thhen 語句;格式2:兩個(gè)分分支if 條條件thhen 語句1 elsse 語語句2;注意ellse前前沒有分分號(hào),否否則會(huì)出出錯(cuò)。(思思考這是是為什么么?)1條件件的描述述 在使用用條件語語句時(shí)主主要的難難點(diǎn)就

14、是是條件的的描述和和滿足條條件或不不滿足條條件時(shí)要要執(zhí)行的的語句的的描述。條件通過過布爾表表達(dá)式來來描述。 例:條件語語句與自自然語言言描述的的對(duì)比(1)iif aa1 theen aa:=aa-1 elsse aa:=aa+1;如果a大大于1那那么將aa的值減減少1,否否則將aa的值增增加1(2)iif (abb) aand (bc) theen ss:=(a-bb)*(b-cc);如果a大大于b并并且b大大于c,那那么s的的值為(a-b)乘以(b-c)(3)iif (a00) oor (b00) tthenn s:=a+b;如果a0或者者b00,那么么s的值值等于aa+b(4)iif ff

15、 thhen t:=t+11; 這里里f為布布爾型的的變量如果f成成立即等等于trrue,那那么t的的值增加加12語句句的選擇擇 滿滿足條件件時(shí)執(zhí)行行什么、不滿足足條件時(shí)時(shí)執(zhí)行什什么要先先搞清楚楚。 當(dāng)當(dāng)滿足條條件時(shí)或或不滿足足條件時(shí)時(shí)執(zhí)行的的是多個(gè)個(gè)語句時(shí)時(shí)要使用用復(fù)合語語句的格格式。當(dāng)當(dāng)然單個(gè)個(gè)語句也也使用復(fù)復(fù)合語句句的格式式也不會(huì)會(huì)錯(cuò),只只不過多多此一舉舉而已,并并不影響響程序的的執(zhí)行,有有時(shí)先這這樣寫是是為了后后來的擴(kuò)擴(kuò)充。例:條件件語句與與自然語語言描述述if aa=A) annd (ch=a) annd (ch=00) andd (cch=9) tthenn wrriteeln(c

16、h, iis aa deecimmal diggit.) elsse wwrittelnn(chh, is a sspecciall chharaacteer.);3使用用注意點(diǎn)點(diǎn)當(dāng)有ellse部部分時(shí)它它上面的的語句的的最后一一行可以以有分號(hào)號(hào)也可以以沒有分分號(hào),這這點(diǎn)跟iif-tthenn-ellse不不一樣;casse語句句結(jié)構(gòu)中中最后要要有一個(gè)個(gè)endd作為結(jié)結(jié)尾;其其中的語語句可以以是單語語句也可可以是復(fù)復(fù)合語句句。練習(xí)及及作業(yè):1、輸入入三個(gè)整整數(shù),按按由大到到小的順順序輸出出。設(shè)三個(gè)數(shù)數(shù)為a,bb,c,一一種方法法可以用用條件的的并列,列列舉出可可能有的的6種情情況。另另一種方方

17、法是用用條件的的嵌套,從從而輸出出結(jié)果。2編寫寫程序輸輸入年份份和月份份,輸出出這個(gè)月月的天數(shù)數(shù)。3編一一個(gè)隨機(jī)機(jī)產(chǎn)生一一個(gè)1000以內(nèi)內(nèi)的四則則運(yùn)算題題,要求求先輸出出這個(gè)四四則運(yùn)算算的式子子,這個(gè)個(gè)四則運(yùn)運(yùn)算的式式子要能能確保第第一個(gè)數(shù)數(shù)不小于于第二個(gè)個(gè)數(shù),如如果是除除法的話話要能確確保能夠夠整除,然然后讓用用戶輸入入結(jié)果,如如果輸入入的結(jié)果果正確則則輸出“Rigght!”否則輸輸出“Errror!”。分析與與提示: 用用隨機(jī)函函數(shù)來產(chǎn)產(chǎn)生四則則運(yùn)算的的操作數(shù)數(shù)和操作作符,其其中操作作數(shù)都是是1000以內(nèi)的的整數(shù),所所以可以以直接用用ranndomm(1000)就就行了,如如果第一一個(gè)數(shù)比

18、比第二個(gè)個(gè)數(shù)小則則交換兩兩個(gè)數(shù)。而操作作符(運(yùn)運(yùn)算符)只只有四種種可能,因因此先用用隨機(jī)函函數(shù)產(chǎn)生生出0-3間的的數(shù),再再根據(jù)產(chǎn)產(chǎn)生的是是什么數(shù)數(shù)來確定定是“+、-、*、/”。其中中對(duì)于除除法運(yùn)算算要考慮慮除數(shù)不不能為00,再要要考慮能能整除,所所以先進(jìn)進(jìn)行整除除運(yùn)算,得得到一個(gè)個(gè)結(jié)果,再再將第一一個(gè)數(shù)變變?yōu)槌龜?shù)數(shù)乘以商商。4編程程輸入三三角形的的三條邊邊長(zhǎng),輸輸出三角角形的面面積,如如果不能能構(gòu)成三三角形輸輸出錯(cuò)誤誤信息。5.期末末來臨了了,班長(zhǎng)長(zhǎng)小Q決決定將剩剩余班會(huì)會(huì)費(fèi),用用于購(gòu)買買若干支支鋼筆獎(jiǎng)獎(jiǎng)勵(lì)給一一引起學(xué)學(xué)習(xí)好、表現(xiàn)好好的同學(xué)學(xué)。已知知商店里里有三種種鋼筆,它它們的單單價(jià)為66元

19、、55元和44元。小小Q想買買盡量多多的筆(鼓鼓勵(lì)盡量量多的同同學(xué)),同同時(shí)他又又不想有有剩余錢錢。請(qǐng)你你編寫一一程序,幫幫小Q制制訂出一一種買筆筆的方案案。6.編寫寫一個(gè)評(píng)評(píng)分程序序,接受受用戶輸輸入100位選手手的得分分(010分分),然然后去掉掉一個(gè)最最高分和和一個(gè)最最低分,求求出某選選手的最最后得分分(平均均分)。第三講 循環(huán)環(huán)結(jié)構(gòu)的的程序設(shè)設(shè)計(jì)主要內(nèi)容容:掌握三種種循環(huán)語語句的格格式和執(zhí)執(zhí)行過程程;掌握三種種循環(huán)語語句的異異同,能能夠根據(jù)據(jù)實(shí)際情情況靈活活運(yùn)用循循環(huán)語句句;掌握累加加器和累累乘器和和計(jì)數(shù)器器;掌握多重重循環(huán)及及循環(huán)的的嵌套;熟練運(yùn)用用循環(huán)語語句解各各種實(shí)際際問題,如如

20、打印圖圖形、判判斷素?cái)?shù)數(shù)等常用用算法。許多處理理過程中中有連續(xù)續(xù)的重復(fù)復(fù),這時(shí)時(shí)候如果果還是一一句句地地重復(fù)寫寫的話,既既麻煩又又累贅,當(dāng)當(dāng)要重復(fù)復(fù)成千上上萬次時(shí)時(shí),這種種重復(fù)的的書寫幾幾乎是不不可能實(shí)實(shí)現(xiàn)的。直接簡(jiǎn)簡(jiǎn)便的方方法是用用循環(huán)語語句來實(shí)實(shí)現(xiàn)循環(huán)環(huán)。一Whhilee語句(當(dāng)當(dāng)型循環(huán)環(huán))1格式式:whille 布布爾表達(dá)達(dá)式 ddo 語語句;2說明明:格式中wwhille和do都是是保留字字,布爾爾表達(dá)式式表示條條件,它它的描述述跟條件件語句里里的條件件描述是是一樣的的。Do后面面的語句句可以是是單一語語句也可可以是復(fù)復(fù)合語句句,稱為為循環(huán)體體。只要要布爾表表達(dá)式成成立時(shí)(即即值為TT

21、RUEE時(shí))就就執(zhí)行循循環(huán)體,如如此反復(fù)復(fù)直到布布爾表達(dá)達(dá)式不成成立(值值為FAALSEE)時(shí)停停止。如如果一開開始就為為布爾表表達(dá)式就就不成立立(值為為FALLSE),那那么循環(huán)環(huán)體一次次也不執(zhí)執(zhí)行。例311用當(dāng)循循環(huán)計(jì)算算1+22+3+1000分析:此類類題也稱稱累加,設(shè)設(shè)最后結(jié)結(jié)果放入入變量SS中,設(shè)設(shè)計(jì)一指指針I(yè),讓讓I從11開始遞遞增,并并累加到到S中,當(dāng)當(dāng)I的值值等于1100時(shí)時(shí),循環(huán)環(huán)結(jié)束。Var S,II:inntegger;BegiinS:=0;II:=11;Whiile I00) aand (j00) aand (ji) do j:=j+11; iif _(22)_ the

22、en begiin writte(_(33)_:5); _(4)_; end ennd; wrriteeln; wrriteeln(Coountt=,n);end.二、編寫寫程序題題輸出下圖圖所示的的圖形* * * * * * * * * * * * * * * * * * * * *2編寫寫輸出“右三角角的九九九乘法表表”的程序序: 1 2 3 4 5 6 7 8 9 4 6 8 10 12 14 16 18 9 12 15 18 21 24 27 16 20 24 28 32 36 25 30 35 40 45 36 42 48 54 49 56 63 64 72 813找出出1000以內(nèi)

23、所所有被22、3、5除余余數(shù)為11的整數(shù)數(shù)4求出出10009999內(nèi)所所有的水水仙花數(shù)數(shù),所謂謂水仙花花數(shù)是該該數(shù)等于于它各位位上的數(shù)數(shù)的立方方和。例例:1553=113+33+535.求111000內(nèi)所所有的素素?cái)?shù)6. 要要將一張張1000元的鈔鈔票換成成等值的的10元元、5元元、2元元、1元元的小鈔鈔票,要要求每次次換成440張小小鈔票,每每種至少少一張,編編程輸出出所有可可能的換換法,程程序應(yīng)適適當(dāng)考慮慮減少重重復(fù)次數(shù)數(shù)。7. 四四個(gè)學(xué)生生上地理理課,回回答我國(guó)國(guó)四大淡淡水湖大大小時(shí)這這樣說:甲:“最最大洞庭庭湖,最最小洪澤澤湖,鄱鄱陽湖第第三?!币遥骸白钭畲蠛闈蓾珊?,最最小洞庭庭湖,鄱

24、鄱陽湖第第二,太太湖第三三?!北骸白钭钚『闈蓾珊炊赐ズ诘谌??!倍。骸白钭畲筵蛾栮柡?,最最小太湖湖,洪澤澤湖第二二,洞庭庭湖第三三。”對(duì)于每個(gè)個(gè)湖的大大小,每每個(gè)學(xué)生生僅答對(duì)對(duì)一個(gè),請(qǐng)請(qǐng)編程確確定四個(gè)個(gè)湖的大大小。8. 誰誰是小偷偷?問題題:警察察局抓了了4名嫌嫌疑犯:A,BB,C,DD,其中中一人是是小偷,審審問中AA說:“我不是是小偷?!?B說說:“C是小小偷。”C說:“小偷肯肯定是DD。”D說:“C冤枉枉人?!保F(xiàn)已已知四人人中三人人說的是是真話,一一人說的的是假話話。問到到底誰是是小偷?9. 求求二個(gè)正正整數(shù)的的最小公公倍數(shù)和和最大公公約數(shù)第四講 數(shù)組組和字符符串主要內(nèi)容容:掌握

25、數(shù)組組類型的的定義及及基本操操作;掌握字符符串類型型的定義義及常用用函數(shù)過過程的操操作;熟練掌握握通過數(shù)數(shù)組來實(shí)實(shí)現(xiàn)常見見的排序序、查找找算法;熟練掌握握通過字字符串來來解決各各種實(shí)際際問題如如加解密密,查找找子串等等。Turbbo-ppasccal的的數(shù)據(jù)類類型分為為三種類類型:簡(jiǎn)簡(jiǎn)單類型型、構(gòu)造造類型、指針類類型。前前面介紹紹的整型型、實(shí)型型、布爾爾型以及及枚舉類類型等都都是簡(jiǎn)單單類型,而而構(gòu)造類類型有字字符串、數(shù)組、記錄、集合、文件類類型。描描述一個(gè)個(gè)構(gòu)造類類型特征征的是其其成分的的類型和和它的構(gòu)構(gòu)造方法法。因此此對(duì)于構(gòu)構(gòu)造類型型,主要要去考慮慮如何構(gòu)構(gòu)造即其其構(gòu)造方方法。指指針類型型是

26、一種種特殊的的數(shù)據(jù)類類型,它它涉及到到動(dòng)態(tài)存存儲(chǔ)分配配。一、數(shù)組組 在在代數(shù)上上我們常常常這樣樣寫:aa1,aa2.ai.a1100(0iimaax tthenn maax:=aii; wrriteeln(Maax=,maax); ennd.例4_22鍵盤輸輸入400個(gè)5位以下下的整數(shù)數(shù),最后后分批輸輸出其中中的奇數(shù)數(shù)和偶數(shù)數(shù)。分析與與算法選選擇: 判定一一個(gè)數(shù)是是奇數(shù)或或偶數(shù)比比較簡(jiǎn)單單,如果果不是要要分批輸輸出可以以一邊輸輸入一邊邊判定,現(xiàn)現(xiàn)在要分分批輸入入所以輸輸入跟輸輸出的過過程要分分開,輸輸入的440個(gè)數(shù)數(shù)要先存存放起來來,通過過數(shù)組很很方便。程序清清單:proggramm diig

27、itt;var a:aarraay11.440 of inttegeer; ii:inntegger;begiin forr i:=1 to 40 do reaad(aai); wriitelln; forr i:=1 to 40 do if oddd(ai) thhen wriite(aii:55);writtelnn; forr i:=1 to 40 do if nott oddd(aai) tthenn wrritee(ai:5);writtelnn;end.二、字符符串類型型定義和和變量說說明1定義義typee 變量量標(biāo)識(shí)符符=sttrinng常常數(shù);還可以使使用不帶帶字符串串最大長(zhǎng)長(zhǎng)

28、度(即即不用方方括號(hào))的的字符串串定義,此此時(shí)取時(shí)時(shí)大長(zhǎng)度度的缺省省值2555,形形式為:typpe 變變量標(biāo)識(shí)識(shí)符=sstriing;例:tyype claass=strringg100; namme=sstriing20; adddresss=strringg;定義了三三個(gè)字符符串類型型,最大大長(zhǎng)度為為別是110,220,2255。2字符符串變量量說明字符串變變量與簡(jiǎn)簡(jiǎn)單類型型變量說說明一樣樣,有兩兩種形式式:一是是先寫字字符串類類型定義義,后用用其進(jìn)行行變量說說明;二二是直接接將字符符串類型型寫于變變量說明明之中。曾上例子子可以寫寫出如下下的字符符串類型型變量說說明:var claass

29、11, cclasss2: cllasss; mynnamee, yyourrnamme,hhisnnamee: nnamee; herradddresss: adddresss;也可以直直接說明明:var cllasss1, claass22: sstriing10; myynamme, youurnaame, hiisnaame: sttrinng220; heeradddreess: sttrinng;3字符符串長(zhǎng)度度為了記錄錄一個(gè)字字符串的的實(shí)際長(zhǎng)長(zhǎng)度即有有效字符符的長(zhǎng)度度,系統(tǒng)統(tǒng)在所有有字符串串變量前前保留一一個(gè)不可可見字符符,稱它它為長(zhǎng)度度字節(jié),因因此tuurboo-paascaa

30、l編譯譯器為每每一字符符串變量量在內(nèi)存存中所分分配的字字節(jié)數(shù)(一一個(gè)字符符占一個(gè)個(gè)字節(jié))是是其長(zhǎng)度度加1。在長(zhǎng)度度字節(jié)中中存放的的是這樣樣一個(gè)字字符:其其相應(yīng)的的ASCCII序序數(shù)值為為該字符符串變量量的當(dāng)前前實(shí)際長(zhǎng)長(zhǎng)度。由由于系統(tǒng)統(tǒng)允許對(duì)對(duì)一個(gè)字字符串變變量進(jìn)行行整體訪訪問,也也可以對(duì)對(duì)字符串串變量中中的各個(gè)個(gè)字符逐逐個(gè)地訪訪問,第第二種訪訪問應(yīng)指指定某字字符在字字符串中中的位置置即下標(biāo)標(biāo),如mmynaame1表表示字符符串變量量mynnamee的第一一個(gè)字符符,myynamme22表示示第二個(gè)個(gè)字符,依依次類推推。因此此可用mmynaame0表表示在長(zhǎng)長(zhǎng)度字節(jié)節(jié)中所存存放的字字符,而而字符

31、串串的實(shí)際際長(zhǎng)度可可用orrd(mmynaame0)求得。也可以直直接用系系統(tǒng)函數(shù)數(shù)來求字字符串的的長(zhǎng)度,如如lenngthh(myynamme)。4字符符串與字字符字符串變變量和字字符類型型chaar相兼兼容,可可把chhar視視作長(zhǎng)度度為1的的字符串串類型,因因而它們們?cè)谧址磉_(dá)達(dá)式計(jì)值值時(shí)可混混合使用用。如A可看作作是字符符,也可可視為字字符串。但字符符串類型型和字符符類型在在內(nèi)存中中的存儲(chǔ)儲(chǔ)形式不不同。另另外允許許長(zhǎng)度為為0的空空串此此時(shí)字符符串的存存儲(chǔ)仍然然要一個(gè)個(gè)字節(jié),用用來存放放其長(zhǎng)度度字符,但字字符類型型必須也也只能有有一個(gè)字字符。5字符符串的常常數(shù)定義義與類型型常數(shù)定定義

32、可將任意意字符串串定義成成一個(gè)常常數(shù)標(biāo)識(shí)識(shí)符,以以供程序序各處引引用。字字符串常常數(shù)定義義的一般般形式為為:consst 常常數(shù)標(biāo)識(shí)識(shí)符=字字符串常常數(shù);其中字符符串常數(shù)數(shù)是用單單引號(hào)括括起的字字符串序序列。如如:consst headdingg=DDifffereencee beetweeen strringg vaariaablee annd sstriing typped connstaant;spliitliine=-;分別以常常數(shù)標(biāo)識(shí)識(shí)符heeadiing表表示一個(gè)個(gè)表頭信信息,sspliitliine表表示分隔隔線。字符串類類型常數(shù)數(shù)定義要要規(guī)定字字符串類類型及所所取的初初始值,形

33、形式為:consst 類類型標(biāo)識(shí)識(shí)符:字字符串類類型=字字符串常常數(shù);如:coonsttPasssworrd:sstriing7=prrivaate;TrueeStrringg:sttrinng55=yess;FalsseSttrinng:sstriing5=noo;SchooolNNamee:sttrinng44=NTZZX;NewLLinee:sttrinng22=#13#10; 通通常通過過“#數(shù)字字”描述無無法輸入入的字符符,其中中數(shù)字為為相應(yīng)字字符對(duì)應(yīng)應(yīng)的ASSCIII碼值三字符符串表達(dá)達(dá)式和賦賦值語句句1字符符串表達(dá)達(dá)式通過字符符串運(yùn)算算符將字字符串常常數(shù)、字字符串變變量、字字符串

34、函函數(shù)等組組成起來來的式子子就是字字符串表表達(dá)式,由由字符串串表達(dá)式式進(jìn)行運(yùn)運(yùn)算可形形成新的的字符串串。運(yùn)算算符主要要是+,用用來進(jìn)行行字符串串的連接接。如:說明了常常數(shù)coonstt paas=passcall就可以有有以下的的字符串串表達(dá)式式:Turrbo+paas+ iss beetteer tthann +sttanddardd +pass 字符串連連接的結(jié)結(jié)果還是是字符串串,如果果串和長(zhǎng)長(zhǎng)度超過過2555,則超超過的字字符將被被截去??墒褂藐P(guān)關(guān)系運(yùn)算算符=,=,比較任任意兩個(gè)個(gè)字符串串的大小小,這些些運(yùn)算符符的優(yōu)先先級(jí)別比比連接符符“+”號(hào)低,要要注意這這點(diǎn),該該加括號(hào)號(hào)的地方方要加

35、括括號(hào)。關(guān)關(guān)系運(yùn)算算符用于于字符串串操作時(shí)時(shí),其結(jié)結(jié)果還是是為布爾爾值,在在比較兩兩個(gè)字符符串時(shí),兩兩者自左左向右逐逐個(gè)比較較相對(duì)應(yīng)應(yīng)字符的的ASCCII碼碼值,只只有當(dāng)兩兩個(gè)字符符串長(zhǎng)度度相等且且對(duì)應(yīng)字字符完全全相同時(shí)時(shí)才認(rèn)為為這兩個(gè)個(gè)字符串串相等。如果兩兩個(gè)字符符串長(zhǎng)度度不等,但但短字符符串與長(zhǎng)長(zhǎng)字符串串前面的的字符逐逐個(gè)相等等,則認(rèn)認(rèn)為短字字符串小小于長(zhǎng)字字符串。字符串串的比較較大小其其實(shí)就是是比較字字符的AASCIII碼值值的大小小,有點(diǎn)點(diǎn)跟字典典順序相相似。2字符符串賦值值語句賦值語句句可應(yīng)用用于字符符串類型型,它表表示計(jì)算算右部字字符串表表達(dá)式的的值,并并將結(jié)果果賦予左左部字符符串

36、變量量。允許許以字符符串變量量中某一一個(gè)字符符位置賦賦值即此此時(shí)實(shí)際際上是字字符的賦賦值。如如:var hissnamme:sstriing15;.hisnnamee:=Mr.+ Yuuekiing又如:vvar s1:strringg200; . Forr i:=1 to 20 do s1i:=chhr(664+ii);3.有關(guān)關(guān)字符串串的操作作:操作類型作用返回值例子lenggth(s)函數(shù)求字符串串s的長(zhǎng)長(zhǎng)度整型s:=123345667899;l:=llenggth(s);l的的值為99copyy(s,w,kk)函數(shù)復(fù)制s中中從w開開始的kk位字符串s:=123345667899;s1:

37、=coppy(ss,3,5);s11的值是是3445677val(s,kk,coode)過程將字符串串s轉(zhuǎn)為為數(shù)值,存存在k中中;coode是是錯(cuò)誤代代碼var s:sstriing;k,ccodee:inntegger;begiins:=12334;val(s,kk,coode);writte(kk);k=112344str(i,ss)過程將數(shù)值ii轉(zhuǎn)為字字符串ssi:=112344;str(i,ss);writte(ss);s=12334Deleete(s,ww,k)過程在s中刪刪除從第第w位開開始的kk個(gè)字符符s := HHoneest Abee Liincooln;Deleete(s,

38、88,4);Writtelnn(s); HHoneest Linncolln Inseert(s1, S, w)過程將s1插插到s中中第w位位S := HHoneest Linncolln;Inseert(Abbe , SS, 88); Honnestt Abbe LLinccolnn Pos(c, S)函數(shù)求字符cc在s中中的位置置整型S := 1233.5;i :=Poss( , S);i的的值為11+運(yùn)算符將兩個(gè)字字符串連連接起來來s1:=12234;s2:=56678;s:=ss1+ss2;12234556788例4-33 Caaesaar(凱凱撒密碼碼)已知知最早的的代換密密碼是由由

39、Julliuss Caaesaar發(fā)明明的Caaesaar密碼碼。它非非常簡(jiǎn)單單,就是是對(duì)字母母表中的的每個(gè)字字母,用用它之后后的第33個(gè)字母母來代換換。例如如:明文:mmeett mee affterr thhe ttogaa paartyy密文:pphhww phh diiwhuu whhk wwrjdd sdduwbb注意到字字母表是是循環(huán)的的,即認(rèn)認(rèn)為緊隨隨Z后的的字母是是A。請(qǐng)編程輸輸入一串串明文和和密鑰,輸輸出其密密文。并并根據(jù)密密鑰把密密文解密密后輸出出明文。練習(xí)及及作業(yè):輸入100個(gè)整數(shù)數(shù),把這這10個(gè)個(gè)數(shù)按從從小到大大的順序序排列。分別用選選擇排序序法、冒冒泡排序序法、插插入

40、排序序法來解解此題;旅館里有有一百個(gè)個(gè)房間,從從1到1100編編了號(hào)。第一個(gè)個(gè)服務(wù)員員把所有有的房間間門都打打開了,第第二個(gè)服服務(wù)員把把所有編編號(hào)是22的倍數(shù)數(shù)的房間間“相反反處理”,第第三個(gè)服服務(wù)員把把所有編編號(hào)是33的倍數(shù)數(shù)的房間間作“相相反處理理”,以以后每個(gè)個(gè)服務(wù)員員都是如如此。問問第1000個(gè)服服務(wù)員來來過后,哪哪幾扇門門是打開開的。(所所謂“相相反處理理”是:原來開開著的門門關(guān)上,原原來關(guān)上上的門打打開。)隨機(jī)輸入入一個(gè)長(zhǎng)長(zhǎng)度不超超過2555的字字符串,將將其倒置置后輸出出。輸入n個(gè)個(gè)整數(shù),請(qǐng)請(qǐng)找出最最小數(shù)所所在的位位置,并并把它與與第一個(gè)個(gè)數(shù)對(duì)調(diào)調(diào)。將一個(gè)數(shù)數(shù)插入到到有序的的數(shù)列

41、中中,插入入后數(shù)列列仍然有有序。第五講 子界界、枚舉舉與集合合類型主要內(nèi)容容:1、掌握握子界、枚舉、集合類類型的特特點(diǎn)和定定義;2、能根根據(jù)不同同的實(shí)際際問題來來選擇使使用不同同的數(shù)據(jù)據(jù)類型;熟練掌握握與這三三種數(shù)據(jù)據(jù)類型相相關(guān)的典典型例題題如篩選選法、萬萬年歷等等;掌握集合合的各種種運(yùn)算。Pasccal有有豐富的的數(shù)據(jù)類類型,在在程序設(shè)設(shè)計(jì)中有有特殊而而方便的的應(yīng)用。 類型定義義的語法法格式:tyype=;=;=;5.1子子界與枚枚舉1.子界界類型: 當(dāng)某些變變量的取取值范圍圍很具體體時(shí),可可用子界界類型,它更符符合實(shí)際際、便于于查錯(cuò)和和節(jié)省內(nèi)內(nèi)存。 定義如下下: typee riiqi=1

42、.31; ziimu=A.Z; var dayy:riiqi; ch11:ziimu;也可以直直接定義義: dayy:1.311; yeaar:00.2200; ch11:AA.Z; 5.2 枚舉類類型:通過預(yù)定定義列出出所有值值的標(biāo)識(shí)識(shí)符來定定義一個(gè)個(gè)有序集集合,這這些值的的次序和和枚舉類類型說明明中的標(biāo)標(biāo)識(shí)符的的次序是是一致的的。枚舉舉類型的的形式:(標(biāo)標(biāo)識(shí)符11,標(biāo)識(shí)識(shí)符n)例如如:tyype dayystyype=(suundaay,mmondday,tueesdaay,wwednnesdday,thuursdday,friidayy,saaturrdayy)枚舉舉元素只只能是標(biāo)標(biāo)識(shí)符

43、,而而不能是是數(shù)值常常量或字字符常量量。例如如以下的的定義是是錯(cuò)誤的的:tyype dayystyype=(ssun,mmon,ttue,wwed,tthu,ffri,ssat)枚舉舉元素是是標(biāo)識(shí)符符,不要要把作為為枚舉元元素的標(biāo)標(biāo)識(shí)符視視作變量量名,它它不能被被賦值。同一個(gè)個(gè)枚舉元元素不能能出現(xiàn)在在兩個(gè)或或兩個(gè)以以上的枚枚舉類型型定義中中。例如如以下的的定義是是錯(cuò)誤的的:tyype dayytyppe1=(moondaay,ttuessdayy);daaytyype22=(mmondday,weddnessdayy);可以以將枚舉舉類型的的定義和和變量的的定義結(jié)結(jié)合在一一起。例例如:vvar

44、 a:(monndayy,tuuesdday,sunndayy)枚舉舉類型屬屬于順序序類型。根據(jù)定定義類型型時(shí)各枚枚舉元素素的排列列順序確確定它們們的序列列,序列列號(hào)從00開始。例如如:已經(jīng)經(jīng)定義ddaysstyppeorrd(ssundday)=0,succc(ssundday)=moondaay,ppredd(frridaay)=thuursdday但是是枚舉類類型中的的第一個(gè)個(gè)元素沒沒有前趨趨,最后后一個(gè)元元素沒有有后繼。Turrbo Passcall不允許許直接讀讀寫枚舉舉值,所所以枚舉舉值的輸輸出常用用casse語句句間接的的輸出。枚舉值值的輸入入,則要要一一判判斷讀入入字符是是否是

45、枚枚舉類型型的標(biāo)識(shí)識(shí)符。若若是才能能賦給枚枚舉變量量,否則則就會(huì)出出錯(cuò)。例如如:枚舉舉值的輸輸出caase dayy offsuundaay:wwritte(sunndayy);moondaay:wwritte(monndayy);tuuesdday:wriite(tuuesdday);weedneesdaay:wwritte(weddnessdayy);thhurssdayy:wrritee(tthurrsdaay);frridaay:wwritte(friidayy);saaturrdayy:wrritee(ssatuurdaay);end; 練習(xí)及及作業(yè) 1.按月月、日順順序輸入入今年的

46、的一個(gè)日日期,輸輸出該日日是星期期幾?已已知今年年元旦是是星期一一。5.3 集合1集合合的定義義:tyype 類型名名=seet oof 基基類型例如如:typpenuum=sset of chaar;varrn:numm;或或varrn: seet oof ccharr;集合合的表示示:用一組組方括號(hào)號(hào)括號(hào)一一組元素素來表示示,元素素之間用用逗號(hào)分分隔。如如:AA,B,C,DD有四個(gè)個(gè)枚舉量量的集合合A,B,CC,D有有四個(gè)字字符的集集合11.220包含含了1到到20中中所有整整數(shù)的集集合00只有一一個(gè)元素素0的單單元素集集空空集.集合合的運(yùn)算算:(1)并(aa+b):屬于于a或?qū)賹儆赽0.

47、7+0.4的值為為0.7(2)交(aa*b):既屬屬于a又又屬于bb0.7*0.4的值為為0.4(3)差(aa-b):屬于于a但不不屬于bb0.7-0.4的值為為5.7(4)相等(a=bb):aa,b的的元素完完全一樣樣0.7=0.4的值為為fallse(5)不等():元素素不一樣樣0.700.44的值值為trrue(6)包含于于(=):0.7=):0.7=00.44的值值為trrue(8)成員(in):11 inn 00.44的值值為trrue.注意意事項(xiàng):(1)集合運(yùn)運(yùn)算相當(dāng)當(dāng)快,在在程序中中常用集集合表達(dá)達(dá)式來描描述復(fù)雜雜的測(cè)試試。如AA)條件件表達(dá)式式: (ch=T) oor (ch=

48、t) oor (ch=Y) oor (ch=y) 可可用集合合表達(dá)式式表示為為:ch in TT,t,Y,yyBB)iff (cch=20) annd (ch=500) tthenn .;可寫成成:iif cch iin 20.500 tthenn .;(2)集合類類型是一一種使用用簡(jiǎn)便,節(jié)節(jié)省內(nèi)存存面又運(yùn)運(yùn)算速度度快的數(shù)數(shù)據(jù)類型型。(3)Turrbo Passcall規(guī)定集集合的元元素個(gè)數(shù)數(shù)不超過過2566個(gè)(當(dāng)當(dāng)實(shí)際問問題所需需的元素素個(gè)數(shù)大大于2556時(shí), 可采用用布爾數(shù)數(shù)組代替替集合類類型)。所以如如下定義義是錯(cuò)誤誤的: varr i: seet oof iinteegerr;(4)集

49、合類類型變量量不能進(jìn)進(jìn)行算術(shù)術(shù)運(yùn)算,了了不允許許用讀/寫語句句直接輸輸入/輸輸出集合合。 所所以集合合的建立立: AA)要通通過賦值值語句實(shí)實(shí)現(xiàn); BB)或先先初始化化一個(gè)集集合,然然后通過過并運(yùn)算算向集合合中逐步步加入各各個(gè)元素素.(5)集合元元素是無無序的,所所以orrd,ppredd和suucc函函數(shù)不能能用于集集合類型型的變量量。練習(xí)及及作業(yè):用篩選法法求11000內(nèi)的所所有質(zhì)數(shù)數(shù)2編程程讀入兩兩個(gè)字符符串,然然后輸出出如下信信息:(1)出出現(xiàn)在某某一個(gè)字字符串中中至少一一次的字字母和數(shù)數(shù)字;(2)同同時(shí)出現(xiàn)現(xiàn)在兩個(gè)個(gè)字符串串中至少少一次的的字母和和數(shù)字;(3)出出現(xiàn)在一一個(gè)字符符串中

50、而而不出現(xiàn)現(xiàn)在另一一個(gè)字符符串中的的字母和和數(shù)字;(4)不不出現(xiàn)在在任何字字符串中中的字母母和數(shù)字字。 第六講 過程程和函數(shù)數(shù)主要內(nèi)容容:1、子程程序的定定義、調(diào)調(diào)用和參參數(shù)的傳傳遞;2、理解解并掌握握標(biāo)識(shí)符符的作用用域;3、理解解并掌握握值參、變參的的含義;理解并掌掌握子程程序的嵌嵌套;掌握遞歸歸和遞推推;在程序設(shè)設(shè)計(jì)中,對(duì)對(duì)于較簡(jiǎn)簡(jiǎn)單規(guī)模模較小的的問題,可可以直接接編寫程程序。但但對(duì)于比比較復(fù)雜雜的問題題,如不不精心規(guī)規(guī)劃,一一上來就就動(dòng)手寫寫程序,就就可能隨隨著語句句數(shù)的增增多和情情況的復(fù)復(fù)雜化而而不知所所措。自自己寫的的程序過過一段時(shí)時(shí)間后再再看可能能也有許許多看不不懂的地地方。較好的

51、辦辦法是先先考慮一一下如何何將這一一復(fù)雜的的問題分分為若干干個(gè)目標(biāo)標(biāo)明確且且易于處處理的子子問題,然然后對(duì)每每一個(gè)子子問題進(jìn)進(jìn)行分析析,確定定是否還還要繼續(xù)續(xù)劃分,樣樣“由粗到到細(xì)”,最終終實(shí)現(xiàn)目目標(biāo)。從結(jié)構(gòu)化化程序設(shè)設(shè)計(jì)的要要求來看看,我們們有必要要將程序序模塊化化,而過過程與函函數(shù)是模模塊化好好的實(shí)現(xiàn)現(xiàn)方法。另外我們們?cè)谑褂糜肨urrbo-Passcall系統(tǒng)時(shí)時(shí),經(jīng)常常是各種種語句實(shí)實(shí)現(xiàn)各自自的功能能,各種種函數(shù)實(shí)實(shí)現(xiàn)各自自的運(yùn)算算處理并并返回一一個(gè)值。我們也也希望自自己能夠夠編寫類類似的語語句或函函數(shù)??煽梢赃@樣樣認(rèn)為,系系統(tǒng)提供供的語句句是系統(tǒng)統(tǒng)過程,而而系統(tǒng)提提供的函函數(shù)是系系統(tǒng)函

52、數(shù)數(shù),下面面就來看看自己是是如何編編寫類似似于語句句的過程程和類似似于系統(tǒng)統(tǒng)函數(shù)的的函數(shù)的的。6.1過過程用其其調(diào)用1過程程的說明明:procceduure 過程標(biāo)標(biāo)識(shí)符(形式式參數(shù)表表);說明部部分;begiin語句部分分;end;方括號(hào)為為可選部部分,在在過程的的首部標(biāo)標(biāo)識(shí)符之之后如果果沒有參參數(shù),稱稱為無參參過程,否否則稱為為有參過過程。形式參數(shù)數(shù)表形如如:形式參數(shù)數(shù)段;形式參參數(shù)段其中形式式參數(shù)段段列舉每每個(gè)形式式參數(shù)的的性質(zhì)、名字和和類型,可可為:形式參數(shù)數(shù),形形式參數(shù)數(shù):類類型 值值參數(shù)或者:var 形式參參數(shù),形形式參數(shù)數(shù):類類型 變量量參數(shù)第一種稱稱為值參參數(shù),它它與調(diào)用用的程

53、序序之間傳傳遞的是是值,第第二種稱稱為變量量參數(shù),它它與調(diào)用用程序間間傳遞的的地址。通俗一點(diǎn)點(diǎn)兒講,值值參數(shù)只只是將調(diào)調(diào)用它的的量的值值拿來進(jìn)進(jìn)行處理理,不管管它是變變量、表表達(dá)式、還是常常數(shù)等等等,只要要類型符符合就行行,過程程里對(duì)這這些量的的改變不不會(huì)影響響到調(diào)用用它的上上級(jí)程序序。而變變量參數(shù)數(shù)一定是是變量來來調(diào)用,并并且過程程的處理理過程中中對(duì)變量量值的改改變能帶帶回調(diào)用用它的上上級(jí)程序序。2過程程的調(diào)用用調(diào)用過程程時(shí)只要要直接寫寫上過程程名,如如果過程程有參數(shù)數(shù),那么么在調(diào)用用時(shí)要加加上加應(yīng)應(yīng)的參數(shù)數(shù)。6.2、函數(shù)及及其調(diào)用用1函數(shù)數(shù)說明funcctioon 函函數(shù)標(biāo)識(shí)識(shí)符(形形式參

54、數(shù)數(shù)表):結(jié)果果類型;說明部部分;begiin語句部分分;其其中一般般都有:“函數(shù)標(biāo)標(biāo)識(shí)符:=表達(dá)達(dá)式” 這這樣的賦賦值語句句end;2函數(shù)數(shù)的調(diào)用用 跟調(diào)用用系統(tǒng)內(nèi)內(nèi)的標(biāo)準(zhǔn)準(zhǔn)函數(shù)一一樣,通通過“函數(shù)名名(參數(shù)數(shù))”的形式式可將它它引用在在表達(dá)式式中。因因?yàn)樗恢皇沁M(jìn)行行相關(guān)的的運(yùn)算或或處理并并返回一一個(gè)值,不不能跟一一般的語語句等同同而單獨(dú)獨(dú)使用,因因此必須須出現(xiàn)在在表達(dá)式式中。6.3全全局變量量和局部部變量 在子程程序中定定義的變變量稱為為局部變變量,在在程序的的一開始始定義的的變量稱稱為全局局變量。全局變變量作用用域是整整個(gè)程序序;局部部變量作作用域是是定義該該變量的的子程序序。當(dāng)全全局

55、變量量與局部部變量同同名時(shí):在定義義局部變變量的子子程序內(nèi)內(nèi),局部部變量起起作用;在其它它地方全全局變量量起作用用。 例4:全全局變量量和局部部變量。 proggramm loocall_gllobaal;var i,kk:inntegger;procceduure subb1;var i,jj:inntegger;beggin i:=177; wrriteeln(i in subb=,i); wrriteeln(k in subb=,k);endd;begiini:=2;kk:=99;wriitelln(i iin mmainn=,i);wriitelln(k iin ssub=,kk);s

56、ubb1;wriitelln(i iin mmainn=,i);wriitelln(j iin mmainn=,j);reaadlnn;end. 上述程序序運(yùn)行時(shí)時(shí)將出現(xiàn)現(xiàn)Unkknowwn IIdenntfiier;因?yàn)樽冏兞縥在在主程序序中沒定定義。 當(dāng)刪除本本語句時(shí)時(shí)。運(yùn)行行結(jié)果如如下: i inn maain2 k inn maain9 i inn suub117 k inn suub99 i inn maain2 6. 44 值參參和變量量參數(shù) 值形參傳值值:調(diào)用用時(shí)可用用表達(dá)式式代替形形參,不不該變實(shí)實(shí)在參數(shù)數(shù)的值。變量形參參傳傳地址:調(diào)用時(shí)時(shí)必須用用變量代代替行參參變量,改改變實(shí)

57、在在參數(shù)的的值。 例4:請(qǐng)請(qǐng)看下列列程序的的運(yùn)行結(jié)結(jié)果。 proggramm lii3_110;var a,b,cc:inntegger;procceduure subb(x,y:iinteegerr;vaar zz:inntegger);begginx:=x+11;y:=y+1;zz:=xx+y;wriitelln(subb:x=,xx:2,y=,yy:2,z=,zz:2);endd;begiina:=1;bb:=44;c:=9;wriitelln(maiin:aa=,a:22,bb=,b:22,cc=,c);subb(a,b,cc);wriitelln(maiin:aa=,a:22,bb=

58、,b:22,cc=,c);subb(c+5,bb*b,a);wriitelln(maiin:aa=,a:22,bb=,b:22,cc=,c);reaadlnn;end. mainn:a1 bb4 c99 sub:x22 y5 zz7 mainn:a1 bb4 c77 sub:x113 yy177 z30 mainn:a30 b44 c7 練習(xí)及及作業(yè)1見變變量及參參數(shù)實(shí)例例一文文2輸入入5個(gè)正正整數(shù)求求它們的的最大公公約數(shù)(用用過程和和函數(shù)實(shí)實(shí)現(xiàn))3.哥德德巴赫猜猜想:不不小于66的偶數(shù)數(shù)可以分分解成二二個(gè)素?cái)?shù)數(shù)之和(1100000以內(nèi)內(nèi))4.利用用遞歸打打印楊輝輝三角形形。5利用用遞歸求求解

59、N!第七講 常用用算法介介紹主要內(nèi)容容:1、理解解算法的的含義及及其重要要性;2、熟練練掌握本本節(jié)中所所列的常常用算法法及經(jīng)典典例題;3、通過過常用算算法的學(xué)學(xué)習(xí)能舉舉一反三三解決實(shí)實(shí)際問題題;枚舉算法法枚舉就是是一個(gè)一一個(gè)地列列舉。應(yīng)應(yīng)用到程程序中,枚枚舉有許許多表現(xiàn)現(xiàn)形式,比比如把所所有的組組合都掃掃描一遍遍,找出出符合要要求的組組合。舉舉個(gè)簡(jiǎn)單單的例子子,找素素?cái)?shù)。11什么都都不是,22是素?cái)?shù)數(shù),3是是,4不不是,55是,如此此把所有有的自然然數(shù)(當(dāng)當(dāng)然是不不可能的的,只能能盡量多多)都找找一遍,就就能找出出所有的的素?cái)?shù)(如果可可能的話話)??梢赃@么么說,枚枚舉是最最簡(jiǎn)單,最最基礎(chǔ),也也

60、是最沒沒效率的的算法。枚舉擁擁有很多多優(yōu)點(diǎn),以以致于他他能夠活活到現(xiàn)在在而不被被淘汰。首先,枚枚舉有超超級(jí)無敵敵準(zhǔn)確性性,只要要時(shí)間足足夠,正正確的枚枚舉得出出的結(jié)論論是絕對(duì)對(duì)正確的的。其次次,枚舉舉擁有天天下第一一全面性性,因?yàn)闉樗菍?duì)對(duì)所有方方案的全全面搜索索,所以以,它能能夠得出出所有的的解。例711找出3300000以內(nèi)內(nèi)所有的的偶數(shù),一一個(gè)個(gè)地地輸出來來。var i:iinteegerr; begiin foor ii:=00 too 3000000 doo 為什什么要3300000呢?inteegerr類型是是從3227677到+3327667之間間的整數(shù)數(shù)。如果你要要再大一一點(diǎn),

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論