



版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
注:本教程授課時(shí)間為十八課時(shí),學(xué)生上機(jī)練習(xí)時(shí)間為十八課間,共計(jì)三十六課時(shí)。可同時(shí)對(duì)六十名學(xué)生授課。TOC\o"1-5"\h\z\o"CurrentDocument"第一章簡單程序 2\o"CurrentDocument"第一節(jié)Pasca!程序結(jié)構(gòu)和基本語句 2\o"CurrentDocument"第二節(jié)順序結(jié)構(gòu)程序與基本數(shù)據(jù)類型 7\o"CurrentDocument"第二章分支程序 10\o"CurrentDocument"第一節(jié)條件語句與復(fù)合語句 10\o"CurrentDocument"第二節(jié)情況語句與算術(shù)標(biāo)準(zhǔn)函數(shù) 12\o"CurrentDocument"第三章循環(huán)程序 16\o"CurrentDocument"第一節(jié)for循環(huán) 16\o"CurrentDocument"第二節(jié)repeat循環(huán) 23\o"CurrentDocument"第三節(jié)While循環(huán) 27\o"CurrentDocument"第四章函數(shù)與過程 33\o"CurrentDocument"第一節(jié)函數(shù) 33\o"CurrentDocument"第二節(jié)自定義過程 36\o"CurrentDocument"第五章Pascal的自定義數(shù)據(jù)類型 41\o"CurrentDocument"第一節(jié)數(shù)組與子界類型 41\o"CurrentDocument"第二節(jié)二維數(shù)組與枚舉類型 49\o"CurrentDocument"第三節(jié)集合類型 58\o"CurrentDocument"第四節(jié)記錄類型和文件類型 63\o"CurrentDocument"第五節(jié)指針類型與動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu) 70\o"CurrentDocument"第六章程序設(shè)計(jì)與基本算法 75\o"CurrentDocument"第一節(jié)遞推與遞歸算法 75\o"CurrentDocument"第二節(jié)回溯算法 82第一章簡單程序無論做任何事情,都要有一定的方式方法與處理步驟。計(jì)算機(jī)程序設(shè)計(jì)比日常生活中的事務(wù)處理更具有嚴(yán)謹(jǐn)性、規(guī)范性、可行性。為了使計(jì)算機(jī)有效地解決某些問題,須將處理步驟編排好,用計(jì)算機(jī)語言組成“序列”,讓計(jì)算機(jī)自動(dòng)識(shí)別并執(zhí)行這個(gè)用計(jì)算機(jī)語言組成的“序列”,完成預(yù)定的任務(wù)。將處理問題的步驟編排好,用計(jì)算機(jī)語言組成序列,也就是常說的編寫程序。在Pascal語言中,執(zhí)行每條語句都是由計(jì)算機(jī)完成相應(yīng)的操作。編寫Pascal程序,是利用Pascal語句的功能來實(shí)現(xiàn)和達(dá)到預(yù)定的處理要求。“千里之行,始于足下”,我們從簡單程序?qū)W起,逐步了解和掌握怎樣編寫程序。第一節(jié)Pascal程序結(jié)構(gòu)和基本語句在未系統(tǒng)學(xué)習(xí)Pasca!語言之前,暫且繞過那些繁瑣的語法規(guī)則細(xì)節(jié),通過下面的簡單例題,可以速成掌握Pascal程序的基本組成和基本語句的用法,讓初學(xué)者直接模仿學(xué)習(xí)編簡單程序。[例1.1]編程在屏幕上顯示“HelloWorld!”。Pasca!程序:Programexll;BeginWritelM'HelloWorkl!');ReadLn;End.這個(gè)簡單樣例程序,希望大家的程序設(shè)計(jì)學(xué)習(xí)能有一個(gè)良好的開端。程序中的Writein是ー個(gè)輸出語句,它能命令計(jì)算機(jī)在屏幕上輸出相應(yīng)的內(nèi)容,而緊跟Writein語句后是ー對(duì)圓括號(hào),其中用單引號(hào)引起的部分將被原原本本地顯示出來。[例1.2]已知一輛自行車的售價(jià)是300元,請(qǐng)編程計(jì)算a輛自行車的總價(jià)是多少?解:若總售價(jià)用m來表示,則這個(gè)問題可分為以下兒步處理:①從鍵盤輸入自行車的數(shù)目a;②用公式m=300*a計(jì)算總售價(jià);③輸出計(jì)算結(jié)果。Pasca!程序:ProgramEx12;Vara5m:integer;BeginWrite(ta=,);ReadLn(a);M:=300*a;{程序首部}{說明部分}(語句部分){輸入自行車數(shù)目}{計(jì)算總售價(jià)}
Writeln('M=\m); {輸出總售價(jià)}ReadLn; {等待輸入回車鍵}End.此題程序結(jié)構(gòu)完整,從中可看出ー個(gè)Pasca!程序由三部分組成:(1)程序首部由保留字Program開頭,后面跟ー個(gè)程序名(如:Exll);其格式為:Program程序名;_程序名由用戶自己取,它的第一個(gè)字符必須是英文字母,其后的字符只能是字母或數(shù)字和下劃線組成,程序名中不能出現(xiàn)運(yùn)算符、標(biāo)點(diǎn)符和空格。(2)說明部分程序中所用的常量、變量,或類型、及過程與自定義函數(shù),需在使用之前預(yù)先說明,定義數(shù)據(jù)的屬性(類型)。[例1.2]程序中VarS,R,C:Real,是變量說明,此處說明S,R,C三個(gè)變量均為實(shí)數(shù)類型變量。只有被說明為某ー類型的變量,在程序中才能將與該變量同類型的數(shù)值賦給該變量。變量說明的格式為:Var變量表:類型;(3)語句部分指由保留字Begin(開始)至End.(結(jié)尾)之間的語句系列,是解決問題的具體處理步驟,也是程序的執(zhí)行部分。Pascal程序不管是哪部分,每句末尾都必須有分號(hào)(;),但允許最接近End的那個(gè)語句末尾的分號(hào)省略:程序結(jié)束的End末尾必須有圓點(diǎn)(.),是整個(gè)程序的結(jié)束標(biāo)志。程序中花括號(hào)“{ド之間的部分為注釋部分。Pascal程序結(jié)構(gòu)可歸納用如下的示意圖來表示:Program程ノ予名:標(biāo)號(hào)說明:Program程ノ予名:標(biāo)號(hào)說明:(Label)常量說明:(Const)類型說明:(Type)變量說明:(Var)過程或函數(shù)說明:Begin語句系列:End.圖1.1Pascal程序的結(jié)構(gòu)說明部分程序體(主程序)
語句部分把處理問題的步驟編成能從上到下順序執(zhí)行的程序,是簡單程序的基本特征。再來分析下面兩道例題的Pasca!程序結(jié)構(gòu)和繼續(xù)學(xué)習(xí)基本語句。[例1.3]編程計(jì)算半徑為R的圓的面積和周長。解:這是ー個(gè)簡單問題,按數(shù)學(xué)方法可分以下幾步進(jìn)行處理:①從鍵盤輸入半徑的值R: {要求告訴圓的半徑R}
②用公式S=nR2計(jì)算圓面積;計(jì)算圓周長;Pasca!程序:ProgramExl3;VarR,S?C:Real;{程序首部}計(jì)算圓面積;計(jì)算圓周長;Pasca!程序:ProgramExl3;VarR,S?C:Real;{程序首部}BeginWrite('R二?');Readln(R);S:=Pi*R*R;C:=2*Pi*R;WritelnCS=',S);WritelnCC士,C);Readln{說明部分}{語句部分}{輸入半徑)(圓面積公式S=nR2}{圓周長公式C=2"R){輸出結(jié)果}(等待輸入回車鍵}End.程序中Pi是Pascal提供的標(biāo)準(zhǔn)函數(shù),它返回圓周率的近似值:3.1415926…。(:=)是賦值符號(hào),賦值語句的格式為:變量:=表達(dá)式:賦值語句的作用是將:=右邊表達(dá)式的值記錄到左邊的變量中。Writein是輸出語句,輸出語句有三種格式:①Write(輸出項(xiàng)1,輸出項(xiàng)2); {執(zhí)行輸出后光標(biāo)不換行}②Writein(輸出項(xiàng)!,輸出項(xiàng)2); {執(zhí)行輸出后光標(biāo)換到下一行}③Writein I{僅輸出空白且光標(biāo)換到下一行}Writein語句后面的圓括號(hào)以內(nèi)部分均為輸出項(xiàng),可以是多項(xiàng),各項(xiàng)間用逗號(hào)分隔;對(duì)單引號(hào)里的內(nèi)容按照引號(hào)內(nèi)的原樣(字符)輸出顯示。如果輸出項(xiàng)是表達(dá)式,則只輸出表達(dá)式的值,而不是表達(dá)式本身。[例1.4]輸出兩個(gè)自然數(shù)相除的商和余數(shù)。解:設(shè)被除數(shù)、除數(shù)、商和余數(shù),分別為A,B,C,D,均為變量,且都是整數(shù)類型。題中未給出具體的自然數(shù)A、B,可采用鍵盤輸入方式。①給出提示,從鍵盤輸入a,b;②顯示兩數(shù)相除的數(shù)學(xué)形式;③求出a除以b的商c;④求出a除以b的余數(shù)d;⑤緊接等式后面輸出顯示商和余數(shù)。Pasca!程序:ProgramExl4:Vara,b,c,d:integer;BeginWrite(lNPUTA,B:')Write(lNPUTA,B:');{給出提示信息}Readln(a,Writein;Write(a,Readln(a,Writein;Write(a,ソ‘,b,'=')c:=adivb;d:=amodb:Writeln(C,d);Readln{輸入a,b){輸出一空行}{輸出等式之后不換行}{整除運(yùn)算,取商的整數(shù)部分}{相除求余運(yùn)算,取商的余數(shù)部分}{輸出后自動(dòng)換行){等待輸入回車鍵}End.執(zhí)行本程序中第一個(gè)Write語句,輸出其引號(hào)以內(nèi)的ー串提示信息,是給緊接著的輸入語句提供明確的提示(要求),有“一目了然,人機(jī)對(duì)話”之效果。Readln是一個(gè)特殊的輸入語句,要求輸入一個(gè)回車(換行)才能往下執(zhí)行。Readln是輸入語句,它的?般格式為:①Read(變量1,變量2);②Readln(變量1,變量2);③Readln前兩種格式均要從鍵盤給變量輸入數(shù)據(jù),輸入時(shí),所鍵入的數(shù)據(jù)之間以空格為分隔,以回車為輸入結(jié)束。若多輸入了數(shù)據(jù)(即數(shù)據(jù)個(gè)數(shù)超過變量個(gè)數(shù)),Read語句讀完數(shù)據(jù)之后,能讓后續(xù)的讀語句接著讀取多下來的數(shù)據(jù);而Readln語句對(duì)本行多輸入的數(shù)據(jù)不能讓后續(xù)語句接著讀取多下來的數(shù)據(jù)。為了防止多輸入的數(shù)據(jù)影響下ー個(gè)輸入語句讀取數(shù)據(jù),建議盡量使用Readln語句輸入數(shù)據(jù)。第三種格式不需輸入數(shù)據(jù),只需按入一個(gè)回車鍵。[例1.5]自然數(shù)的立方可以表示為兩個(gè)整數(shù)的平方之差,比如43=1〇2一62,請(qǐng)輸出自然數(shù)1996的這種表示形式。(這里的ペ用臼乘二次的形式4*4*4表示;IOユ也用自乘二次的形式1〇?1〇表示)解:此題沒有現(xiàn)成的計(jì)算公式能直接利用,但可以自行推出處理方法或構(gòu)建適當(dāng)?shù)倪\(yùn)算公式,按著構(gòu)想的處理方案編排出各步驟。設(shè)這個(gè)自然數(shù)為N,兩個(gè)平方數(shù)分別為X,Y,將問題表示為求N3=X2-Y2①先找出X的值,仔細(xì)觀察題中的示例,用數(shù)學(xué)方法歸納可得出X=N*(N+l)/2;(構(gòu)成本題可用的計(jì)算公式)②再仔細(xì)觀察,發(fā)現(xiàn)丫值比X小一個(gè)N值,即Y=X—N;③輸出等式N3=X2—Y2或N*N*N=X*X—Y*丫Pasca!程序:ProgramEx15;ConstN=1996; {常量說明}VarX,Y:Longint; {變量說明,此題計(jì)算中的數(shù)值較大,用長整型}BeginX:=N*(N+l)div2; {div是整除運(yùn)算}Y:=X-N;Writeln(N,'*',N,'*',N;=',X;*',X;—',Y,'*',Y); {輸出結(jié)果)
End.本程序中N是常量,X,Y是變量,為長整數(shù)類型(Longint);程序中的div是整除運(yùn)算,其結(jié)果只取商的整數(shù)部分:[例1.6]求一元二次方程x2+3x+2=0的兩個(gè)實(shí)數(shù)根。解:方程的系數(shù)是常量,分別用a,b,c表示,可運(yùn)用數(shù)學(xué)上現(xiàn)成的求根公式求方程的根,采取如下方法:①先求出d=b2>4ac;(求根公式中需用開方運(yùn)算的那部分)②再用求根公式算出xl,x2的值。(xl,x2=?)③輸出xl,x2.Pasca!程序:programExl6;Consta=1;programExl6;Consta=1;b=3;c=2;Vard:integer;XI,X2:Real;Begind:=b*b-4*a*c;xl:=(-b+sqrt(d))/(2*a);x2:=(-b-sqrt(d))/(2*a);WritelnCXl=',XI,1f:6,Readln'X2=',{常量說明}{a,b,c表示方程系數(shù)){d為整型變量){XI,X2為實(shí)型變量){求方程的根}X2);{輸出結(jié)果}{等待輸入ー個(gè)回車鍵}求右圖所示邊長為5.6的正立方體表面積。已知圖園柱體的高為求右圖所示邊長為5.6的正立方體表面積。已知圖園柱體的高為12,底面園的半徑為7,End.本程序中的a,b,c均為常量;變量d是整數(shù)類型,而變量xl,x2則是實(shí)數(shù)類型,因?yàn)檫\(yùn)算式中的Sqn(d)開平方運(yùn)算和(7)除法運(yùn)算使結(jié)果為實(shí)數(shù)。Sqrt()是開平方函數(shù),是Pascal系統(tǒng)的ー個(gè)標(biāo)準(zhǔn)函數(shù)。習(xí)題1.1模仿例題編程1.加法計(jì)算器:編程由鍵盤輸入兩個(gè)整數(shù)a和b,計(jì)算出它們的和并輸出到屏幕上。某梯形的上底、下底和高分別為8,12,9,求該梯形的面積。(梯形面積公式為S=(上底+下底)x髙5.計(jì)算某次考試語文、數(shù)學(xué)、英語和計(jì)算機(jī)等四科的總成績與平均成績。(請(qǐng)用輸入語句從鍵盤輸入各科成績分)第二節(jié)順序結(jié)構(gòu)程序與基本數(shù)據(jù)類型前面的簡單程序已體現(xiàn)出處理問題步驟、思路的順序關(guān)系,這就是順序結(jié)構(gòu)程序。[例1.7]交換兩個(gè)變量的值:由健盤輸入兩個(gè)正整數(shù)A和B,編程交換這兩個(gè)變量的值。解:交換兩個(gè)變量的值,可以想象成交換兩盒錄音帶(稱為A和B)的內(nèi)容,可以按以下步驟處理:步驟①:拿一盒空白錄音帶C為過渡,先將A翻錄至C;步驟②:再將B翻錄至A;步驟③:最后將C翻錄至B。這樣操作,可達(dá)到題目要求。Pasca!程序:ProgramExaml7;Vara,b,c:integer;BeginWrite(tA,B=,);Readln(a,b);C:=A; {等價(jià)于步驟1}A:=B; {等價(jià)于步驟2}B:=C; {等價(jià)于步驟3)Writeln(A,B);End.[例1.8]分錢游戲。甲、乙、丙三人共有24元錢,先由甲分錢給乙、丙兩人,所分給的數(shù)與各人已有數(shù)相同;接著由乙分給甲、丙,分法同前:再由丙分錢給甲、乙,分法亦同前。經(jīng)上述三次分錢之后,每個(gè)人的錢數(shù)恰好一樣多。求原先各人的錢數(shù)分別是多少?解:設(shè)甲、乙、丙三人的錢數(shù)分別為A,B,C。用倒推(逆序)算法,從最后結(jié)果入手,按反相順序,分步驟推算出每次各人當(dāng)時(shí)的錢數(shù):(在每個(gè)步驟中,各人錢數(shù)分別存在A、B、C中)步驟①:A=8B=8C=8 {這是最后結(jié)果的錢數(shù),三人都一樣多}步驟②:A=A/2(=4)B=B/2(=4)C=A+B+C(=16) {A,B未得到丙分給的錢時(shí),只有結(jié)果數(shù)的一半;C應(yīng)包含給A,B及本身數(shù)三者之和}步驟③:A=A/2(=2)C=C/2(=8)B=A+B+C(=14) {A,C未得到乙分給的錢時(shí),只有巳有數(shù)的一半;B應(yīng)包含給A,C及本身數(shù)三者之和}步驟④:B=B/2(=7)C=C/2(=4)A=A+B+C(=13)C未得到甲分給的錢時(shí),只有巳有數(shù)的一半;A應(yīng)包含給B,C及本身數(shù)三者之和}步驟⑤:輸出A(=13)B(=7)C(=4){此時(shí)的A,B,C就是三人原先的錢數(shù)}Pasca!程序:ProgramExaml8;Vara,b,c:integer;Begina:=8;b:=8;c:=8; {對(duì)應(yīng)于步驟①)a:=adiv2; b:=bdiv2; c:=a+b+c; {對(duì)應(yīng)于步驟②}a:=adiv2; c:=cdiv2; b:=a+b+c; {對(duì)應(yīng)于步驟③}b:=bdiv2; c:=cdiv2; a:=a+b+c; {對(duì)應(yīng)于步驟④}Writeln('a±,a,' 4, 'b=',b,' 4,'c=',c);{輸出)ReadlnEnd.細(xì)心觀察,會(huì)發(fā)現(xiàn)本程序語句的順序很關(guān)鍵。此例用反推順序(逆序),按步驟正確推算出各變量的值。當(dāng)然,有的問題可按正序步驟編程,這類程序都稱為順序程序。本程序Writein語句的輸出項(xiàng)含有('4),這里的冒號(hào)用來指定該項(xiàng)顯示所占寬度,此處是輸出4個(gè)空格即(空格項(xiàng)占4格)。[例1.9]有雞兔同籠,頭30,腳90,究竟籠中的雞和兔各有多少只?解:設(shè)雞為J只,兔為T只,頭為H,腳為F,貝リ:J+T=30 ①2*J+4*T=90 ②解此題暫不必采用數(shù)學(xué)上直接解方程的辦法,可采用“假設(shè)條件與邏輯推理”的辦法:假設(shè)籠中30個(gè)頭全都是兔,那么都按每頭4只腳計(jì)算,總腳數(shù)為(4*H),與實(shí)際腳數(shù)(F)之差為(4*H—F),如果這個(gè)差=0,則籠中全是兔(即雞為0只);如果這個(gè)差值>0,說明多計(jì)算了腳數(shù),凡是雞都多給算了兩只腳,用它除以2就能得到雞的只數(shù),處理步驟為:①J=(4*H—F)/2 {先用腳數(shù)差值除以2算出雞的只數(shù))②T=H-J {再用總頭數(shù)減雞數(shù)算出免的只數(shù)}按此方法,這兩步運(yùn)算必須注意先后順序オ會(huì)符合運(yùn)算邏輯。Pasca!程序:ProgramExaml6;ConstH=30; {常量說明}F=90;VarJ,T:byte: {為字節(jié)類型的整數(shù)}BeginJ:=(4*H-F)div2; {整除運(yùn)算}T:=H-JWritein(7=',J,' 6,T=',T);ReadlnEnd.本程序中H,F為常量,變量J,T為byte類型,屬于整數(shù)類型。Pascal定義了五個(gè)標(biāo)準(zhǔn)整數(shù)類型,如下表所示:類型取值范圍占字節(jié)數(shù)格式Shortint(短整型)-128..1271帶符號(hào)8位Integer (整型)-32768.327672帶符號(hào)16位
Longint(長整型)-2147483648..21474836474帶符號(hào)32位Byte(字節(jié)型)0..2551無符號(hào)8位Word (字型)0..655352無符號(hào)16位在前面程序中常用的數(shù)據(jù)類型除整數(shù)類型,還有實(shí)數(shù)類型。Pasca!還定義了五個(gè)標(biāo)準(zhǔn)實(shí)數(shù)類型,列表所示如下:類型取值范圍占字節(jié)數(shù)有效數(shù)字Real2.9X10-39~1.7X103867~8位Single1.5X1O-45~3.4X1038411~12位DoubleS.OXIO-^-I.VXIO308815~16位Extended1.9X1O495I~1.1X1049321019~20位Comp-263+l~238-l819-20位在TurboPasca!中實(shí)數(shù)的表示用科學(xué)記數(shù)法,可認(rèn)為由三部分組成:#.##E+##或#.##E-##①#.##表示有效數(shù)字;②E表示以10為底的‘幕;③鈣#或"##是指數(shù)部分,+號(hào)可省略。例如:1.7E+38可寫成1.7E38(等同于1.7X1038)。在實(shí)數(shù)類型定義下,即使是整數(shù),在程序執(zhí)行時(shí)系統(tǒng)也將自動(dòng)轉(zhuǎn)換成科學(xué)記數(shù)形式,試請(qǐng)運(yùn)行下面程序并注意觀察運(yùn)行結(jié)果:ProgramExam17;{X為實(shí)數(shù)類型}{把整數(shù){X為實(shí)數(shù)類型}{把整數(shù)180賦給實(shí)數(shù)類型變量X}
{輸出的x自動(dòng)表示成實(shí)數(shù)形式}BeginX:=180;Writein('x=\x);ReadlnEnd.習(xí)題1.21.已知△ABC中的三邊長分別為25.76,74.03,59.31I求△ABC的面積。〇其中P=〇其中P=.某車棚存有自行車和三輪車共65輛,它們的輪子數(shù)合計(jì)為150個(gè)。求該棚內(nèi)存有的自行車和三輪車各是多少輛?.甲、乙、丙三人分別有磁帶36,48,64盒。先由甲把自己的磁帶平均分為三份,分給乙、丙各ー份,自己留下ー份;接著是乙,最后是丙,都按甲的方法處理。編程輸出甲、乙、丙在上述過程中各人的磁帶數(shù)分別是多少?(輸出所有的中間結(jié)果).五位好朋友相聚。第一位朋友帶來了很多糖塊贈(zèng)送給各位朋友,使每人的糖塊在各自原有的基礎(chǔ)上翻了一倍;接著第二位好友也同樣向每人贈(zèng)送糖塊,他同樣使每人的糖塊在各人已有的數(shù)量上翻了一倍;第三、第四、第五位好友都照此辦理。經(jīng)過這樣的贈(zèng)送之后,每人的糖塊恰好都為32塊。問各位好友原先的糖塊數(shù)分別是多少?第二章分支程序在程序設(shè)計(jì)中,許多問題是在一定條件下オ選擇某種處理方式的,這就需要用條件判斷語句或情況選擇語句進(jìn)行處理。程序執(zhí)行中將出現(xiàn)選擇(分支),根據(jù)條件只選擇執(zhí)行部分語句,不一定都是按原順序從頭到尾地執(zhí)行所有語句,這樣的程序稱為分支程序。第一節(jié)條件語句與復(fù)合語句[例2.1]某服裝公司為了推銷產(chǎn)品,采取這樣的批發(fā)銷售方案:凡訂購超過100套的,每套定價(jià)為50元,否則每套價(jià)格為80元。編程由鍵盤輸入訂購套數(shù),輸出應(yīng)付款的金額數(shù)。解:設(shè)X為訂購套數(shù),Y為付款金額,貝リ:_150*X (X>100){如果X>100就用Y=5〇?X計(jì)算}丫リ8〇?X (X<=100) {否則用Y=8〇?X計(jì)算}①輸入X;②判斷X值;③根據(jù)判斷結(jié)果選擇符合條件的那種方法計(jì)算Y值;④輸出計(jì)算結(jié)果。Pasca!程序:ProgramExam21;Varx?y:integer;BeginWrite(*X=*);Readln(x); {輸入X}ifx>100theny:=50*Xelsey:=80*X; {條件判斷與選擇}Writeln('yゴ,y);ReadlnEnd.程序中的if語句常稱為條件語句,它的一般格式為:if條件then語句;if條件then語句Ielse語句2;IF語句的功能是按條件在兩種可能中選擇其中一種。習(xí)慣上把if后面的表達(dá)式稱為條件,then后面的語句稱為真項(xiàng),else后面的語句稱為假項(xiàng)。若條件成立(為真)就執(zhí)行真項(xiàng),然后執(zhí)行if語句的后繼語句;若條件不成立(為假)就跳過真項(xiàng)而執(zhí)行假項(xiàng),然后執(zhí)行后繼語句。而第一種格式只有真項(xiàng),沒有假項(xiàng),當(dāng)條件不成立(為假)就什么也不需做,直接往下去執(zhí)行后繼語句。
[例2.2]讀入三個(gè)不同的數(shù),編程按由小到大的順序排列打印出來。解:設(shè)讀入的三個(gè)數(shù)為a,b,c,為了把較小的數(shù)排在前面,可作如下處理:①如果a>b就交換a、b的值,②如果a>c就交換a、c的值,③如果b>c就交換b、c的值,④輸出處理后的a,b,c。Pasca!程序:ProgranmExam22;Vara,b?c,t:Real;將較大的值換至后面將較大的值換至后面;將較大的值換至后面Begin將較大的值換至后面將較大的值換至后面;將較大的值換至后面Write('Inputa,b,Readln(a,b,c);ifa>bthenbegint:=a;a:=b;end;ifa>cthenbegint:=a;a:=c;end;ifb>cthenbegint:=b;b:=c;end;Writeln('a,b,c:\0=');{復(fù)合語句}0=');{復(fù)合語句}b:=t(交換a,b]{復(fù)合語句}c:=t{交換a,c]{復(fù)合語句}c:=t {交換b,c]a:6,b:6?c:6);End.if語句規(guī)定它的真項(xiàng)或假項(xiàng)位置上只能是一個(gè)基本語句,如果需要寫ー組語句,就應(yīng)當(dāng)使用復(fù)合語句。本程序中有三處用到更合語句。每個(gè)復(fù)合語句的范圍是從Begin開始到與它相對(duì)應(yīng)的End為止。復(fù)合語句的地位和一個(gè)基本語句相同;其一般格式為:Begin語句系列End;習(xí)題2.1.假設(shè)郵局規(guī)定寄郵件時(shí)若每件重量在1公斤以內(nèi)(含1公斤),按每公斤1.5元計(jì)算郵費(fèi),如果超過1公斤時(shí),其超出部分每公斤加收08元。請(qǐng)編程序計(jì)算郵件收費(fèi)。.輸入三個(gè)正整數(shù),若能用這三個(gè)數(shù)作為邊長組成三角形,就計(jì)算并輸出該三角形的面積,否則輸出Can'to(組成三角形的條件為:任意兩邊之和大于第三邊).輸入ー個(gè)三位數(shù)的整數(shù),將數(shù)字位置重新排列,組成一個(gè)盡可大的三位數(shù)。例如:輸入213,重新排列可得到盡可能大的三位數(shù)是321。第二節(jié)情況語句與算術(shù)標(biāo)準(zhǔn)函數(shù)如果有多種(兩種或兩種以上)選擇,常用情況語句編程。前面[例2.1]改成用如下方法來處理。根據(jù)題意,付款計(jì)算可分為兩種情況:Y=50*X (X>100)Y=80*X (X<=100)顯然,情況①與②的選擇取決于X值。假設(shè)用N表示“情況值”,暫且先讓N=2;如果X>100則N=1;(此題屮N的值只是1或2,且取決于X值)Pasca!程序:ProgramExam21_l;VarX,Y,N:integer;BeginWrite('X=);readln(x);n:=2: {先讓n=2}ifX>100thenn:=l; {如果X>100則n=l}Casenof {關(guān)于情況處理}Y:=50*X;Y:=80*X;end;Writeln(Y=',Y);ReadlnEnd.程序中的Case—end語句為情況語句,是多路分支控制,?般格式為:Case表達(dá)式of情況常量表1:語句1;情況常量表2:語句2;情況常量表n:語句nend;執(zhí)行情況語句時(shí),先計(jì)算Case后面表達(dá)式的值,然后根據(jù)該值在情況常量表中的“對(duì)應(yīng)安排”,選擇其對(duì)應(yīng)的語句執(zhí)行,執(zhí)行完所選擇語句后就結(jié)束Case語句;如果常量表中沒有一個(gè)與表達(dá)式值對(duì)應(yīng)的語句,則什么也不做就結(jié)束本Case語句。Case語句的另一種應(yīng)用格式為:Case表達(dá)式of情況常量表1:語句1;情況常量表2:語句2;情況常量表n:語句n;else語句n+1end;這種格式的前面部分是相同的,所不同的是:如果常量表中沒有一個(gè)與表達(dá)式值對(duì)應(yīng)的語句,則執(zhí)行與else對(duì)應(yīng)的語句,然后結(jié)束Case語句。[例2.2I對(duì)某產(chǎn)品征收稅金,在產(chǎn)值1萬元以上征收稅5%;在1萬元以下但在5000元以上的征收稅3%;在5000元以下但在1000元以上征收稅2%;1000元以下的免收稅。編程計(jì)算該產(chǎn)品的收稅金額。解:設(shè)x為產(chǎn)值,tax為稅金,用P表示情況常量各值,以題意中每1000元為情況分界:P=0:tax=0(x<1000)P=l,2,3,4:tax=x*0.02(1000<=x<5000)P=5,6,7,8,9:tax=x*0.03(5000<X<=10000)P=10:tax=x*0.05(x>10000)這里的P是“情況”值,用產(chǎn)值x除以1000的整數(shù)值作為P,女課P>10也歸入P=10的情況。Pascal語言用P=trunc(x/1000)取整計(jì)算,Pasca!程序:ProgramExam22;Varx,p:integer;Tax:real;BeginWrite('Number=*);readln(x);P:=trunc(x/1000);ifP>9thenP:=10;CasePof0 : tax:=0;1,2,3,4 : tax:=x*0.2;5,6,7,8,9 : tax:=x*0.3;10 : tax:=x*0.5end;Writeln(,tt=,,tt:5:2);ReadlnEnd.情況表達(dá)式的計(jì)算必須考慮到“全部”情況,不要有遺漏。如果情況常量表的“值”在某范圍內(nèi)是連續(xù)的,可將常量表寫成:nl..n2:語句;因此,上面程序中的情況常量表可以寫成如下程序中表示形式:ProgramExam22_l;Varx,p:integer;tax:real;BeginWrite(*Number=);readln(x);P:=trunc(x/1000);ifP>9thenP:=10;CasePof0 :tax:=0;1..4:tax:=x*0.2; {從1至4作為同一情況處理}5..9:tax:=x*0.3; {從5至9作為同一情況處理}10 :tax:=x*0.5end;Writeln('tt=’,tt:5:2);ReadlnEnd.程序中的trunc(x)為取整函數(shù),是Pascal的算術(shù)標(biāo)準(zhǔn)函數(shù)之一。Pasca!常用的算術(shù)標(biāo)準(zhǔn)函數(shù)有19個(gè):abs(x)求x的絕對(duì)值(Ixl);exp(x)求ex的值;(e為無理數(shù)2.71828…)frac(x)求x的小數(shù)部分;(4)int(x)求x的整數(shù)部分(不舍入,函數(shù)值為實(shí)型);ln(x)求以e為底的x的對(duì)數(shù)(logex);odd(x)判斷x的奇偶數(shù)(當(dāng)x為奇數(shù)時(shí)odd(x)值為true,否則為false);(7)ord(x)求x的序號(hào),結(jié)果為整型(x為有序類型量);pin值(3.1415926535897932…);pred(x)求x(有序類型)的前趨值;succ(x)求x(有序類型)的后繼值;random隨機(jī)函數(shù),產(chǎn)生〇~1的隨機(jī)值;random(n)產(chǎn)生〇?n的隨機(jī)數(shù)(n為word類型,先執(zhí)行randomize,才能得到隨機(jī)整數(shù));(13)round(x)求x的四舍五入整數(shù);trunc(x)求x的整數(shù)部分(截掉小數(shù)部分,結(jié)果為整型);sqr(x)求x的平方值(x2);sqrt(x)求x的開平方根值( );sin(x)求x的正弦函數(shù)(x為弧度);cox(x)求x的余弦函數(shù)(x為弧度);arctan(x)正切的反三角函數(shù)(x為數(shù)值);習(xí)題2.2.運(yùn)輸公司計(jì)算運(yùn)費(fèi)時(shí),距離(S)越長,每公里運(yùn)費(fèi)越低,標(biāo)準(zhǔn)如下:如果S<250公里;運(yùn)費(fèi)為標(biāo)準(zhǔn)運(yùn)價(jià)的100%如果250公里<=S<500公里,運(yùn)費(fèi)為標(biāo)準(zhǔn)運(yùn)價(jià)的98%;如果500公里<=SV1000公里,運(yùn)費(fèi)為標(biāo)準(zhǔn)運(yùn)價(jià)的95%;如果1000公里<=SV2000公里,運(yùn)費(fèi)為標(biāo)準(zhǔn)運(yùn)價(jià)的92%;如果2000公里<=SV3000公里,運(yùn)費(fèi)為標(biāo)準(zhǔn)運(yùn)價(jià)的90%;如果S=>3000公里,運(yùn)費(fèi)為標(biāo)準(zhǔn)運(yùn)價(jià)的85%;。請(qǐng)編計(jì)算運(yùn)費(fèi)的程序。.輸入考試成績,如果獲85分以上為A等,獲60分?84分為B等,60分以下為C等,編程輸出考試等級(jí)。.某車間按工人加工零件的數(shù)量發(fā)放獎(jiǎng)金,獎(jiǎng)金分為五個(gè)等級(jí):每月加工零件數(shù)N<100者獎(jiǎng)金為10元;100<=N<110者獎(jiǎng)金為30元;110<=N<120者獎(jiǎng)金為50元;120<=N<130者獎(jiǎng)金為70元;N>130者為80元。請(qǐng)編程,由鍵盤輸入加工零件數(shù)量,顯示應(yīng)發(fā)獎(jiǎng)金數(shù)。第三章循環(huán)程序在編程中經(jīng)常遇到需要多次規(guī)律相同的重復(fù)處理,這就是循環(huán)問題。TurboPasca!采用不同的循環(huán)方式來實(shí)現(xiàn),常用的環(huán)循有三種:for>repeat>while.第一節(jié)for循環(huán)for循環(huán)是ー種自動(dòng)計(jì)數(shù)型循環(huán)。[例3.1]試打印出1?20的自然數(shù)。解:①用a代表1?20各數(shù),同時(shí)也用a兼作計(jì)數(shù),以控制循環(huán)次數(shù);②讓a從1開始;③輸出a;④a自動(dòng)計(jì)數(shù)(加1),如果未超越所規(guī)定的循環(huán)范圍則重復(fù)步驟③,否則結(jié)束循環(huán)。Pasca!程序:ProgramExaml2;Vara:byte;Beginfora:=lto20doWritein(a);ReadlnEnd.程序中fora:=1to20doWritein(a);是for循環(huán)語句。for循環(huán)語句有兩種格式:(l)for循環(huán)變量:=初值To終值do語句;(2)for循環(huán)變量:二初值downto終值do語句;第⑴種格式的初值小于等于終值,循環(huán)變量值按自動(dòng)加1遞增變化;第(2)種格式的初值大于或等于終值,循環(huán)變量值按自動(dòng)減1遞減變化。for循環(huán)是(以遞增1或以遞減!)計(jì)數(shù)型循環(huán)。比如:若將[例3.1]程序改為倒計(jì)數(shù)(遞減)循環(huán),則輸出2〇?1的自然數(shù)數(shù):ProgramExam31;Vara:byte;Beginfora:=20downto1doWriteln(a);ReadlnEnd.[例3.2]打印出30至60的偶數(shù)。]解:方法一:①設(shè)a表示30至60的所有的數(shù),可用for循環(huán)列出;②用式子amod2=0篩選出其中的偶數(shù)并輸出。Pasca!程序:Programex32;Vara:integer;BeginFora:=30to60doIf(amod2=0)thenwriteln(a);Readln;End.在這個(gè)程序中,for循環(huán)后的循環(huán)語句是ー個(gè)條件分支語句。方法二:我們知道,在式子a=2*n中,若n取自然數(shù)1、2、3、…,時(shí),則a依次得到偶數(shù)2、4、6、…。因此要想得到30至60的偶數(shù),就可以讓上面式子中的n取15至30的自然數(shù)就可以了。所以本題還可以按以下步驟處理:①設(shè)n表示15至30的所有自然數(shù),可用for循環(huán)列出;②用式子a:=2*n求出其中的偶數(shù);③將結(jié)果輸出至屏幕。Pasca!程序:Programex32;BeginForn:=15to30doBegina:=2*n;Writeln(a);End;Readln;End.[例3.3]自然數(shù)求和:編ー個(gè)程序,求從1至100的自然數(shù)的和。解:①令S=0;②令a表示1至100的自然數(shù),用循環(huán)列出:③將這些自然數(shù)用公式S:=S+a逐一累加到S中去;④循環(huán)結(jié)束后,S即為1至100的自然數(shù)的和,輸出即可。Pasca!程序:Programex33;vars,a:integer;BeginS:=0;Fora:=1to100doS:=S+a;WritelnCS=\S);Readln;End.[例3.4]ー個(gè)兩位數(shù)x,將它的個(gè)位數(shù)字與十位數(shù)字對(duì)調(diào)后得到ー個(gè)新數(shù)y,此時(shí)y恰好比x大36,請(qǐng)編程求出所有這樣的兩位數(shù)。解:①用for循環(huán)列舉出所有的兩位數(shù),x為循環(huán)變量;②用公式a:=xdiv10分離出x的十位數(shù)字:③用公式b:=xmod10分離出x的個(gè)位數(shù)字;④用公式y(tǒng):=b*10+a合成新數(shù)y;⑤用式子y-x=36篩選出符合條件的數(shù)x并輸出。Pasca!程序:Programex34;BeginForx:=10to99doBegina:=xdiv10;b:=xmod10;y:=b*10+a;ify-x=36thenwriteln(x);End;Readln;End.[例3.5]把整數(shù)3025從中剪開分為30和25兩個(gè)數(shù),此時(shí)再將這兩數(shù)之和平方,(30+25-=3025計(jì)算結(jié)果又等于原數(shù)。求所有符合這樣條件的四位數(shù)。解:設(shè)符合條件的四位數(shù)為N,它應(yīng)當(dāng)是ー個(gè)完全平方數(shù),用(a*a)表示。①為了確保N=(a*a)在四位數(shù)(1000-9999)范圍內(nèi),可確定a在32?99循環(huán):②計(jì)算N=a*a;將四位數(shù)N拆分為兩個(gè)數(shù)nl和n2;③若滿足條件(nl+n2)*(nl+n2)=N就輸出N。Pasca!程序:ProgramExam35;VarN,a,x,nl,n2:Integer;Begin
fora:=32to99dobeginN:=a*a;nl:=Ndiv100; {拆取四位數(shù)的前兩位數(shù)}n2:=N-nl*100; {拆取四位數(shù)的后兩位數(shù)}X:=nl+n2;ifx*x=Nthenwritein(N);end;ReadlnEnd.[例3.6]用“*”號(hào)打印出如下的長方形圖案。解:①上面給出的圖例共有4行,我們可以用一個(gè)循環(huán)控制行的變化;②在每行中又有9歹リ,我們可以在前面控制行的循環(huán)中再套一個(gè)循環(huán)來控制列的變化。Pasca!程序:Programex36;{外循環(huán)控制行的變{外循環(huán)控制行的變化}{內(nèi)循環(huán)控制列的變化}{輸出一行的“*”后換行}Fora:=1to4doBeginForb:=1to9dowrite。*');Writein;End;Readln;End.程序中的循環(huán)對(duì)于a的每個(gè)值都包含著一個(gè)b=(l?9)次的內(nèi)循環(huán)。外循環(huán)fora將內(nèi)循環(huán)forb包含在里面,稱為for循環(huán)的嵌套。嵌套形式如:fora:=n1ton2doforb:=mltom2do循環(huán)體語句:[例3.7J打印出九九乘法表:解:設(shè)a為被乘數(shù),范圍為1?9;b為乘數(shù),范圍為1?a;乘式為a*b=(ab的乘積),則TOC\o"1-5"\h\za=l: b=l?a 1*1=1a=2: b=l?a 2*1=2 2*2=4a=3: b=l?a 3*1=3 3*2=6 3*3=9a=4:b=l?a4*1=4 4*2=84*3=13 4*4=16a=4:a=9 b=l?a 9*1=9 9*2=18… 9*9=81⑴從上面分解的橫行中看到共有9行,這里的“行”數(shù)變化與a的變化從1?9相同,可用a控制“行”的循環(huán);⑵每“行”里面相乘的次數(shù)與b的范圍相關(guān),由b控制每“行”里面的“內(nèi)部”循環(huán):(3)內(nèi)循環(huán)被包含在最里層,執(zhí)行完每“行”的內(nèi)部循環(huán),就到下ー“行”去執(zhí)行新“行”里面的循環(huán),每“行”都擁有形式相同的(b=l?a)內(nèi)循環(huán)。即每到ー“行”都要執(zhí)行該“行”的內(nèi)循環(huán)。這里所指的“行”可以理解成抽象的行,不一定是實(shí)際上具體對(duì)應(yīng)的行,可以是ー個(gè)處理“塊”。Pasca!程序:ProgramExam37;Vara,b:byte:Beginfora:=lto9do {外循環(huán)}beginforb:=1toado {內(nèi)循環(huán))write(a,'*',b,'=',a*b,9 ':3);writeinend;ReadlnEnd.根據(jù)這種格式還可以實(shí)現(xiàn)多層循環(huán)嵌套,例如:fora:=nlton2doforb:=mltom2doforc:=kltok2do循環(huán)體語句;[例3.8]從七張撲克牌中任取三張,有幾種組合方法?請(qǐng)編程輸出所有組合形式。解:設(shè)每次取出三張分別為a,b,c?用三重循環(huán)分別從1?7的范圍里取值;為了排除取到重號(hào),用(a-b)*(b-c)*(a-c)<>0進(jìn)行判斷。Pasca!程序:programExam38;constn=7;vara,b,c,t:integer;Begint:=0;fora:=1tondoforb:=ltondoforc:=ltondoif(a-b)*(b-c)*(a-c)<>0thenBegininc⑴;writein(a:3,b:3,c:3)End;writein(total:,t:5);readlnEnd.[例3.9]數(shù)學(xué)上把除了1和它本身,沒有別的數(shù)能夠整除它的自然數(shù)叫做素?cái)?shù)(或質(zhì)數(shù))。現(xiàn)在由健盤輸入ー個(gè)自然數(shù)N,編程判斷N是否是素?cái)?shù),是則輸出“Yes”,否則輸出“N。”。解:根據(jù)定義,對(duì)于給定的自然數(shù)N,只需判斷除1和它本身外,還有沒有第三個(gè)自然數(shù)即可。①令K從1循環(huán)至N;②根據(jù)NmodK是否為0可統(tǒng)計(jì)K的約數(shù)的個(gè)數(shù);③若N的約數(shù)的個(gè)數(shù)超過2個(gè),則判定N不是素?cái)?shù)。Pasca!程序:ProgramExam39;Varn,m?k,t:integer;Beginwrite(‘N二');ReadLn(N);t:=0;fork:=ltoNdo {外循環(huán)}ifNmodk=Othent:=t+1; {如果N是奇數(shù)}ift>2thenwriteln('No')elsewriteln('Yes');Readln;End.程序中的變量yse為布爾(或邏輯)類型(Boolean)。布爾值只有兩個(gè):True(真) False(假)布爾值與條件判斷結(jié)果為真(條件成立)或?yàn)榧伲l件不成立)的作用相同,常用于條件語句和循環(huán)語句中。上面程序中用ifyesand(tmod7=0)thenwritein:實(shí)現(xiàn)每行打印七個(gè)素?cái)?shù)換行,程序中布爾變量yes為真,在邏輯上表示是素?cái)?shù);關(guān)系式(tmod7=0)的值為真時(shí),表示該行輸出素?cái)?shù)巳是7個(gè);用and將這兩個(gè)“條件”連起來是作一種布爾(邏輯)運(yùn)算。Pasca!共有四種邏輯運(yùn)算符;①and(與)兩條件都為True時(shí),其結(jié)果值為True;否則為False;②or(或)兩條件中只要有一個(gè)為True;其結(jié)果值為True;否則為False;③xor(異或)兩條件的邏輯值不相同時(shí),其結(jié)果值為True;否則為False;④not(非)條件為True時(shí),其結(jié)果值為False;否則為True;(取反)習(xí)題3.1:.打印出1至20的平方數(shù)表。.打印出100至200之間的奇數(shù)。.雞兔同籠(用for循環(huán)程序完成).ー輛快車和一輛慢車開往同一地點(diǎn),快車票價(jià)為18元,慢車票價(jià)為13.5元,共售出400張,共計(jì)5940元,求快車票和慢車票各多少張?..求出能被5整除的所有四位數(shù)的和。.在下面式子中的ニ個(gè)口內(nèi)填入一個(gè)合適的同樣的數(shù)字,使等式成立。□3*6528=3ロ*8256.有一個(gè)三位數(shù),它的各位數(shù)字之和的11倍恰好等于它自身,請(qǐng)編程求出這個(gè)三位數(shù)。.在自然數(shù)中,如果一個(gè)三位數(shù)等于自身各位數(shù)字之立方和,則這個(gè)三位數(shù)就稱為是水仙花數(shù)。如:153=1ゝ53+33,所以153是ー個(gè)水仙花數(shù)。求所有的水仙花數(shù)。.編程序打印出下列圖案:平行四邊形 等腰三解形 菱形.編程打印出如下圖案:1222333334444444555555555.有三種明信片:第一種每套ー張,售價(jià)2元;第二種每套ー張,售價(jià)4元;第三種每套9張,售價(jià)2元。現(xiàn)用100元錢要買100張明信片,要求每種明信片至少要買ー套,問三種明信片應(yīng)各買幾套?請(qǐng)輸出全部購買方案。.某人想把一元錢換成伍分、貳分、壹分這樣的零錢,在這三種零錢中每種零錢都至少各有一個(gè)的情況下,共有多少種兌換方案。并打出這些方案。..輸出100以內(nèi)的全部素?cái)?shù),要求每行顯示5個(gè)。.A、B兩個(gè)自然數(shù)的和、差、積、商四個(gè)數(shù)加起來等于243,求ん、B兩數(shù)。.百錢買百雞;今有錢100元,要買100只雞,公雞3元一只,母雞1元一只,小雞1元3只,若公雞、母雞和小雞都至少要買1只,請(qǐng)編程求出恰好用完100元錢的所有的買雞方案。第二節(jié)repeat循環(huán)Repeat循環(huán)是直到型循環(huán)。試將上一節(jié)的例3.1(打印出1~20的平方數(shù)表)程序改為repeat循環(huán):ProgramExam31_l;Vara:byte;Begina:=l;writein('a,:8, 1a*a*:8);repeatwritein(a:8,a*a:8);inc(a); {改變a的值}Untila>20;ReadlnEmd.程序中的Repeat循環(huán)格式為:repeat循環(huán)體語句;until條件表達(dá)式; {直到條件為真)Repeat循環(huán)首先執(zhí)行由Repeat和Until括起來的循環(huán)體語句,然后檢查Until后面的條件表達(dá)式:如果表達(dá)式結(jié)果為假,則繼續(xù)執(zhí)行循環(huán)體,接著繼續(xù)檢查Until后面的條件表達(dá)式,如此反復(fù)執(zhí)行直到這個(gè)表達(dá)式結(jié)果為真時(shí)結(jié)束循環(huán)。Repeat循環(huán)體語句必須有能改變Until后面條件表達(dá)式值的語句,并最終使這個(gè)條件表達(dá)式的值為真,使循環(huán)自動(dòng)結(jié)朿。程序中inc(a)指令相當(dāng)于a:=a+l,常用的同類指令格式如下:inc(x) 等同x:=x+l;inc(x,n)等同x:=x+n;dec(x) 等同x:=x—1;dec(x,n)等同x:=x—n;[例3.10]求兩個(gè)自然數(shù)M和N的最大公約數(shù)。解:若自然數(shù)a既是M和約數(shù),又是N的約數(shù),則稱a為M和N的公約數(shù),其中最大的稱為最大公約數(shù)。為了求得最大公約數(shù),可以從最大可能的數(shù)(如M或N)向下尋找,找到的第一個(gè)公約數(shù)即是最大公約數(shù)。Pasca!程序:Programex310;Begina:=N+1;Repeata:=a-1;Until(Mmoda=0)and(Nmoda=0);writeln(a);Readln;End.[例3.11]校體操隊(duì)到操場(chǎng)集合,排成每行2人,最后多出1人;排成每行3人,也多出1人;分別按每行排4,5,6人,都多出1人;當(dāng)排成每行7人時(shí),正好不多。求校體操隊(duì)至少是多少人?解:①設(shè)校體操隊(duì)為X人,根據(jù)題意X應(yīng)是7的倍數(shù),因此X的初值為7,以后用inc(x,7)改變X值;②為了控制循環(huán),用邏輯變量yes為真(True)使循環(huán)結(jié)束;③如果諸條件中有一個(gè)不滿足,yes的值就會(huì)為假(false),就繼續(xù)循環(huán)。Pasca!程序:programExam311;varx:word;yes:boolean;beginx:=0;repeatyes:=true;inc(x,7);ifxmod2<>1thenyes:=false;ifxmod3<>1thenyes:=false;ifxmod4<>1thenyes:=false;ifxmod5<>1thenyes:=false;ifxmod6<>1thenyes:=false;untilyes; {直到y(tǒng)es的值為真}writeln(,Al!:',x);readlnend.程序中對(duì)每個(gè)X值,都先給Yes賦真值,只有在循環(huán)體各句對(duì)X進(jìn)行判斷時(shí),都得到“通過”(此處不賦假值)才能保持真值。[例3.12]從鍵盤輸入ー個(gè)整數(shù)X(X不超過10000),若X的各位數(shù)字之和為7的倍數(shù),則打印‘'Yes",否則中打印''No”。解:本題考察的是數(shù)字分離的方法,由于X的位數(shù)不定,所以以往的解法不能奏效,這是介紹ー種取余求商法。(1)用Xmod10分離出X的個(gè)位數(shù)字;(2)用Xdiv10將剛分離的個(gè)數(shù)數(shù)字刪除,并將結(jié)果送回給X;(3)重復(fù)(1)(2)直到X=0。Pasca!程序:Programex!2;varx,a,s:integer;begins:=0;repeata:=xmod10;x:=xdiv10;s:=s+a;untilx=0;ifsmod7=0thenwriteln('Yes')elsewriteln('No');Readln;end;[例3.13]求1992個(gè)!992的乘積的末兩位數(shù)是多少?解:積的個(gè)位與十位數(shù)只與被乘數(shù)與乘數(shù)的個(gè)位與十位數(shù)字有關(guān),所以本題相當(dāng)于求1992個(gè)92相乘,而且本次的乘積主下一次相乘的被乘數(shù),因此也只需取末兩位參與運(yùn)算就可以了。Pasca!程序:Programex313;vara,t:integer;Begina:=1;t:=0;repeatt:=t+1;a:=(a*92)mod100;untilt=1992;writeln(a);Readln;End.[例3.14]尼科徹斯定理:將任何ー個(gè)正整數(shù)的立方寫成一組相鄰奇數(shù)之和。如:3コ=7+9+11=27 43=13+15+17+19=64解:從舉例中發(fā)現(xiàn):(1)ペ正好等于n個(gè)奇數(shù)之和;(2)n個(gè)奇數(shù)中的最小奇數(shù)是從1開始的奇數(shù)序列中的第m個(gè)奇數(shù),與n的關(guān)系為:m=n(n—1)/2+!〇(3)奇數(shù)序列中第m個(gè)奇數(shù)的值為x,且x=2m—1,比如:n=3時(shí),m=3(3-1)/2+1=4,
即3個(gè)奇數(shù)中最小的奇數(shù)是奇數(shù)序列中的第4個(gè),它的值為x=(2m-l)=7,所以:33=7+9+11。(4)從最小的奇數(shù)值x開始,逐個(gè)遞增2,蹴n個(gè),用t從1開始計(jì)數(shù),直到t=n為止。Pasca!程序:ProgramExam35;Varn?m,x,t,s:Beginwrite('inputn/);m:=(n*(n-l)div2)+ProgramExam35;Varn?m,x,t,s:Beginwrite('inputn/);m:=(n*(n-l)div2)+1;x:=2*m-l;t:=l;write(n'n,'*'integer;readln(n);{輸入N}{找到第m個(gè)奇數(shù)}{算出第m個(gè)奇數(shù)的值x,是所求的第一個(gè)}n.s:=x;ifn>1thenRepeatinc(x,2);write('+',x);inc(t);inc(s?x);Untilt=n;Writein('=\s);ReadlnEnd.=',x);{輸出第一個(gè)}{用S計(jì)算和}{計(jì)算下一個(gè)奇數(shù)}{加上下一個(gè)奇數(shù)}{計(jì)個(gè)數(shù)并累加和){直到n個(gè)}[例3.15]猜價(jià)格:中央電視臺(tái)的“幸運(yùn)52”欄目深受觀眾喜愛,其中的“猜商品價(jià)格”的節(jié)目更是膾炙人口,現(xiàn)在請(qǐng)你編?個(gè)程序模擬這ー游戲:由計(jì)算機(jī)隨機(jī)產(chǎn)生200至5000之間的ー個(gè)整數(shù),作為某件商品的價(jià)格,然后由你去猜是多少,若你猜的數(shù)大了,則計(jì)算機(jī)輸出提示“Gao”,若你猜的數(shù)小了,則計(jì)算機(jī)輸出提示“Di”,然后你根據(jù)提示繼續(xù)猜,直到你猜對(duì)了,計(jì)算機(jī)會(huì)提示“Ok”,并統(tǒng)計(jì)你猜的總次數(shù)。解:本題的游戲規(guī)則大家都清楚,要完成程序,必須把處理步驟理清:(1)用隨機(jī)函數(shù)Random產(chǎn)生200至5000之間的ー個(gè)整數(shù)X;(2)你猜一個(gè)數(shù)A;(3)若A>X,則輸出“Gao”;(4)若A<X,則輸出“Di”;(5)若A=X則輸出“Ok”:(6)重復(fù)(2)(3)(4)(5)直到A=X。Pasca!程序:Programex315;Vart,X,a :integer;BeginRandomize;X:=Random(4800)+200;t:=0;Repeatt:=t+1;write('「[']Qingcaiyigezhengshu:');readln(a);ifa>xthenwriteln('Gao');ifa<xthenwriteln('Di');ifa=xthenwriteln('Ok');UntilA=X;Readln;End.習(xí)題3.2.求兩個(gè)自然數(shù)M和N的最小公倍數(shù)。(如果求三個(gè)或更多個(gè)數(shù)的最小公倍數(shù)呢?應(yīng)如何解決).小會(huì)議室里有幾條相同的長凳,有若干人參加開會(huì)。如果每條凳子坐6人,結(jié)果有一條凳子只坐有3人;如果每條凳子坐5人,就有4人不得不站著。求會(huì)議室里有多少人開會(huì),有多少條長凳?.某動(dòng)物飼養(yǎng)中心用!700元專款購買小狗(每只3I元)和小貓(每只21元)兩種小動(dòng)物。要求專款專用,正好用完,應(yīng)當(dāng)如何購買?請(qǐng)輸出所有方案。.某整數(shù)X加上100就成為ー個(gè)完全平方數(shù),如果讓X加上168就成為另ー個(gè)完全平方數(shù)。求X?.某次同學(xué)聚會(huì),老同學(xué)見面?zhèn)€個(gè)喜氣洋洋,互相握手問好。參加此次聚會(huì)者每人都與老同學(xué)握了一次手,共握903次,試求參加聚會(huì)的人數(shù)?.用自然數(shù)300,262,205,167分別除以某整數(shù)A,所得到的余數(shù)均相同。求出整數(shù)A以及相除的余數(shù)?.1600年前我國的一部經(jīng)典數(shù)學(xué)著作中有題:“今有物,不知其數(shù),三三數(shù)之,剩二;五五數(shù)之,剩三:七七數(shù)之,剩二,問物幾何。”求最小解。.編程求出所有不超過1000的數(shù)中,含有數(shù)字3的自然數(shù),并統(tǒng)計(jì)總數(shù)。.阿姆斯特朗數(shù):如果一個(gè)正整數(shù)等于其各個(gè)數(shù)字的立方和,則該數(shù)稱為阿姆斯特朗數(shù)(也稱自戀數(shù)),如407=43+0^+73,試編程求出1000以內(nèi)的所有阿姆斯特朗數(shù)。第三節(jié)While循環(huán)While循環(huán)是當(dāng)型循環(huán)。[例3.8]前面第一章[例1.2]的雞兔同籠,頭30,腳90,求雞兔各幾只?在此用下面方法編程求解。解:設(shè)雞為J只,兔為T只。已知頭為H,腳為F。①讓雞的只數(shù)逐次加1進(jìn)行遞推計(jì)算,初始時(shí)J=0;
②計(jì)算兔的只數(shù)T二H-J;③當(dāng)總腳數(shù)(4*T+2*J)<>F就做(J=J+1,T=H-J);④當(dāng)4*T+2*尸F(xiàn)時(shí),說明所推算的J和T是正確的,應(yīng)結(jié)束循環(huán),并輸出T,JoPascal程序:ProgramExam38;ConstH=30;F=90;VarJ,T:integer;Begin{初始時(shí)讓J從0{初始時(shí)讓J從0開始計(jì)算}{當(dāng)條件為真就做do后面的循環(huán)體}While4*T+2*JOFdobegininc(J); {遞推改變J值}T:=H-J {計(jì)算兔的只數(shù)}end;WriteinCT=*,T,>':6,‘J=',J);ReadInEnd.程序中采用While當(dāng)型循環(huán),While循環(huán)語句的格式為:While條件式do語句;其中do后面的“語句”是被重復(fù)執(zhí)行的,稱為循環(huán)體;若循環(huán)體是多個(gè)語句,必須用begin-end包起來成為復(fù)合語句。While循環(huán)首先判斷條件式,當(dāng)條件式的值為真就執(zhí)行do后面的語句(循環(huán)體)。While的循環(huán)體內(nèi)也必須包含能改變控制變量取值語句,影響條件式的值,最終使條件式為false(假),才能結(jié)束循環(huán)。[例3.9]輸入任一的自然數(shù)A,B,求A,B的最小公倍數(shù)。解:這里采用適合計(jì)算機(jī)查找的方法:設(shè)D是它們的最小公倍數(shù)。先找出A,B當(dāng)中的較大者并存放在A中,將較小者存放在B中,讓?=ん當(dāng)D能夠整除B時(shí),則D是所求的最小公倍數(shù);當(dāng)D不能整除B,就逐次地讓D增加A。例如:A=18,B=12,步驟如下:①讓D=A(D=18)②當(dāng)(DmodB)<>0為真時(shí)(D不能整除B)就做D=D+A,重復(fù)②;③當(dāng)(DmodB)<>0為假時(shí)結(jié)束循環(huán),并輸出D。Pascal程序:programExam39;vara,b,d,t:word;beginwrite(inputa,b: readIn(a,b);ifa<bthenbegint:=a;a:=b;b:=tend;d:=a;whiledmodb<>0do {當(dāng)條件為真時(shí)就做do后面的語句}inc(d,a);writeln(*V,a,',',b,']=',d);readlnEnd.Pascal語言的三種基本循環(huán)方式,for循環(huán)對(duì)循環(huán)范圍有明確規(guī)定,且循環(huán)變量只能是遞增加1或遞減1自動(dòng)計(jì)數(shù)控制;而repeat—until循環(huán)和while--do循環(huán)比較靈活,只要對(duì)條件表達(dá)式的值能控制滿足?定要求就能組成循環(huán),但在循環(huán)體中必須有改變循環(huán)變量值的語句,使條件判斷(邏輯值)最終為True或flase,讓循環(huán)能夠終止。[例3,10]求自然數(shù)A,B的最大公約數(shù)。解:采用如下方法步驟:(1)求A除以B的余數(shù);(2)當(dāng)余數(shù)V>0就做n=a;a=b;b=nmodb,重復(fù)⑴和(2);(3)當(dāng)余數(shù)二0就結(jié)朿循環(huán),并輸出b值。比如a=18,b=12時(shí),處理步驟為:(1) = ,得余數(shù)為6;(2)此余數(shù)不為零,讓a=12,b=6;(3)重復(fù)= ,得余數(shù)為0;(4)結(jié)束循環(huán),輸出6(余數(shù)為零時(shí)的b值即是所求的最大公約數(shù))。此方法稱為輾轉(zhuǎn)相除法求最大公約數(shù)。Pascal程序:programExam310;vara,b,n:word;beginwriteCinputa,b:');readln(a,b);writeCC,a,',',b,')=');whileamodb<>0dobeginn:=a;a:=b;b:=nmodb;end;writeln(b);readlnEnd.[例3.11]將一根長為369cm的鋼管截成長為69cm和39cm兩種規(guī)格的短料。在這兩種規(guī)格的短料至少各截ー根的前提下,如何截才能余料最少。解:設(shè)兩種規(guī)格的短料分別為:規(guī)格為69cm的x根,可在1至(369-39)/69范圍循環(huán)取值;規(guī)格為39cm的y根,用y=(369-69*X)/39)計(jì)算;余料R=369-69*X-39*Y。①設(shè)最小余料的初始值min=369;②在X循環(huán)范圍內(nèi),每ー個(gè)X值都計(jì)算出對(duì)應(yīng)的丫和R;③如果R<min,就將R存入min,x存入n,y存入m,記錄余料最小時(shí)的x和y;④重復(fù)步驟②,當(dāng)x值超出((369—39)/69)時(shí)結(jié)束循環(huán)。Pascal程序:programexam311;varx,y,r,min,n,m,a:integer;beginmin:=369;a:=(369-39)div69;x:=l;whilex<=adobeginy:=(369-69*x)div39;r:=369-69*x-39*y;ifr<minthenbeginmin:=r;n:=x;m:=yend;inc(x);end;writeinCmin=',min,'x=',n,' y=',m);readInend.在有些情況中,三種循環(huán)方法可以互相換用。[例3.12]甲、乙、丙三人都是業(yè)余射擊愛好者,在ー次練習(xí)中他們槍槍中靶:甲射了ハ發(fā)子彈,取得225環(huán)成績,乙射了七發(fā),也取得225環(huán);丙只射了六發(fā),同樣取得225環(huán)。下面是成績表,請(qǐng)編程完成下表中空項(xiàng)的填數(shù)。射子彈數(shù)中50環(huán)有幾發(fā)中35環(huán)有幾發(fā)中25環(huán)有幾發(fā)成績(環(huán))甲8225乙7225丙6225解:①設(shè)N為發(fā)射子彈數(shù),只有8,7,6三個(gè)數(shù)字,正好又可用來代表甲、乙、丙:②設(shè)A為中50環(huán)的子彈數(shù),最小為〇,最大為(225div50=4);B為中35環(huán)的子彈數(shù),最小為〇,最大為(225div35=6);C為中25環(huán)的子彈數(shù),C-N-A-B,但必須C>0オ可能正確;③先讓N=8,A取值(〇?4),B取值(〇?6)用循環(huán)逐個(gè)選定,在C>0的情況下若能
滿足條件A*50+B*35+C*25=225就能確定一組填數(shù)。然后選N的下一數(shù)值,重復(fù)同樣的過程。Pascal程序:programexam312;vara,b,c,n,s:integer;beginwriteinCn:3,'a':3,'b':3,'c':3,'s':5);n:=8;whilen<=6dobegina:=0;whilea<=4dobeginb:=0;whileb<=6dobeginc:=n-a-b;ifc>0thenbegins:=50*a+35*b+25*c;ifs=225thenwritein(n:3,a:3,b:3,c:3,s:5);end;inc(b);end;inc(a);end;dec(n);end;readInend.程序運(yùn)行結(jié)果獲得兩組填數(shù)答案。如果改用for循環(huán),程序?qū)⒏雍喢?ProgramExam312_1ProgramExam312_1;Vara,b,c,n,s:Integer;BeginWritein('N':3,'A':3,'B':3,'C:3,forn:=8downto6dofora:=0to4doforb:=0to6dobeginc:=n-a-b;ifc>0thenbegin'st5);{N取值8,7,6I并分別代表甲、乙、丙}{中50環(huán)的可能范圍}{中30環(huán)的可能范圍}{計(jì)算中25環(huán)的子彈數(shù)}{如果不是負(fù)數(shù)}s:=50?a+35*6+25*c; {計(jì)算總成績}ifs=225thenwritein(n:3,a:3,b:3,c:3,s:5);endend;readInEnd.習(xí)題3.31.求S=1-1/2+1/3-1/4+1/5-1/6+ (求前N項(xiàng)的和).Faibonacci數(shù)列前幾項(xiàng)為:0,l,l,2,3,5,8,…,其規(guī)律是從第三項(xiàng)起,每項(xiàng)均等于前兩項(xiàng)之和。求前30項(xiàng),并以每行5個(gè)數(shù)的格式輸出。.小球從100高處自由落下,著地后又彈回高度的一半再落下。求第20次著地時(shí),小球共通過多少路程?.某登山隊(duì)員第一天登上山峰高度的一半又24米;第二天登上余下高度的一半又24米;每天均如此。到第七天,距山頂還剩91米。求此山峰的高度?.給出某整數(shù)N,將N寫成因數(shù)相乘的形式。如:N=12,輸出:12=1*2*2*3..出售金魚者決定將缸里的金魚全部賣出。第一次賣出全部金魚的一半加二分之一條;第二次賣出剩余的三分之一ー加三分之一條金魚;第三次賣出余下金魚的四分之一加四分之ー條;第四次賣出余下的五分之一加五分之一條金魚。還剩下11條金魚。當(dāng)然,出售金魚時(shí)都是整數(shù)條,不能有任何破損。求缸里原有的金魚數(shù)?.外出旅游的幾位朋友決定次日早晨共分ー筐蘋果。天剛亮,第一個(gè)人醒來,他先拿了一個(gè),再把筐里的八分之一拿走;第二個(gè)人醒來,先拿兩個(gè),再把筐里的八分之一拿走;第三個(gè)人醒來,先拿三個(gè),再拿走筐里的八分之一;…每個(gè)人依次照此方法拿出各人的蘋果,最后筐里的蘋果全部拿完,他們每人所拿到的蘋果數(shù)正巧一樣多。求原先筐里的蘋果數(shù)和人數(shù)。.圖中由6個(gè)圓圈構(gòu)成三角形,每條邊上有三個(gè)圈,將自然數(shù)1一6不重復(fù)地填入各圓圈位置上,使每條邊圓圈上的數(shù)字之和相等,請(qǐng)編程輸出所有的填法。.請(qǐng)編程顯示出下面數(shù)字金字塔圖形:第四章函數(shù)與過程程序中往往需要把主要任務(wù)分成若干個(gè)子任務(wù),每個(gè)子任務(wù)只負(fù)責(zé)ー個(gè)專門的基本工作。每個(gè)子任務(wù)就是ー個(gè)獨(dú)立的子程序。TurboPascal可以把函數(shù)和過程作為子程序調(diào)用。第一節(jié)函數(shù)Pascal允許用戶在程序中自己說明定義所需要的函數(shù)并在程序中調(diào)用這些函數(shù)。[例4.1]編程找出由鍵盤任意輸入五個(gè)整數(shù)中的最大整數(shù)。解:設(shè)輸入的五個(gè)整數(shù)為nl、n2、n3、n4、n5,為了便于處理,引入一個(gè)中間變量tl,按如下步驟處理:①令tl=nl;②將tl與n2比較,將兩者中較大的數(shù)放入tl;③將tl與n3比較,將兩者中較大的數(shù)放入tl;④將tl與n4比較,將兩者中較大的數(shù)放入tl;⑤將tl與n5比較,將兩者中較大的數(shù)放入tl:⑥經(jīng)過以上5步處理后,tl即為5個(gè)數(shù)中最大者。從上面規(guī)劃的步驟看來,從步驟②到步驟⑤需處理的目標(biāo)是相同的,因此我們可以設(shè)計(jì)一段子程序Max(xl,x2),以找出xl和x2中最大的值并返回。Pascal程序:ProgramExam41a;Varnl,n2,n3,n4,n5,tl:integer;Functionmax(xl,x2:integer):integer;BeginIfxl>x2thenMax:=xlElseMax:=x2;End;BeginWrite(4Input5numbers:');Readln(nl,n2,n3,n4,n5);Tl:=nl;Tl:=Max(t1,n2);Tl:=Max(tl,n3);Tl:=Max(t1,n4);Tl:=Max(tl,n5);Writeln(4Maxnumber:',tl);
End.從上例看出,引入函數(shù)實(shí)際上是將一個(gè)復(fù)雜的問題劃分成若干個(gè)易于處理的子問題,將編程化簡的一種有效辦法,而化簡的方法是多種多樣的,如前面已經(jīng)做過求三個(gè)數(shù)中的最大數(shù),所以可定義ー個(gè)專門求三個(gè)數(shù)中最大數(shù)的函數(shù)(Max)。第一次用這個(gè)函數(shù)求出nl,n2,n3三個(gè)數(shù)中的最大數(shù)tl;第二次調(diào)用這個(gè)函數(shù)求出tl與n4,n5三個(gè)數(shù)中的最大數(shù),也就是前三個(gè)數(shù)的最大數(shù)(已在tl中)和后面二個(gè)數(shù)再求一次,就得到五個(gè)數(shù)的最大數(shù)。因此,需要兩次使用“求三個(gè)數(shù)中的最大數(shù)”,步驟如下:①調(diào)用函數(shù)Max(nl,n2,n3),求出nl,n2,n3中的最大者tl;②調(diào)用函數(shù)Max(tl,n4,n5),求出tl,n4,n5中的最大者t2;③輸出最大數(shù)t2。ProgramExam41_b;Varnl,n2,n3,n4,n5,tl:integer;functionMax(xl,x2,x3:integer):integer;VarXX:integer;beginifX1>X2thenXX:=X1elseXX:=X2;ifX3>XXthenXX:=X3;Max:=XXend;BeginWrite(*Input5numb:');Readln(nl,n2,n3,n4,n5);tl:=Max(nl,n2,n3);tl:=Max(n4,n5,tl);Writein('MaxNumber:',tl);ReadIn(自定義函數(shù)Max}(自定義函數(shù)Max}{函數(shù)內(nèi)部變量說明}{函數(shù)體}{主程序){輸入五個(gè)數(shù)}{用函數(shù)求nl,n2,n3的最大數(shù)}{用函數(shù)求n4,n5,tl的最大數(shù)}主程序
溫馨提示
- 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 呼吸科慢病管理與患者教育總結(jié)計(jì)劃
- 小語種證書考試的多方參與與試題及答案共同發(fā)展
- 班主任的學(xué)生發(fā)展關(guān)懷計(jì)劃
- 探討財(cái)務(wù)共享經(jīng)濟(jì)的趨勢(shì)計(jì)劃
- 專業(yè)技能與職場(chǎng)發(fā)展的結(jié)合計(jì)劃
- 如何做好前臺(tái)文員的職業(yè)培訓(xùn)計(jì)劃
- 學(xué)生自主探究學(xué)習(xí)的指導(dǎo)計(jì)劃
- 知識(shí)結(jié)構(gòu)2025國際金融理財(cái)師試題及答案
- 網(wǎng)絡(luò)編輯師考試的實(shí)踐案例分析及試題及答案
- 銀行運(yùn)營策略調(diào)整試題及答案2025年研究
- 血栓彈力圖在ICU應(yīng)用
- MT 491-1995煤礦防爆蓄電池電機(jī)車通用技術(shù)條件
- GB 38900-2020機(jī)動(dòng)車安全技術(shù)檢驗(yàn)項(xiàng)目和方法
- 五年級(jí)科學(xué)上冊(cè)21《精確時(shí)間的步伐》優(yōu)秀課件1大象版
- 小兒外科常見疾病課件
- 項(xiàng)目功能需求調(diào)研表通用模板
- DB13T 1563-2012 淡水池塘標(biāo)準(zhǔn)化改造技術(shù)規(guī)范
- 語料庫在英語教學(xué)中的應(yīng)用.課件
- 工程管理專業(yè)畢業(yè)論文——施工組織設(shè)計(jì)
- 最新國際貿(mào)易術(shù)語培訓(xùn)
- 2021年高考真題--化學(xué)(江蘇卷)(附解析)
評(píng)論
0/150
提交評(píng)論