PASCAL程序基礎(chǔ)ppt課件_第1頁(yè)
PASCAL程序基礎(chǔ)ppt課件_第2頁(yè)
PASCAL程序基礎(chǔ)ppt課件_第3頁(yè)
PASCAL程序基礎(chǔ)ppt課件_第4頁(yè)
PASCAL程序基礎(chǔ)ppt課件_第5頁(yè)
已閱讀5頁(yè),還剩72頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、PASCALPASCAL程序設(shè)計(jì)根底程序設(shè)計(jì)根底柴溝中學(xué)柴溝中學(xué) 鹿詠梅鹿詠梅一、一、 PASCAL言語(yǔ)根底知識(shí)言語(yǔ)根底知識(shí)二、二、 構(gòu)造化程序設(shè)計(jì)構(gòu)造化程序設(shè)計(jì)三、三、 數(shù)組與字符串?dāng)?shù)組與字符串四、四、 函數(shù)與過(guò)程函數(shù)與過(guò)程五、五、 遞歸遞歸一、一、PASCAL程序的根本構(gòu)造程序的根本構(gòu)造Program area;Program area;ConstConst pi=3.1416; pi=3.1416;VarVar r:integer; r:integer; s:real; s:real;BeginBegin writeln(enter r=); writeln(enter r=); rea

2、dln(r); readln(r); s:=pi s:=pi* *r r* *r;r; write(s=,s) write(s=,s)End.End.程序首部程序首部闡明部分闡明部分執(zhí)行部分執(zhí)行部分Program Program 程序名;程序名;Const Const 常量闡明;常量闡明;Type Type 類(lèi)型闡明;類(lèi)型闡明;Var Var 變量闡明;變量闡明;Function Function 函數(shù)闡明;函數(shù)闡明;Procedure Procedure 過(guò)程闡明;過(guò)程闡明;BeginBegin 語(yǔ)句語(yǔ)句1 1; 語(yǔ)句語(yǔ)句2 2; End.End.例:知圓的半徑例:知圓的半徑r r,編程求圓

3、的面積,編程求圓的面積s.s.ProgramProgramConstConstVarVarBeginBeginEnd.End.第一節(jié)第一節(jié) PASCAL言語(yǔ)根底知識(shí)言語(yǔ)根底知識(shí)二、二、PASCAL字符與符號(hào)字符與符號(hào)1 1標(biāo)識(shí)符標(biāo)識(shí)符(1) (1) 標(biāo)識(shí)符的定義:標(biāo)識(shí)符就是以標(biāo)識(shí)符的定義:標(biāo)識(shí)符就是以字母開(kāi)頭的字母數(shù)字序列,有效長(zhǎng)度為字母開(kāi)頭的字母數(shù)字序列,有效長(zhǎng)度為6363個(gè)字符,并且大小寫(xiě)等效??梢杂脕?lái)個(gè)字符,并且大小寫(xiě)等效??梢杂脕?lái)標(biāo)示常量、變量、程序、函數(shù)等。標(biāo)示常量、變量、程序、函數(shù)等。二、二、PASCAL字符與符號(hào)字符與符號(hào)(2) (2) 標(biāo)識(shí)符的分類(lèi):標(biāo)識(shí)符的分類(lèi): a. a.保

4、管字保管字( (關(guān)鍵字關(guān)鍵字) )所謂保管字是指在所謂保管字是指在PascalPascal言語(yǔ)中具有特定的言語(yǔ)中具有特定的含義,規(guī)范含義,規(guī)范PascalPascal言語(yǔ)中的保管字一共有言語(yǔ)中的保管字一共有3535個(gè)個(gè). .PROGRAMPROGRAM, BEGINBEGIN, ENDEND, CASECASE, FUNTIONFUNTION, PROCEDUREPROCEDURE, ARRAYARRAY, ANDAND,CONSTCONST,DIVDIV,DODO,DOWNTODOWNTO,ELSEELSE,F(xiàn)ILEFILE,F(xiàn)ORFOR,GOTOGOTO,IFIF,ININ,LABELLA

5、BEL,MODMOD,NILNIL,NOTNOT,OFOF,OROR,PACKEDPACKED,RECORDRECORD,REPEATREPEAT,SETSET,THENTHEN,TOTO,TYPETYPE,UNTILUNTIL,VARVAR,WHILEWHILE,WITHWITH二、二、PASCAL字符與符號(hào)字符與符號(hào)b.規(guī)范標(biāo)識(shí)符:指規(guī)范標(biāo)識(shí)符:指Pascal言語(yǔ)預(yù)先定義的標(biāo)識(shí)符,具有特殊含義。言語(yǔ)預(yù)先定義的標(biāo)識(shí)符,具有特殊含義。規(guī)范常量規(guī)范常量FalseMaxintTrue規(guī)范類(lèi)型規(guī)范類(lèi)型BooleanCharReal Integer規(guī)范函數(shù)規(guī)范函數(shù)AbsArctanChrCosEofE

6、oln Exp Ln OddOrd PredRoundSinSqr Sqrt SuccTrunc規(guī)范過(guò)程規(guī)范過(guò)程DisposeGetNewPackPage PutReadReadlnReset RewriteUnpack WriteWriteln規(guī)范文件規(guī)范文件InputOutput二、二、PASCAL字符與符號(hào)字符與符號(hào) c c用戶(hù)自定義標(biāo)識(shí)符:由他本人根據(jù)需求來(lái)定義。用戶(hù)自定義標(biāo)識(shí)符:由他本人根據(jù)需求來(lái)定義。選用的標(biāo)識(shí)符不能與保管字和規(guī)范標(biāo)識(shí)符一樣。選用的標(biāo)識(shí)符不能與保管字和規(guī)范標(biāo)識(shí)符一樣。 在定義標(biāo)識(shí)符時(shí)可以用的字符:在定義標(biāo)識(shí)符時(shí)可以用的字符:AZAZ;azaz;0909;+ +,-

7、-,* *,/ /,= =,=, ,( (,) ), , , , ,:=:=,;,;,. .,:,:,., , 注:注:PascaPasca言語(yǔ)除了能運(yùn)用以上規(guī)定的根本符號(hào)外,不言語(yǔ)除了能運(yùn)用以上規(guī)定的根本符號(hào)外,不得運(yùn)用任何其它符號(hào)。得運(yùn)用任何其它符號(hào)。 三、三、PASCAL數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型數(shù)據(jù)的一個(gè)重要特征就是它的類(lèi)型,數(shù)據(jù)類(lèi)型數(shù)據(jù)的一個(gè)重要特征就是它的類(lèi)型,數(shù)據(jù)類(lèi)型確定了數(shù)據(jù)的構(gòu)成和可進(jìn)展的運(yùn)算。確定了數(shù)據(jù)的構(gòu)成和可進(jìn)展的運(yùn)算。PascalPascal言言語(yǔ)是一種強(qiáng)類(lèi)型言語(yǔ),不同類(lèi)型間不能恣意轉(zhuǎn)語(yǔ)是一種強(qiáng)類(lèi)型言語(yǔ),不同類(lèi)型間不能恣意轉(zhuǎn)換,不同類(lèi)型的變量普通不允許作混合運(yùn)算。換,不同類(lèi)型的

8、變量普通不允許作混合運(yùn)算。程序中出現(xiàn)的一切常量、變量和用戶(hù)自定義的程序中出現(xiàn)的一切常量、變量和用戶(hù)自定義的數(shù)據(jù)必需預(yù)先闡明后才干運(yùn)用。數(shù)據(jù)必需預(yù)先闡明后才干運(yùn)用。三、三、PASCAL數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型PascalPascal數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型 簡(jiǎn)單類(lèi)型簡(jiǎn)單類(lèi)型構(gòu)造類(lèi)型構(gòu)造類(lèi)型指針類(lèi)型指針類(lèi)型 三、三、PASCAL數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型1.1.整型整型 類(lèi)型 數(shù)值范圍shortint 短整型 -128.128integer整型 -32768.32767 longint長(zhǎng)整型 -2147483648.2147483647 byte字節(jié)型 0.255 word字類(lèi)型 0.65535 三、三、PASCAL數(shù)據(jù)類(lèi)

9、型數(shù)據(jù)類(lèi)型2.實(shí)型實(shí)型 類(lèi)型 數(shù)值范圍real 根本實(shí)型 2.9e-39.1.7e38single 單精度實(shí)型 1.5e-45.3.4e38double雙精度實(shí)型 5.0e-324.1.7e308三、三、PASCAL數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型3.3.布爾型布爾型 boolean false true01邏輯真邏輯真邏輯假邏輯假三、三、PASCAL數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型4.字符型字符型 char 字符型的值必需用單引號(hào)括起來(lái),字字符型的值必需用單引號(hào)括起來(lái),字母作為字符型的值時(shí),大小寫(xiě)是不等母作為字符型的值時(shí),大小寫(xiě)是不等價(jià)的,并且字符型只允許單引號(hào)中有價(jià)的,并且字符型只允許單引號(hào)中有一個(gè)字符,否那么就是字符串

10、。一個(gè)字符,否那么就是字符串。 例:例:var var c:char; c:char; c:=a c:=a四、常量與變量四、常量與變量1.1.常量常量(1)(1)常量:在某個(gè)程序的整個(gè)過(guò)程中其值不變的量。常量:在某個(gè)程序的整個(gè)過(guò)程中其值不變的量。(2)(2)常量定義:常量定義出如今闡明部分。語(yǔ)法格式:常量定義:常量定義出如今闡明部分。語(yǔ)法格式:constconst常量標(biāo)識(shí)符常量標(biāo)識(shí)符1=1=常量值常量值1;1;.常量標(biāo)識(shí)符常量標(biāo)識(shí)符n=n=常量值常量值n;n;常量標(biāo)識(shí)符的類(lèi)型由定義它的常量的類(lèi)型決議。常量標(biāo)識(shí)符的類(lèi)型由定義它的常量的類(lèi)型決議。 ConstConst pi=3.1416; pi=

11、3.1416; a=10; a=10; c=c; c=c; t=true; t=true;四、常量與變量四、常量與變量2.2.變量變量(1)(1)變量:在某個(gè)程序的運(yùn)轉(zhuǎn)過(guò)程中其值可以發(fā)生改動(dòng)的量變量:在某個(gè)程序的運(yùn)轉(zhuǎn)過(guò)程中其值可以發(fā)生改動(dòng)的量(2)(2)變量闡明:變量闡明出如今闡明部分。語(yǔ)法格式:變量闡明:變量闡明出如今闡明部分。語(yǔ)法格式:varvar變量標(biāo)識(shí)符列表變量標(biāo)識(shí)符列表: :類(lèi)型類(lèi)型; ;.變量標(biāo)識(shí)符列表變量標(biāo)識(shí)符列表: :類(lèi)型類(lèi)型; ;varvara,b,c:integera,b,c:integer;m,n:real m,n:real ;五、運(yùn)算符和表達(dá)式五、運(yùn)算符和表達(dá)式1.運(yùn)算

12、符運(yùn)算符a.算術(shù)運(yùn)算符算術(shù)運(yùn)算符運(yùn)算符運(yùn)算運(yùn)算對(duì)象結(jié)果類(lèi)型運(yùn)算符運(yùn)算運(yùn)算對(duì)象結(jié)果類(lèi)型+ 加加 整型、實(shí)型只需有一個(gè)運(yùn)算對(duì)象是實(shí)型,結(jié)果就整型、實(shí)型只需有一個(gè)運(yùn)算對(duì)象是實(shí)型,結(jié)果就-減減 整型、實(shí)型是實(shí)型,假設(shè)全部的運(yùn)算對(duì)象都是整整型、實(shí)型是實(shí)型,假設(shè)全部的運(yùn)算對(duì)象都是整*乘乘 整型、實(shí)型型并且運(yùn)算不是除法,那么結(jié)果為整型,整型、實(shí)型型并且運(yùn)算不是除法,那么結(jié)果為整型,/除除 整型、實(shí)型假設(shè)運(yùn)算是除法,那么結(jié)果是實(shí)型。整型、實(shí)型假設(shè)運(yùn)算是除法,那么結(jié)果是實(shí)型。div 整除整除 整型整型整型整型mod 取余取余 整型整型整型整型 5 div 3=15 mod 3=2 五、運(yùn)算符和表達(dá)式五、運(yùn)算符和

13、表達(dá)式b.邏輯運(yùn)算符邏輯運(yùn)算符 運(yùn)算符運(yùn)算運(yùn)算對(duì)象結(jié)果類(lèi)型運(yùn)算符運(yùn)算運(yùn)算對(duì)象結(jié)果類(lèi)型not 邏輯非布爾型布爾型邏輯非布爾型布爾型and邏輯與布爾型布爾型邏輯與布爾型布爾型or 邏輯或布爾型布爾型邏輯或布爾型布爾型 xor 邏輯異或邏輯異或 布爾型布爾型 布爾型布爾型 not (非) 條件為T(mén)rue時(shí),其結(jié)果值為False;否那么為T(mén)rue;(取反)not(34) and (與) 兩條件都為T(mén)rue時(shí),其結(jié)果值為T(mén)rue;否那么為False; or (或) 兩條件中只需有一個(gè)為T(mén)rue ;其結(jié)果值為T(mén)rue;否那么為False; xor (異或) 兩條件的邏輯值不一樣時(shí),其結(jié)果值為T(mén)rue;否那

14、么為False;五、運(yùn)算符和表達(dá)式五、運(yùn)算符和表達(dá)式 c.關(guān)系運(yùn)算符關(guān)系運(yùn)算符運(yùn)算符運(yùn)算運(yùn)算對(duì)象結(jié)果類(lèi)型運(yùn)算符運(yùn)算運(yùn)算對(duì)象結(jié)果類(lèi)型=等于簡(jiǎn)單類(lèi)型布爾型等于簡(jiǎn)單類(lèi)型布爾型 不等于不等于 簡(jiǎn)單類(lèi)型布爾型簡(jiǎn)單類(lèi)型布爾型大于簡(jiǎn)單類(lèi)型布爾型大于簡(jiǎn)單類(lèi)型布爾型= 大于等于大于等于 簡(jiǎn)單類(lèi)型布爾型簡(jiǎn)單類(lèi)型布爾型 運(yùn)算符優(yōu)先級(jí)運(yùn)算符優(yōu)先級(jí):not*,/,div,mod,and xor,+,-,or in,=,=,=五、運(yùn)算符和表達(dá)式五、運(yùn)算符和表達(dá)式2.表達(dá)式表達(dá)式1經(jīng)過(guò)運(yùn)算符把常量、變量、函數(shù)調(diào)用經(jīng)過(guò)運(yùn)算符把常量、變量、函數(shù)調(diào)用結(jié)合起來(lái)組成的式子。結(jié)合起來(lái)組成的式子。pipi* *r r* *r rSum+

15、2Sum+2(xy) and (z=y)(xy) and (z=y)五、運(yùn)算符和表達(dá)式五、運(yùn)算符和表達(dá)式2數(shù)學(xué)上的表達(dá)式與數(shù)學(xué)上的表達(dá)式與pascal言語(yǔ)表達(dá)式的區(qū)別言語(yǔ)表達(dá)式的區(qū)別數(shù)學(xué)表達(dá)式數(shù)學(xué)表達(dá)式 PASCAL表達(dá)式表達(dá)式 留意留意 2a 2*a *號(hào)不能省略號(hào)不能省略 ab a/b 除號(hào)的寫(xiě)法除號(hào)的寫(xiě)法 ab ab 不等號(hào)的寫(xiě)法不等號(hào)的寫(xiě)法 ab a=b 小于等于號(hào)的寫(xiě)法小于等于號(hào)的寫(xiě)法 五、運(yùn)算符和表達(dá)式五、運(yùn)算符和表達(dá)式TrueTrueandandTrueTrue= =TrueTrueTrueTrueFalsFalse eFalseFalseFalsFalse eTrueTrueF

16、alseFalseFalsFalse eFalsFalse eFalseFalsePascal中的邏輯運(yùn)算:中的邏輯運(yùn)算:五、運(yùn)算符和表達(dá)式五、運(yùn)算符和表達(dá)式TrueTrueororTrueTrue= =TrueTrueTrueTrueFalseFalseTrueTrueFalseFalseTrueTrueTrueTrueFalseFalseFalseFalseFalseFalse第二節(jié) 構(gòu)造化程序設(shè)計(jì)pascal程序的三程序的三種根本構(gòu)造種根本構(gòu)造順序構(gòu)造順序構(gòu)造分支構(gòu)造分支構(gòu)造循環(huán)構(gòu)造循環(huán)構(gòu)造 (一一)、什么是順序構(gòu)造:、什么是順序構(gòu)造:【例【例1】:鍵盤(pán)輸入兩個(gè)變量的值,交換值后輸出?!?/p>

17、:鍵盤(pán)輸入兩個(gè)變量的值,交換值后輸出。方法:間接交換法方法:間接交換法算法分析:算法分析:“自頂向下,逐漸求精的編程思想自頂向下,逐漸求精的編程思想s1:經(jīng)過(guò)鍵盤(pán)給經(jīng)過(guò)鍵盤(pán)給a,b兩個(gè)變量賦值;兩個(gè)變量賦值;s2:交換交換a,b的值;的值; s2-1:引入中間變量引入中間變量c; s2-2:在在c中存放的中存放的a值;值; s2-3:在在a中存放的中存放的b值;值; s2-4:在在b中存放的中存放的c值;值;s3:輸出變量輸出變量a,b的值。的值。程序代碼:程序代碼:program ex1; var a,b,c:integer; beginwrite(please input a,b:);re

18、ad(a,b);writeln(a=,a,b=,b);c:=a;a:=b;b:=c;writeln(a=,a,b=,b) end. 一一 .順順序序構(gòu)構(gòu)造造程程序序設(shè)設(shè)計(jì)計(jì)Pascal 言語(yǔ)的語(yǔ)句分為簡(jiǎn)單語(yǔ)句也稱(chēng)根本語(yǔ)句和復(fù)合語(yǔ)句也稱(chēng)構(gòu)造語(yǔ)句 o(二二):幾個(gè)簡(jiǎn)單語(yǔ)句:幾個(gè)簡(jiǎn)單語(yǔ)句:o1賦值語(yǔ)句:賦值語(yǔ)句:o格式:變量標(biāo)識(shí)符:格式:變量標(biāo)識(shí)符:=表達(dá)式;表達(dá)式;o功能:計(jì)算和賦值雙重功能:功能:計(jì)算和賦值雙重功能:o【例【例2】寫(xiě)出程序執(zhí)行后,變量的值?!繉?xiě)出程序執(zhí)行后,變量的值。o程序代碼:程序代碼:oprogram ex2;o varoa,b:integer;oc:real;och:cha

19、r;obool:boolean;obegino a:=3;o b:=a;o b:=a+1;o a:=a+1;o c:=a+b;o ch:=h;o bool:=true;o bool:=not bool;o end.o闡明:闡明:1“:=賦值號(hào)不同于賦值號(hào)不同于“=號(hào),具有號(hào),具有方向性,具有計(jì)算功能。方向性,具有計(jì)算功能。o 2賦值號(hào)兩邊的類(lèi)型應(yīng)該一樣。賦值號(hào)兩邊的類(lèi)型應(yīng)該一樣。o 3一個(gè)賦值語(yǔ)句只能給一個(gè)變量賦值,變量一個(gè)賦值語(yǔ)句只能給一個(gè)變量賦值,變量可以進(jìn)展多次賦值??梢赃M(jìn)展多次賦值。o 4被賦值的變量可以作為因子參與運(yùn)算。被賦值的變量可以作為因子參與運(yùn)算。2輸入語(yǔ)句輸入語(yǔ)句read,r

20、eadln:格式:格式:read(變量名表變量名表); readln read(a1,a2,a3); 等價(jià)于等價(jià)于 read(a1);read(a2);read(a3); readln(a1,a2,a3); 等價(jià)于等價(jià)于 read(a1);read(a2);read(a3);readln;功能:經(jīng)過(guò)鍵盤(pán),給指定的變量賦值。功能:經(jīng)過(guò)鍵盤(pán),給指定的變量賦值。【例【例3】:寫(xiě)出程序運(yùn)轉(zhuǎn)后,變量的值。】:寫(xiě)出程序運(yùn)轉(zhuǎn)后,變量的值。程序代碼:程序代碼:program ex3; var a,b,c:integer;i,j,k:real;ch1,ch2,ch3:char;begin read(a,b,c)

21、; readln(i,j,k);read(ch1,ch2,ch3);writeln(a=,a,b=,b,c=,c);writeln(i=,i, j=,j,k=,k);writeln(ch1=,ch1,ch2=,ch2,ch3=,ch3);end.程序運(yùn)轉(zhuǎn)后,輸入數(shù)據(jù):程序運(yùn)轉(zhuǎn)后,輸入數(shù)據(jù):1 2 3 4 56.1 7 8 9 0dos執(zhí)行readln后多余的數(shù)據(jù)將被忽略;執(zhí)行read后多余的數(shù)據(jù)要么被忽略,要么被下一個(gè)read或readln語(yǔ)句所讀入。o3輸出語(yǔ)句輸出語(yǔ)句write,writeln:o格式:格式:write輸出項(xiàng);輸出項(xiàng);o writeln;o功能:按指定的格式將輸出項(xiàng)的內(nèi)容輸

22、出。功能:按指定的格式將輸出項(xiàng)的內(nèi)容輸出。o【例【例4】:寫(xiě)出程序運(yùn)轉(zhuǎn)后的結(jié)果?!浚簩?xiě)出程序運(yùn)轉(zhuǎn)后的結(jié)果。o程序代碼:程序代碼:oprogram ex4;o constoa=10;ob=20;obegino writeln(50);o writeln(a);o writeln(a+b);o writeln(a+b=,a+b)oend.o闡明:闡明:1輸出項(xiàng)的內(nèi)容可以是一項(xiàng),也可以是假設(shè)干項(xiàng),各項(xiàng)之輸出項(xiàng)的內(nèi)容可以是一項(xiàng),也可以是假設(shè)干項(xiàng),各項(xiàng)之間用逗號(hào)分隔。間用逗號(hào)分隔。o 2當(dāng)輸出項(xiàng)為常量,直接輸出常量的值;當(dāng)輸出項(xiàng)為變量當(dāng)輸出項(xiàng)為常量,直接輸出常量的值;當(dāng)輸出項(xiàng)為變量時(shí),輸出該變量存儲(chǔ)單元

23、內(nèi)的內(nèi)容,變量允許屬于任何一種規(guī)范時(shí),輸出該變量存儲(chǔ)單元內(nèi)的內(nèi)容,變量允許屬于任何一種規(guī)范數(shù)據(jù)類(lèi)型;當(dāng)輸出項(xiàng)為表達(dá)式時(shí),先計(jì)算后輸出;當(dāng)輸出項(xiàng)為字?jǐn)?shù)據(jù)類(lèi)型;當(dāng)輸出項(xiàng)為表達(dá)式時(shí),先計(jì)算后輸出;當(dāng)輸出項(xiàng)為字符串時(shí),原樣輸出單引號(hào)括起來(lái)的內(nèi)容。符串時(shí),原樣輸出單引號(hào)括起來(lái)的內(nèi)容。 501030a+b=301、定義:復(fù)合語(yǔ)句是由假設(shè)干條語(yǔ)句組成的語(yǔ)句序列。方式:begin 語(yǔ)句1; 語(yǔ)句2; 語(yǔ)句nend;用保管字begin和end括起來(lái),構(gòu)成一條邏輯上的語(yǔ)句,語(yǔ)法上充任一條語(yǔ)句。(三三):復(fù)合語(yǔ)句:復(fù)合語(yǔ)句:二二 . 選擇構(gòu)造程序設(shè)計(jì)選擇構(gòu)造程序設(shè)計(jì)1if 語(yǔ)句:語(yǔ)句:格式:格式:(1) if 條件

24、條件 then 語(yǔ)句語(yǔ)句(2) if 條件條件 then 語(yǔ)句語(yǔ)句1 else 語(yǔ)句語(yǔ)句2 (3)if 語(yǔ)句嵌套語(yǔ)句嵌套if 條件條件1 then 語(yǔ)句語(yǔ)句11 else if 條件條件2 then 語(yǔ)句語(yǔ)句21 else 語(yǔ)句語(yǔ)句22 ;例:計(jì)算以下函數(shù) y=Program p; Var x,y:real; begin read(x); if x0 then y=1 else y=0; writeln(y=,y); end. 輸入:5 輸出:0 (x=0)1 (x0)-1 (x0)2case 語(yǔ)句:分情況語(yǔ)句多分支語(yǔ)句格式:case 表達(dá)式 of 常數(shù)表1:語(yǔ)句1; 常數(shù)表2:語(yǔ)句2; 常數(shù)

25、表n:語(yǔ)句n; else 語(yǔ)句n+1 end;功能:先計(jì)算表達(dá)式的值,然后將表達(dá)式的值依次與各常數(shù)表進(jìn)展對(duì)照,當(dāng)找到一個(gè)與表達(dá)式的值相匹配的常數(shù)表時(shí),就去執(zhí)行該CASE常數(shù)表后面的語(yǔ)句。闡明:1end 與case 對(duì)應(yīng) 2表達(dá)式的類(lèi)型通常是整型、字符型 3)常量表是常量,其類(lèi)型與表達(dá)式的類(lèi)型要一致。常量表中的常量不能反復(fù)。 通常將一組反復(fù)執(zhí)行的語(yǔ)句稱(chēng)為循環(huán)體,而控制反復(fù)執(zhí)行或終止執(zhí)行由反復(fù)終止條件決議。 因此,反復(fù)語(yǔ)句是由循環(huán)體及反復(fù)終止條件兩部分組成。FOR循環(huán)循環(huán)當(dāng)循環(huán)當(dāng)循環(huán)while直到直到repeat循環(huán)循環(huán)一、循環(huán)構(gòu)造的三種方式:三三 . 循環(huán)構(gòu)造程序設(shè)計(jì)循環(huán)構(gòu)造程序設(shè)計(jì)一for循環(huán)

26、語(yǔ)句1 1forfor語(yǔ)句:語(yǔ)句:“計(jì)數(shù)循環(huán):就是將規(guī)定循環(huán)體反復(fù)執(zhí)行的次數(shù)。計(jì)數(shù)循環(huán):就是將規(guī)定循環(huán)體反復(fù)執(zhí)行的次數(shù)。格式:格式:for for 控制變量:控制變量:= =初值初值 to to 終值終值 dodo 循環(huán)體語(yǔ)句;循環(huán)體語(yǔ)句; for for 控制變量:控制變量:= =初值初值 downto downto 終值終值 dodo 循環(huán)體語(yǔ)句;循環(huán)體語(yǔ)句;2 2、forfor語(yǔ)句執(zhí)行過(guò)程語(yǔ)句執(zhí)行過(guò)程 先將初值賦給左邊的變量稱(chēng)為循環(huán)控制變量;先將初值賦給左邊的變量稱(chēng)為循環(huán)控制變量; 判別循環(huán)控制變量的值能否已判別循環(huán)控制變量的值能否已“超越終值,如已超越,那么跳到步驟超越終值,如已超越,

27、那么跳到步驟; 假設(shè)末超越終值,那么執(zhí)行假設(shè)末超越終值,那么執(zhí)行dodo后面的那個(gè)語(yǔ)句稱(chēng)為循環(huán)體;后面的那個(gè)語(yǔ)句稱(chēng)為循環(huán)體; 循環(huán)變量遞增對(duì)循環(huán)變量遞增對(duì)toto或遞減對(duì)或遞減對(duì)downt o)downt o); 前往步驟前往步驟; 循環(huán)終了,執(zhí)行循環(huán)下面的一個(gè)語(yǔ)句。循環(huán)終了,執(zhí)行循環(huán)下面的一個(gè)語(yǔ)句。3 3、闡明:、闡明: 1) 1) 初值和終值可以是表達(dá)式,控制變量和初值、終值的類(lèi)型一樣,且必需是整型、初值和終值可以是表達(dá)式,控制變量和初值、終值的類(lèi)型一樣,且必需是整型、布爾型和字符型等順序類(lèi)型,不能為實(shí)型。布爾型和字符型等順序類(lèi)型,不能為實(shí)型。 2 2遞增按遞增按succsucc函數(shù)規(guī)律變

28、化,遞減按函數(shù)規(guī)律變化,遞減按predpred函數(shù)規(guī)律變化,整型按數(shù)值大小變化,假函數(shù)規(guī)律變化,整型按數(shù)值大小變化,假設(shè)為字符型量,按設(shè)為字符型量,按ASCIIASCII碼表的順序計(jì)算。碼表的順序計(jì)算。 3 3初值和終值在循環(huán)之前計(jì)算,反復(fù)過(guò)程中,其值不受影響;不得在循環(huán)語(yǔ)句中對(duì)初值和終值在循環(huán)之前計(jì)算,反復(fù)過(guò)程中,其值不受影響;不得在循環(huán)語(yǔ)句中對(duì)控制變量進(jìn)展賦值。控制變量進(jìn)展賦值。 4 4當(dāng)初值超越終值,不執(zhí)行循環(huán),循環(huán)次數(shù)為零。當(dāng)初值超越終值,不執(zhí)行循環(huán),循環(huán)次數(shù)為零。例:計(jì)算1+2+3+100之和var i,s:integer;begins:=0; for i:=1 to 100 do

29、s:=s+i; writeln(s);end.循環(huán)體:反復(fù)執(zhí)行循環(huán)體:反復(fù)執(zhí)行初值初值i:循環(huán)控制變量循環(huán)控制變量終值終值 二二while語(yǔ)句:語(yǔ)句: 對(duì)于對(duì)于for循環(huán)有時(shí)也稱(chēng)為計(jì)數(shù)循環(huán)。循環(huán)有時(shí)也稱(chēng)為計(jì)數(shù)循環(huán)。適宜用適宜用于事先知道循環(huán)次數(shù)于事先知道循環(huán)次數(shù). 當(dāng)循環(huán)次數(shù)未知,只能根據(jù)某一條件來(lái)決當(dāng)循環(huán)次數(shù)未知,只能根據(jù)某一條件來(lái)決議能否進(jìn)展循環(huán)時(shí),用議能否進(jìn)展循環(huán)時(shí),用while 語(yǔ)句實(shí)現(xiàn)循語(yǔ)句實(shí)現(xiàn)循環(huán)要更方便。環(huán)要更方便?!爱?dāng)型循環(huán):當(dāng)條件滿(mǎn)足時(shí)反復(fù)執(zhí)行當(dāng)型循環(huán):當(dāng)條件滿(mǎn)足時(shí)反復(fù)執(zhí)行循環(huán)體。循環(huán)體。格式:格式:while 布爾表達(dá)式布爾表達(dá)式 do 語(yǔ)句;語(yǔ)句;執(zhí)行過(guò)程:執(zhí)行過(guò)程: w

30、hile語(yǔ)句的執(zhí)行過(guò)程為:語(yǔ)句的執(zhí)行過(guò)程為: 判別布爾表達(dá)式的值判別布爾表達(dá)式的值,假設(shè)其值為真假設(shè)其值為真,執(zhí)執(zhí)行步驟行步驟2,否那么執(zhí)行步驟否那么執(zhí)行步驟4; 執(zhí)行循環(huán)體語(yǔ)句執(zhí)行循環(huán)體語(yǔ)句(do后面的語(yǔ)句后面的語(yǔ)句); 前往步驟前往步驟1; 終了循環(huán)終了循環(huán),執(zhí)行執(zhí)行while的下一個(gè)語(yǔ)句。的下一個(gè)語(yǔ)句。闡明:闡明: 1為了使為了使while循環(huán)能正常終止,布爾表循環(huán)能正常終止,布爾表達(dá)式中的變量必需在循環(huán)體中的某語(yǔ)句中達(dá)式中的變量必需在循環(huán)體中的某語(yǔ)句中有所改動(dòng),即有能夠使布爾表達(dá)式的值為有所改動(dòng),即有能夠使布爾表達(dá)式的值為假,使循環(huán)終了,否那么將出現(xiàn)死循環(huán)。假,使循環(huán)終了,否那么將出現(xiàn)

31、死循環(huán)。 2循環(huán)體中的語(yǔ)句普通是多條語(yǔ)句,用循環(huán)體中的語(yǔ)句普通是多條語(yǔ)句,用begin和和end使其成為一條復(fù)合語(yǔ)句。使其成為一條復(fù)合語(yǔ)句。引例:引例:求恰好使求恰好使s=1+1/2+1/3+1/n的值大于的值大于10時(shí)時(shí)n的值。的值。var s : real; n : integer;n分母分母begin s:=0; n:=0; while s=10 do當(dāng)當(dāng)s的值還未超越的值還未超越10時(shí)時(shí) begin n:=n+1;分母分母1 s:=s+1/n;將下一項(xiàng)值累加到將下一項(xiàng)值累加到s end; writeln(n);輸出結(jié)果輸出結(jié)果end. repeat語(yǔ)句:“直到型循環(huán):反復(fù)執(zhí)行循環(huán)體直到

32、條件滿(mǎn)足為止。格式:repeat 語(yǔ)句1; 語(yǔ)句2; 語(yǔ)句3; 語(yǔ)句n until 布爾表達(dá)式; 執(zhí)行過(guò)程:先執(zhí)行指定的語(yǔ)句序列,然后判別表達(dá)式。三 repeat語(yǔ)句:“直到型循環(huán)例】:輸入假設(shè)干個(gè)字符,它的終止符是#,計(jì)算輸入的字符中aA出現(xiàn)的次數(shù)。program ex7; var ch:char; i:integer;begin i:=0; repeat read(ch); if (ch=a) or (ch=A) then i:=i+1; until ch=#; writeln(i=,i)end.三種循環(huán)語(yǔ)句的一樣點(diǎn)與不同點(diǎn)FORFORWHILEWHILEREPEATREPEAT語(yǔ)句格式語(yǔ)

33、句格式FOR FOR := TO TO DO DO WHILE WHILE DO DO REPEATREPEAT UNTIL UNTIL 循環(huán)變量循環(huán)變量賦值賦值布爾表達(dá)式布爾表達(dá)式無(wú)循環(huán)變量無(wú)循環(huán)變量循環(huán)次數(shù)循環(huán)次數(shù)確定,由初值和終值決定確定,由初值和終值決定不確定,由循環(huán)體前的布爾表不確定,由循環(huán)體前的布爾表達(dá)式?jīng)Q定,當(dāng)值為達(dá)式?jīng)Q定,當(dāng)值為“假假”時(shí),結(jié)束循環(huán)。時(shí),結(jié)束循環(huán)。可能一次循環(huán)也沒(méi)有可能一次循環(huán)也沒(méi)有不確定,由循環(huán)體后的布不確定,由循環(huán)體后的布爾表達(dá)式?jīng)Q定,當(dāng)值爾表達(dá)式?jīng)Q定,當(dāng)值為為“真真”時(shí)結(jié)束循環(huán)。時(shí)結(jié)束循環(huán)。至少有一次循環(huán)至少有一次循環(huán)循環(huán)體循環(huán)體多語(yǔ)句時(shí),需用多語(yǔ)句時(shí),需

34、用BEGINBEGIN和和ENDEND多語(yǔ)句時(shí),需用多語(yǔ)句時(shí),需用BEGINBEGIN和和ENDEND多語(yǔ)句時(shí),不需用多語(yǔ)句時(shí),不需用BEGINBEGIN和和ENDEND數(shù) 組一、為什么要運(yùn)用數(shù)組:例例1輸入輸入50個(gè)學(xué)生的某門(mén)課程的成果,打印出低于平均分的同窗號(hào)數(shù)與成個(gè)學(xué)生的某門(mén)課程的成果,打印出低于平均分的同窗號(hào)數(shù)與成果。果。分析:在處理這個(gè)問(wèn)題時(shí),雖然可以經(jīng)過(guò)讀入一個(gè)數(shù)就累加一個(gè)數(shù)分析:在處理這個(gè)問(wèn)題時(shí),雖然可以經(jīng)過(guò)讀入一個(gè)數(shù)就累加一個(gè)數(shù)的方法來(lái)求學(xué)生的總分,進(jìn)而求出平均分。但由于只需讀入最后一個(gè)學(xué)的方法來(lái)求學(xué)生的總分,進(jìn)而求出平均分。但由于只需讀入最后一個(gè)學(xué)生的分?jǐn)?shù)以后才干求得平均分,

35、且要打印出低于平均分的同窗,故必需生的分?jǐn)?shù)以后才干求得平均分,且要打印出低于平均分的同窗,故必需把把50個(gè)學(xué)生的成果都保管下來(lái),個(gè)學(xué)生的成果都保管下來(lái), 然后逐個(gè)和平均分比較,把高于平均分然后逐個(gè)和平均分比較,把高于平均分的成果打印出來(lái)。假設(shè),用簡(jiǎn)單變量的成果打印出來(lái)。假設(shè),用簡(jiǎn)單變量a1,a2,,a50存放這些數(shù)據(jù),可存放這些數(shù)據(jù),可想而知程序要很長(zhǎng)且繁。想而知程序要很長(zhǎng)且繁。要想如數(shù)學(xué)中運(yùn)用下標(biāo)變量要想如數(shù)學(xué)中運(yùn)用下標(biāo)變量ai方式表示這方式表示這50個(gè)數(shù),那么可以引入下個(gè)數(shù),那么可以引入下標(biāo)變量標(biāo)變量ai。這樣問(wèn)題的程序可寫(xiě)為:。這樣問(wèn)題的程序可寫(xiě)為:第三節(jié) 數(shù)組與字符串tot:=0;to

36、ttot:=0;tot表示總分表示總分 for i:=1 to 50 do for i:=1 to 50 do 循環(huán)讀入每一個(gè)學(xué)生的成循環(huán)讀入每一個(gè)學(xué)生的成果,并累加它到總分果,并累加它到總分beginbeginread(ai);read(ai);tot:=tot+ai;tot:=tot+ai;end;end;ave:=tot/50;ave:=tot/50;計(jì)算平均分計(jì)算平均分for i:=1 to 50 dofor i:=1 to 50 doif aiave then writeln(No.,i, if aiave then writeln(No.,i, ,ai);,ai);假設(shè)第假設(shè)第i

37、i個(gè)同窗成果小于平均分,那么將輸個(gè)同窗成果小于平均分,那么將輸出出而要在程序中運(yùn)用下標(biāo)變量,那么必需先闡明這而要在程序中運(yùn)用下標(biāo)變量,那么必需先闡明這些下標(biāo)變量的整體些下標(biāo)變量的整體數(shù)組,即數(shù)組是假設(shè)干個(gè)同名數(shù)組,即數(shù)組是假設(shè)干個(gè)同名如上面的下標(biāo)變量的名字都為如上面的下標(biāo)變量的名字都為a a下標(biāo)變量的集合。下標(biāo)變量的集合。 二、一維數(shù)組二、一維數(shù)組當(dāng)數(shù)組中每個(gè)元素只帶有一個(gè)下標(biāo)時(shí),我們稱(chēng)這樣的當(dāng)數(shù)組中每個(gè)元素只帶有一個(gè)下標(biāo)時(shí),我們稱(chēng)這樣的數(shù)組為一維數(shù)組。數(shù)組為一維數(shù)組。1、一維數(shù)組類(lèi)型的定義、一維數(shù)組類(lèi)型的定義 一維數(shù)組類(lèi)型的普通格式:array下標(biāo)1.下標(biāo)2 of ; 我們可以說(shuō),數(shù)組是由固

38、定數(shù)量的一樣類(lèi)型的元素組成的。如:type arraytype=array1.8of integer;var a1,a2:arraytype; 或var a1,a2:array1.8of integer; 一維數(shù)組運(yùn)用例如例例 輸入輸入50個(gè)數(shù)個(gè)數(shù),要求程序按輸入時(shí)的逆序把這要求程序按輸入時(shí)的逆序把這50個(gè)數(shù)打個(gè)數(shù)打印出來(lái)。也就是說(shuō),請(qǐng)他按輸入相反順序打印這印出來(lái)。也就是說(shuō),請(qǐng)他按輸入相反順序打印這50個(gè)個(gè)數(shù)。數(shù)。分析:我們可定義一個(gè)數(shù)組分析:我們可定義一個(gè)數(shù)組a用以存放輸入的用以存放輸入的50個(gè)個(gè)數(shù)數(shù), 然后將數(shù)組然后將數(shù)組a內(nèi)容逆序輸出。內(nèi)容逆序輸出。源程序如下:源程序如下:program

39、 ex5_1; type arr=array1.50of integer; 闡明一數(shù)組類(lèi)型闡明一數(shù)組類(lèi)型arrvar a:arr;i:integer;beginwriteln(Enter 50 integer:);for i:=1 to 50 do read(ai);從鍵盤(pán)上輸入從鍵盤(pán)上輸入50個(gè)整數(shù)個(gè)整數(shù)readln;for i:=50 downto 1 do 逆序輸出這逆序輸出這50個(gè)數(shù)個(gè)數(shù)write(ai:10);end.二維數(shù)組o數(shù)組類(lèi)型的定義中有兩個(gè)下標(biāo)類(lèi)型二維數(shù)組類(lèi)型的定義:ntype intarr=array 1.4 of integer;n arr=array 1.5 of i

40、ntarr; nvar a:arr;n變量a是一個(gè)二維的數(shù)組變量,它有5個(gè)分量,分別用a1, a2, a3, a4, a5表示,每個(gè)分量相當(dāng)于一個(gè)一維的數(shù)組變量(有4個(gè)整型分量),經(jīng)過(guò)下標(biāo)區(qū)分:na1,1, a1,2, a1,3, a1,4 na2,1, a2,2, a2,3, a2,4na3,1, a3,2, a3,3, a3,4 na4,1, a4,2, a4,3, a4,4na5,1, a5,2, a5,3, a5,4otype arr=array 1.5 of array 1.4 of integer; o var a:arr;o 等價(jià)的定義方式:otype arr=array 1.5

41、,1.4 of integer; o var a:arr;o或var a:array 1.5,1.4 of integera1,1 a1,2 a1,3 a1,4 a2,1 a2,2 a2,3 a2,4a3,1 a3,2 a3,3 a3,4 a4,1 a4,2 a4,3 a4,4a5,1 a5,2 a5,3 a5,4二維數(shù)組運(yùn)用舉例:例:例: 輸入輸入4名學(xué)生數(shù)學(xué)、物理、英語(yǔ)、化學(xué)、名學(xué)生數(shù)學(xué)、物理、英語(yǔ)、化學(xué)、pascal五門(mén)課五門(mén)課的考試成果,求出每名學(xué)生的平均分,打印出表格。的考試成果,求出每名學(xué)生的平均分,打印出表格。分析:用二維數(shù)組分析:用二維數(shù)組a存放所給數(shù)據(jù)存放所給數(shù)據(jù),第一下標(biāo)表

42、示學(xué)生第一下標(biāo)表示學(xué)生的學(xué)號(hào)的學(xué)號(hào), 第二個(gè)下標(biāo)表示該學(xué)生某科成果,如第二個(gè)下標(biāo)表示該學(xué)生某科成果,如ai,1、ai,2、ai,3、ai,4、ai,5分別存放第分別存放第i號(hào)學(xué)生數(shù)學(xué)、物號(hào)學(xué)生數(shù)學(xué)、物理、英語(yǔ)、化學(xué)、理、英語(yǔ)、化學(xué)、pascal 五門(mén)課的考試成果五門(mén)課的考試成果,由于要求每由于要求每個(gè)學(xué)生的總分和平均分,個(gè)學(xué)生的總分和平均分, 所以第二下標(biāo)可多出兩列,分所以第二下標(biāo)可多出兩列,分別存放每個(gè)學(xué)生別存放每個(gè)學(xué)生5門(mén)成果和總分、平均分。門(mén)成果和總分、平均分。 源程序如下:program ex5_4;var a:array1.4,1.7of real;i,j:integer; begi

43、nfillchar(a,sizeof(a),0);函數(shù)fillchar用以將a中一切元素置為0writeln(Enter 4 students score);for i:=1 to 4 do beginfor j:=1 to 5 do 讀入每個(gè)人5科成果begin read(ai,j); 讀每科成果時(shí)同時(shí)統(tǒng)計(jì)總分 ai,6:=ai,6+ai,j;end;readln;ai,7:=ai,6/5;求平均分 end;輸出成果表 writeln( No. Mat. Phy. Eng. Che. Pas. Tot. Ave.); for i:=1 to 4 do beginwrite(i:2, );fo

44、r j:=1 to 7 do write(ai,j:9:2);writeln; end;end.字符串 字符串有常量方式和變量方式。字符串有常量方式和變量方式。把按一定順序陳列的字符數(shù)據(jù)叫做字符串,把按一定順序陳列的字符數(shù)據(jù)叫做字符串,表示方法是將字符放入單引號(hào)中,字符表示方法是將字符放入單引號(hào)中,字符串個(gè)數(shù)叫做字符串的長(zhǎng)度。串個(gè)數(shù)叫做字符串的長(zhǎng)度。字符串變量可以用串類(lèi)型標(biāo)識(shí)符字符串變量可以用串類(lèi)型標(biāo)識(shí)符 stringn來(lái)表示。來(lái)表示。N取值在取值在1255之間。省略為之間。省略為255。定義格式定義格式 : type 字符串類(lèi)型名字符串類(lèi)型名=string 最大長(zhǎng)度最大長(zhǎng)度;定義字符串變量格

45、式是:定義字符串變量格式是:Var 字符串變量名:字符串類(lèi)型名;字符串變量名:字符串類(lèi)型名;也可以直接定義字符串變量,其格式為:也可以直接定義字符串變量,其格式為:Var 變量名:變量名: string最大長(zhǎng)度最大長(zhǎng)度;或或 變量名:變量名:string;字符串之間的運(yùn)算:字符串之間的運(yùn)算: 對(duì)字符串可以整體輸入或輸出,如:對(duì)字符串可以整體輸入或輸出,如:read(x);write(y); 允許對(duì)串變量進(jìn)展賦值,如:允許對(duì)串變量進(jìn)展賦值,如:X:=abc; y:=x。 可以對(duì)字符串進(jìn)展銜接運(yùn)算,運(yùn)用可以對(duì)字符串進(jìn)展銜接運(yùn)算,運(yùn)用+進(jìn)展銜接。如:進(jìn)展銜接。如:ho+me結(jié)果結(jié)果是:是:home。

46、 字符串之間可以進(jìn)展關(guān)系運(yùn)算:字符串之間可以進(jìn)展關(guān)系運(yùn)算: 、 、 =、 、 =、 =、 。比較方法按比較方法按ASCII碼一個(gè)字符一個(gè)字碼一個(gè)字符一個(gè)字符比較。符比較。字符串函數(shù)1字符串測(cè)長(zhǎng)函數(shù)字符串測(cè)長(zhǎng)函數(shù)格式:格式:length(s)功能:求字符串功能:求字符串S的長(zhǎng)度,結(jié)果為整型。的長(zhǎng)度,結(jié)果為整型。2求子串函數(shù)求子串函數(shù)格式:格式:copy (s,n,1);功能:在功能:在S串的第串的第N位開(kāi)場(chǎng)截取位開(kāi)場(chǎng)截取1位字符串。位字符串。3 查找子串函數(shù)查找子串函數(shù)格式:格式:posb,s);功能:求子串功能:求子串b在在s中出現(xiàn)的起始位置,結(jié)果為整型,假設(shè)未找到顯示中出現(xiàn)的起始位置,結(jié)果為

47、整型,假設(shè)未找到顯示0。4插入過(guò)程插入過(guò)程格式:格式: insert s1,s2,i);功能:將功能:將s1插入插入 s2中的第中的第i個(gè)字符位置,假設(shè)結(jié)果超出個(gè)字符位置,假設(shè)結(jié)果超出s2的最大長(zhǎng)度,那么超出的部分的最大長(zhǎng)度,那么超出的部分被截掉。被截掉。5刪除過(guò)程刪除過(guò)程格式:格式:delete (s,I,n);功能:刪除功能:刪除s中第中第i個(gè)字符位置開(kāi)場(chǎng)的個(gè)字符位置開(kāi)場(chǎng)的n 個(gè)字符。個(gè)字符。6數(shù)值轉(zhuǎn)換為字符串過(guò)程數(shù)值轉(zhuǎn)換為字符串過(guò)程格式:格式:str(v,s);功能:將數(shù)值功能:將數(shù)值V轉(zhuǎn)換成字符串,存放在字符串變量轉(zhuǎn)換成字符串,存放在字符串變量s中。中。7字符串轉(zhuǎn)換為數(shù)值過(guò)程字符串轉(zhuǎn)換

48、為數(shù)值過(guò)程格式:格式:val(s,v,c);功能:將數(shù)字串功能:將數(shù)字串s轉(zhuǎn)換成數(shù)值轉(zhuǎn)換成數(shù)值v,變量變量C記錄檢測(cè)出錯(cuò)的第一個(gè)字符的位置,當(dāng)未出錯(cuò)時(shí),記錄檢測(cè)出錯(cuò)的第一個(gè)字符的位置,當(dāng)未出錯(cuò)時(shí),C為為0。一、過(guò)程和函數(shù)統(tǒng)稱(chēng)子程序。子程序的執(zhí)行過(guò)程第四節(jié)第四節(jié) 函數(shù)與過(guò)程函數(shù)與過(guò)程函數(shù)1規(guī)范函數(shù):規(guī)范函數(shù): 我們?cè)?jīng)接觸過(guò)一些我們?cè)?jīng)接觸過(guò)一些Free Pascal提供一些內(nèi)部規(guī)范函數(shù),供編程時(shí)調(diào)用,提供一些內(nèi)部規(guī)范函數(shù),供編程時(shí)調(diào)用,象求象求|X|可調(diào)用可調(diào)用ABSX,求可調(diào)用,求可調(diào)用SQRT(49)等等。實(shí)踐上,這些函數(shù)是等等。實(shí)踐上,這些函數(shù)是一些包含在一些包含在Free Pascal

49、系統(tǒng)中供用戶(hù)調(diào)用的程序模塊,分別命名為:系統(tǒng)中供用戶(hù)調(diào)用的程序模塊,分別命名為:ABS,SQRT等。因此,只需在程序中遵照一定的調(diào)用規(guī)那么,寫(xiě)出某一函等。因此,只需在程序中遵照一定的調(diào)用規(guī)那么,寫(xiě)出某一函數(shù)名以及此函數(shù)所需的參數(shù),系統(tǒng)就會(huì)自調(diào)用這些程序模塊,求得運(yùn)算結(jié)果。數(shù)名以及此函數(shù)所需的參數(shù),系統(tǒng)就會(huì)自調(diào)用這些程序模塊,求得運(yùn)算結(jié)果。如:如:ABS(X) SQRT(12+X)等等。等等。2自定義函數(shù)自定義函數(shù) 系統(tǒng)提供的這些內(nèi)部規(guī)范函數(shù),雖然運(yùn)用起來(lái)非常方便,但其中種類(lèi)和系統(tǒng)提供的這些內(nèi)部規(guī)范函數(shù),雖然運(yùn)用起來(lái)非常方便,但其中種類(lèi)和數(shù)量畢竟有限,不能夠包含用戶(hù)的一切需求。在實(shí)踐問(wèn)題中,經(jīng)常

50、會(huì)遇到諸數(shù)量畢竟有限,不能夠包含用戶(hù)的一切需求。在實(shí)踐問(wèn)題中,經(jīng)常會(huì)遇到諸如求如求N!這一類(lèi)的運(yùn)算,系統(tǒng)中那么沒(méi)有提供相應(yīng)的函數(shù)可供調(diào)用。為此,!這一類(lèi)的運(yùn)算,系統(tǒng)中那么沒(méi)有提供相應(yīng)的函數(shù)可供調(diào)用。為此,F(xiàn)ree Pascal允許用戶(hù)自行定義一些函數(shù),我們稱(chēng)之為自定義函數(shù)。這種自允許用戶(hù)自行定義一些函數(shù),我們稱(chēng)之為自定義函數(shù)。這種自定義函數(shù)一經(jīng)定義,就可象內(nèi)部函數(shù)一樣,經(jīng)過(guò)函數(shù)名調(diào)用它。但要留意:定義函數(shù)一經(jīng)定義,就可象內(nèi)部函數(shù)一樣,經(jīng)過(guò)函數(shù)名調(diào)用它。但要留意:這些函數(shù)必需在程序中定義,也只能在本程序中運(yùn)用。這些函數(shù)必需在程序中定義,也只能在本程序中運(yùn)用。 函數(shù)定義及調(diào)用函數(shù)定義及調(diào)用一、一、

51、Pascal規(guī)范函數(shù):規(guī)范函數(shù):abs(x)、sqr(x)、等、等二、用戶(hù)自定義函數(shù):二、用戶(hù)自定義函數(shù):函數(shù)定義的格式:函數(shù)定義的格式:function ():;函數(shù)首部函數(shù)首部begin;:=; end;函數(shù)體函數(shù)體函數(shù)闡明函數(shù)闡明注:1)函數(shù)首部以關(guān)鍵字function開(kāi)頭。2)括號(hào)內(nèi)為方式參數(shù)表,即形參表。3)函數(shù)的類(lèi)型也就是函數(shù)值的類(lèi)型。4)函數(shù)的執(zhí)行部分以begin開(kāi)頭,以end終了(end后有一個(gè)分號(hào))。在執(zhí)行部分,至少要有一條將函數(shù)值傳給函數(shù)名的賦值語(yǔ)句,即::=;這樣就由函數(shù)名將求得的函數(shù)值帶回調(diào)用該函數(shù)的程序中。【例】 求3!+5!+7!的值分析:可以先編寫(xiě)一個(gè)求n!的函數(shù)

52、fac。 Program exp7_1 ; 程序首部 Var s,: real ; x :integer ;function fac(n:integer): real ; 函數(shù)首部函數(shù)值的類(lèi)型是實(shí)型 var 部分變量闡明 k,t:integer; begin t:=1; for k:=2 to n do t:=t*k; fac:=t; 將結(jié)果賦值給函數(shù) end;begin 主程序調(diào)用 s:=fac(3) + fac(5) +fac(7) ; writeln( s =,s) end.函數(shù)的調(diào)用函數(shù)的調(diào)用: 可以在任何與函數(shù)值類(lèi)型兼容的可以在任何與函數(shù)值類(lèi)型兼容的表達(dá)式中調(diào)用函數(shù),或者說(shuō),函數(shù)調(diào)表

53、達(dá)式中調(diào)用函數(shù),或者說(shuō),函數(shù)調(diào)用只能出如今允許表達(dá)式出現(xiàn)的地方,用只能出如今允許表達(dá)式出現(xiàn)的地方,或作為表達(dá)式的一個(gè)因子。函數(shù)調(diào)用或作為表達(dá)式的一個(gè)因子。函數(shù)調(diào)用方式與規(guī)范函數(shù)的調(diào)用方式一樣。方式與規(guī)范函數(shù)的調(diào)用方式一樣。函數(shù)調(diào)用的普通格式:函數(shù)調(diào)用的普通格式: 函數(shù)名真實(shí)參數(shù)表函數(shù)名真實(shí)參數(shù)表 闡明:闡明:真實(shí)參數(shù)簡(jiǎn)稱(chēng)實(shí)參。實(shí)參的個(gè)數(shù)必需與函數(shù)闡明中形參的個(gè)數(shù)一致,實(shí)真實(shí)參數(shù)簡(jiǎn)稱(chēng)實(shí)參。實(shí)參的個(gè)數(shù)必需與函數(shù)闡明中形參的個(gè)數(shù)一致,實(shí)參的類(lèi)型與形參的類(lèi)型該當(dāng)一一對(duì)應(yīng)。參的類(lèi)型與形參的類(lèi)型該當(dāng)一一對(duì)應(yīng)。調(diào)用函數(shù)時(shí),普通的,實(shí)參必需有確定的值。調(diào)用函數(shù)時(shí),普通的,實(shí)參必需有確定的值。函數(shù)調(diào)用的步驟為:

54、計(jì)算實(shí)參的值,函數(shù)調(diào)用的步驟為:計(jì)算實(shí)參的值,“賦給對(duì)應(yīng)的形參;賦給對(duì)應(yīng)的形參;函數(shù)的定義是靜態(tài)的,假設(shè)定義后未被調(diào)用,那么該函數(shù)永遠(yuǎn)不會(huì)被執(zhí)行。函數(shù)的定義是靜態(tài)的,假設(shè)定義后未被調(diào)用,那么該函數(shù)永遠(yuǎn)不會(huì)被執(zhí)行。調(diào)用的自定義函數(shù)應(yīng)在調(diào)用之前已定義過(guò)。調(diào)用的自定義函數(shù)應(yīng)在調(diào)用之前已定義過(guò)。自定義函數(shù)中的形參,因不是實(shí)踐存在的變量,故又稱(chēng)為虛擬變量,它自定義函數(shù)中的形參,因不是實(shí)踐存在的變量,故又稱(chēng)為虛擬變量,它們并不占用內(nèi)存單元,只需在調(diào)用函數(shù)時(shí),才暫時(shí)開(kāi)辟相應(yīng)的內(nèi)存單元,們并不占用內(nèi)存單元,只需在調(diào)用函數(shù)時(shí),才暫時(shí)開(kāi)辟相應(yīng)的內(nèi)存單元,存放真實(shí)參數(shù)的值。真實(shí)參數(shù)表是一些由逗號(hào)分隔的參數(shù),它們是在

55、存放真實(shí)參數(shù)的值。真實(shí)參數(shù)表是一些由逗號(hào)分隔的參數(shù),它們是在調(diào)用函數(shù)時(shí)所用的自變量。只需在調(diào)用函數(shù)時(shí),才將真實(shí)參數(shù)的值傳送到調(diào)用函數(shù)時(shí)所用的自變量。只需在調(diào)用函數(shù)時(shí),才將真實(shí)參數(shù)的值傳送到形參的暫時(shí)內(nèi)存單元中去??梢?jiàn),形參本質(zhì)上是實(shí)參的一個(gè)形參的暫時(shí)內(nèi)存單元中去??梢?jiàn),形參本質(zhì)上是實(shí)參的一個(gè)“替身。替身?!纠浚河?jì)算右圖五邊形的面積。【例】:計(jì)算右圖五邊形的面積。program ex3; var b1,b2,b3,b4,b5,b6,b7,s:real;function area(a,b,c:real):real; varp:real; beginp:=(a+b+c)/2;area:=sqrt(

56、p*(p-a)*(p-b)*(p-c);end; beginwriteln(input b1-b7:);readln(b1,b2,b3,b4,b5,b6,b7);s:=area(b1,b5,b6)+area(b2,b6,b7)+area(b3,b4,b7);writeln(s=,s:10:3); end.b7b4b3b2b1b5b6過(guò)程定義及調(diào)用 一、規(guī)范過(guò)程:read、readln、write、writeln等二、用戶(hù)自定義過(guò)程:過(guò)程定義的格式:procedure ();過(guò)程首部begin; 過(guò)程體; end; 闡明闡明: 過(guò)程首部以關(guān)鍵字過(guò)程首部以關(guān)鍵字procedure開(kāi)頭。開(kāi)頭。過(guò)程名

57、是用戶(hù)自定義的標(biāo)識(shí)符,只用來(lái)標(biāo)識(shí)一個(gè)過(guò)程,不過(guò)程名是用戶(hù)自定義的標(biāo)識(shí)符,只用來(lái)標(biāo)識(shí)一個(gè)過(guò)程,不能代表任何數(shù)據(jù),因此不能闡明能代表任何數(shù)據(jù),因此不能闡明“過(guò)程的類(lèi)型。過(guò)程的類(lèi)型。形參表的普通格式方式如下:形參表的普通格式方式如下:var 變量名表:類(lèi)型;變量名表:類(lèi)型;var 變量名表:類(lèi)型。其中帶變量名表:類(lèi)型。其中帶var的稱(chēng)為變量形參,不帶的稱(chēng)為變量形參,不帶var的稱(chēng)為值形參。的稱(chēng)為值形參。 在過(guò)程體內(nèi)運(yùn)用的有關(guān)常量、變量等必需在過(guò)程體的闡明在過(guò)程體內(nèi)運(yùn)用的有關(guān)常量、變量等必需在過(guò)程體的闡明部分內(nèi)加以闡明或定義。部分內(nèi)加以闡明或定義。與函數(shù)體不同的是:函數(shù)體的執(zhí)行部分至少有一個(gè)語(yǔ)句給與函

58、數(shù)體不同的是:函數(shù)體的執(zhí)行部分至少有一個(gè)語(yǔ)句給函數(shù)名賦值,而過(guò)程體的執(zhí)行部分不能給過(guò)程名賦值,由于函數(shù)名賦值,而過(guò)程體的執(zhí)行部分不能給過(guò)程名賦值,由于過(guò)程名不能代表任何數(shù)據(jù)。過(guò)程名不能代表任何數(shù)據(jù)。三、過(guò)程調(diào)用:三、過(guò)程調(diào)用:【例】:計(jì)算五邊形的面積?!纠浚河?jì)算五邊形的面積。program ex3_1; var b1,b2,b3,b4,b5,b6,b7,s,sum:real;procedure area(a,b,c:real;var s:real); var p:real; begin p:=(a+b+c)/2; s:=sqrt(p*(p-a)*(p-b)*(p-c); end; begin

59、writeln(input b1-b7:);readln(b1,b2,b3,b4,b5,b6,b7);sum:=0;area(b1,b5,b6,s);sum:=sum+s;area(b2,b6,b7,s);sum:=sum+s;area(b3,b4,b7,s);sum:=sum+s;writeln(s=,s:10:3); end.過(guò)程過(guò)程主程序主程序過(guò)程過(guò)程調(diào)用調(diào)用方式參數(shù)表方式參數(shù)表 過(guò)程的調(diào)用過(guò)程的調(diào)用 過(guò)程調(diào)用是經(jīng)過(guò)一條獨(dú)立的過(guò)程調(diào)用語(yǔ)句來(lái)過(guò)程調(diào)用是經(jīng)過(guò)一條獨(dú)立的過(guò)程調(diào)用語(yǔ)句來(lái)實(shí)現(xiàn)的,它與函數(shù)調(diào)用完全不同。過(guò)程調(diào)用與調(diào)實(shí)現(xiàn)的,它與函數(shù)調(diào)用完全不同。過(guò)程調(diào)用與調(diào)與規(guī)范過(guò)程如與規(guī)范過(guò)程如wr

60、ite,read等的方式一樣。調(diào)等的方式一樣。調(diào)用的普通格式為:用的普通格式為:過(guò)程名過(guò)程名 或或 過(guò)程名真實(shí)參數(shù)表過(guò)程名真實(shí)參數(shù)表闡明闡明: 實(shí)參的個(gè)數(shù)、類(lèi)型必需與形參一一對(duì)應(yīng)。實(shí)參的個(gè)數(shù)、類(lèi)型必需與形參一一對(duì)應(yīng)。對(duì)應(yīng)于值形參的實(shí)參可以是表達(dá)式,對(duì)應(yīng)于變量形參的實(shí)參只能是變量。對(duì)應(yīng)于值形參的實(shí)參可以是表達(dá)式,對(duì)應(yīng)于變量形參的實(shí)參只能是變量。過(guò)程調(diào)用的步驟為:計(jì)算實(shí)參的值;將值或變量的過(guò)程調(diào)用的步驟為:計(jì)算實(shí)參的值;將值或變量的“地址傳送給對(duì)應(yīng)地址傳送給對(duì)應(yīng)的形參;執(zhí)行過(guò)程體;前往調(diào)用途。的形參;執(zhí)行過(guò)程體;前往調(diào)用途。1函數(shù)往往只為求一個(gè)函數(shù)值;函數(shù)往往只為求一個(gè)函數(shù)值; 過(guò)程普通會(huì)被設(shè)計(jì)成

溫馨提示

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

評(píng)論

0/150

提交評(píng)論