版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
ObjectPascal語言基礎(chǔ)2.1基本概念
Delphi7.0是一個基于ObjectPascal語言的Windows應(yīng)用程序開發(fā)系統(tǒng),在所有的事件處理過程和應(yīng)用程序中都是使用它來編寫程序代碼。ObjectPascal編程語言是在Pascal語言的基礎(chǔ)上發(fā)展起來的,它繼承了Pascal語法嚴(yán)謹(jǐn)、數(shù)據(jù)結(jié)構(gòu)豐富等優(yōu)點,同時融入了面向?qū)ο缶幊痰恼Z法要素,使之成為一種優(yōu)秀的面向?qū)ο缶幊陶Z言。2.1.1保留字
首先介紹ObjectPascal語言的最基本內(nèi)容:保留字和標(biāo)志符。保留字(ReservedWords)是由系統(tǒng)規(guī)定的、具有特定意義的單詞。在編程時不能被重新定義或另作他用。ObjectPascal語言規(guī)定的保留字有65個,詳見本教程P23頁表2-1。
除了上述的保留字外,Private、Protected、Public、Published和Automated在定義對象類型時也作為保留字,而在其他場合則作為指令符。單詞at和on也具有特殊的含義。
注意:ObjectPascal編程語言和許多編程語言不同,它對單詞的大小寫是不敏感的。ObjectPascal不區(qū)分大小寫。IN、in和In都被看做是同樣的意義。2.1.2標(biāo)識符
標(biāo)識符是ObjectPascal語言中用來表示應(yīng)用程序量的名稱。包括:變量(Var)、常量(Const)、類型(Type)、過程(Procedure)、方法(Method)等。標(biāo)識符分為標(biāo)準(zhǔn)標(biāo)識符和自定義標(biāo)識符兩類。
標(biāo)準(zhǔn)標(biāo)識符是ObjectPascal語言系統(tǒng)預(yù)先分配給標(biāo)準(zhǔn)常量、標(biāo)準(zhǔn)類型、標(biāo)準(zhǔn)函數(shù)、標(biāo)準(zhǔn)過程及標(biāo)準(zhǔn)文件使用的標(biāo)識符。如標(biāo)準(zhǔn)常量:False、True;標(biāo)準(zhǔn)類型:integer、char、real;標(biāo)準(zhǔn)函數(shù):Abs、Sqr、Cos等。自定義標(biāo)識符是程序員根據(jù)需要為自己定義的常量、變量、類型、函數(shù)、過程以及所編寫的程序名等。ObjectPascal標(biāo)識符由字母、數(shù)字、下劃線組成,其規(guī)定為:(1)必須以字母或下劃線開始;(2)不能與保留字相同;(3)避免與ObjectPascal已經(jīng)使用的標(biāo)準(zhǔn)標(biāo)識符相同。2.1.3指令符
指令符(directives)也是具有特殊意義的單詞,但與保留字不同的是可以將指令符定義為標(biāo)識符,ObjectPascal不會指示出錯,但這容易混淆。ObjectPascal規(guī)定的指令符見表2-2。absoluteabstractassemblerautomatedcdcelcontainsdefaultdispiddynamicexportexternalfarforwardimplementsindexmessagenamenearnodefaultoverloadoverridepackagepascalprivateprotectedpublicreadreadonlyregisterretroducerequiresresidentsafecallstdcallstoredvirtualwritewriteonly表2-2ObjectPascal語言規(guī)定的指令字2.2數(shù)據(jù)類型
描述客觀事物的數(shù)、字符以及所有能輸入到計算機中并被計算機程序加工處理的符號的集合稱為數(shù)據(jù)。數(shù)據(jù)的一個重要特征就是其所屬的數(shù)據(jù)類型,數(shù)據(jù)類型不僅確定了該類數(shù)據(jù)的表示形式和取值范圍,而且還確定了數(shù)據(jù)所能夠參加的各種運算。ObjectPascal提供了多種數(shù)據(jù)類型,包括標(biāo)準(zhǔn)數(shù)據(jù)類型和高級數(shù)據(jù)類型。標(biāo)準(zhǔn)數(shù)據(jù)類型屬于ObjectPascal內(nèi)部約定的數(shù)據(jù)類型,無需定義就可以直接使用。標(biāo)準(zhǔn)數(shù)據(jù)類型有整型(Integer)、實型(Real)、字符型(Character)、字符串型(String)、布爾型(Boolean)五種。高級數(shù)據(jù)類型體現(xiàn)了特殊的數(shù)據(jù)結(jié)構(gòu),在使用之前必須由用戶自己進(jìn)行定義。高級數(shù)據(jù)類型有枚舉型(Enumerated)、子界型(Subrange)、集合類型(Set)、數(shù)組類型(Array)、記錄類型(Record)文件類型(File)、類類型(Class)、類引用類型(ClassReference)、接口類型(Interface)、指針類型(Pointer)、過程類型(Procedural)、可變類型(Variant)。2.2.1整型
整數(shù)包括正整數(shù)、負(fù)整數(shù)和零。整型是存儲整數(shù)數(shù)據(jù)的類型。ObjectPascal包括9種形式的整型數(shù)據(jù),詳見本教程P25頁表2-3。
前2種為一般整型,后7種為基本整型,應(yīng)盡量使用Integer、Cardinal兩種基本類型,因為它們在各種CPU和操作系統(tǒng)中都提供最佳的性能。通常,作用于整數(shù)的算術(shù)運算符返回Integer類型的值。在當(dāng)前執(zhí)行中,等價于32位的長整型(LongInt)。僅當(dāng)對Int64類型執(zhí)行運算時,運算結(jié)果返回Int64類型。因此,下面的代碼執(zhí)行后得到的結(jié)果是不正確的:vari:Integer;j:Int64;...i:=High(Integer);//取Integer類型中的最大值j:=i+1;要使返回值是Int64類型,在上面的情況中可以將
i轉(zhuǎn)換為Int64。代碼如下:...j:=Int64(i)+1;2.2.2實型
實數(shù)是最常用的數(shù)據(jù)類型。在ObjectPascal中實數(shù)有兩種表示方法:小數(shù)表示法和科學(xué)計數(shù)法。例如:-3.6,2.4e0,–1.2e-5,3E7
小數(shù)表示法與日常數(shù)學(xué)中所用表示方法相同??茖W(xué)計數(shù)法中,e之前表示有效數(shù)字,e之后數(shù)字表示10的冪。即–1.2e-5=(-1.2)×10-5=-0.000012
需要注意的是小數(shù)表示法中小數(shù)點前后都必須有數(shù)字,科學(xué)計數(shù)法中e前后都必須有數(shù)字,e可以大寫成E。實型是存儲實數(shù)數(shù)據(jù)的類型。ObjectPascal包括5種形式的實型數(shù)據(jù),詳見本教程P26表2-4。
(圖1-2)
前六種為基本數(shù)據(jù)類型,Real為一般實型。最常用的實型是Real類型,它與Double等價。Currency是專為處理貨幣而設(shè)計的,該類型與其他實型進(jìn)行運算時,Delphi自動將結(jié)果轉(zhuǎn)化為Currency類型。2.2.3字符型
字符型是存儲單個字符的類型。ObjectPascal包括3種形式的字符型數(shù)據(jù),詳見表2-5。基本字符類型是AnsiChar和WideChar。AnsiChar的尺寸是一個字節(jié)(8位),其值參照本地字符集。AnsiChar最初模仿ANSI字符集,但現(xiàn)在用于擴大到當(dāng)前的本地字符集。WideChar字符用多于一個字節(jié)來表示每個字符。WideChar的尺寸是一個字(16位),其字符順序參照Unicode字符集,Unicode字符集中的前256個字符對應(yīng)ANSI字符。一般字符類型是Char,等價于AnsiChar。字符類型數(shù)據(jù)的表示方法是用兩個單引號括起單個字符如:'A'、'6'、'.'。
''表示空格符。表2-5ObjectPascal語言的字符型類型名稱字節(jié)數(shù)取值范圍Ansi字符型AnsiChar1擴展ANSI字符集寬字符型WideChar2UniCode字符集字符型Char1(2)擴展ANSI字符集2.2.4字符串型
字符串型是存儲字符串?dāng)?shù)據(jù)的類型。ObjectPascal包括4種形式的字符串型數(shù)據(jù),詳見本教程P27頁表2-6。
保留字string的作用如一般類型的標(biāo)識符。例如: varS:string;
創(chuàng)建了變量S,用于保存串。在默認(rèn)的編譯指示{$H+}狀態(tài)下,編譯器將string(后面沒有跟隨方括號和數(shù)字)解釋為AnsiString;使用編譯指示{$H-}時,解釋為ShortString。
ShortString類型串的長度在0到255之間。ShortString串的長度可以動態(tài)改變,其占用的內(nèi)存是靜態(tài)的,總是256字節(jié);第一個字節(jié)存儲串的長度,其余255個字節(jié)存儲串中的字符。
AnsiString也叫做長串(longstring),用來表示動態(tài)分配的串。
WideString類型表示16位Unicode字符的動態(tài)分配的串。WideString類型大部分的特性與AnsiString類型相似。
ObjectPascal還支持其他最大長度在0到255之間的短串??梢酝ㄟ^在保留字string后邊附加方括號括起來的數(shù)字來表示。例如: varMyString:string[100];
創(chuàng)建了一個叫做MyString的變量,其最大長度為100個字符。2.2.5布爾型
布爾型數(shù)據(jù)用于進(jìn)行邏輯運算,布爾型數(shù)據(jù)的值只有兩個:True(真)和False(假)。ObjectPascal包括4種形式的布爾型數(shù)據(jù),詳見表2-7。Boolean類型是編程時常用的布爾類型,其他三種類型是為了兼容其他語言而設(shè)置的。Boolean類型的取值為False和True兩個符號常量。在ObjectPascal中,布爾表達(dá)式不能被等同為整數(shù)或?qū)崝?shù)。因此,如果x是一個整數(shù)類型的變量,那么語句 ifxthen...;將產(chǎn)生一個編譯錯誤??梢詫⑸蟼€語句改為: ifx=1then...;
表2-7ObjectPascal語言的布爾型類型名稱字節(jié)數(shù)取值布爾型Boolean1只能為False(0)或True(1)字節(jié)布爾型ByteBool1False或True(非False)寬布爾型WordBool2False或True(非False)長布爾型LongBool4False或True(非False)2.2.6序數(shù)類型1.序數(shù)類型
序數(shù)類型包括整數(shù)、字符、布爾、枚舉、子界等類型。序數(shù)類型定義了一個有序的值的集合。集合中的每個值(除第一個)都有一個唯一的前驅(qū)值,每個值(除最后一個)都有一個唯一的后繼值。對于第一個序數(shù)的前趨和最后一個序數(shù)的后繼在此不做討論。此外,每個值都有一個序號,類型中的序號決定值在類型中的順序。大多數(shù)情況下,如果一個值的序號為n,那么它的前驅(qū)值的序號為n–1,后繼值的序號為n+1。
2.序數(shù)函數(shù)(1)序數(shù)函數(shù)Ord()返回數(shù)據(jù)的序數(shù)。例如:Ord(6)的返回值為6,表示整數(shù)6的序數(shù)是其本身。(2)前趨函數(shù)Pred()返回數(shù)據(jù)的前趨值。例如:Pred('e')的返回值為'd',表示字符e的前趨是字符d。(3)后繼函數(shù)Succ()返回數(shù)據(jù)的后繼值。例如:Succ(False)的返回值為True,表示布爾型數(shù)據(jù)True是False的后繼。(4)首序數(shù)函數(shù)Low()返回序數(shù)類型的數(shù)據(jù)中序數(shù)最小的一個數(shù)據(jù)。(5)末序數(shù)函數(shù)High()返回序數(shù)類型的數(shù)據(jù)中序數(shù)最大的一個數(shù)據(jù)。2.3常量與變量
在程序設(shè)計中常用到兩種形式的數(shù)據(jù),一種是在程序執(zhí)行過程中其值保持不變的數(shù)據(jù),稱為常量;另一種是在程序執(zhí)行過程中其值可以改變的數(shù)據(jù),稱為變量。
常量是一種在程序執(zhí)行進(jìn)程中其值保持不變的數(shù)據(jù)。根據(jù)使用的方式不同,程序中的常量分為直接常量、真實常量與類型常量。2.3.1常量1.直接常量直接常量是指在程序中直接引用的整數(shù)、實數(shù)、字符、字符串或其他不同類型的常數(shù)。下列常數(shù)均屬于直接常量。(1)帶有正負(fù)號的整數(shù)或無符號的整數(shù),如:-1,+2,2003,0。(2)實數(shù),包括定點實數(shù)與浮點實數(shù)兩種表示形式。定點實數(shù)即小數(shù)形式,如:0.03,-32.48,+102.9,0.0。浮點實數(shù)即指數(shù)形式,如:+2.56E-5,-1.2E+8,3.2E12。2.3.1常量(2)2.真實常量真實常量是指一個被聲明的標(biāo)識符,它的值不能改變。如果在一個程序中,某一個常數(shù)反復(fù)多次出現(xiàn)可以定義一個標(biāo)識符來代表該常數(shù)。定義常量時使用常量說明語句,語法格式為:const<常量名1>=<常量值1>…<常量名n>=<常量值n>
其中const是ObjectPascal的保留字,表示常量定義的開始。<常量名>即常量的標(biāo)識符,<常量值>是直接常量或常量組成的表達(dá)式。例如:constPI=3.1415926;K=PI/180;
不能在程序中給常量另行賦值,否則會導(dǎo)致語法錯誤。(3)字符,由單撇號括起來的單個字符,如:'a','C','6','+'。(4)字符串,由雙撇號括起來的字符串,如:"hello","abc123","3.234"。(5)布爾型常數(shù),只有兩個值True和False。2.3.1常量(3)3.類型常量類型常量不同于真實常量,它能保存數(shù)組、記錄等高級數(shù)據(jù)類型的值。定義類型常量的語法格式如下:
const <常量名>:<類型名>=<常量值>;例如:constHello:string='Hello';Max:Integer=100;Digits:array[0..9]ofChar=('0','1','2','3','4','5','6','7',‘8’,‘9’);//定義了一個常量用于保存數(shù)組在缺省的編譯狀態(tài){$J-}中,類型常量不能被賦予新的值,這時的類型常量相當(dāng)于只讀變量。然而,如果編譯指示{$J+}有效,那么類型常量可以被賦予新的值,這時的類型常量相當(dāng)于被初始化過的變量。
變量是程序代碼中代表一個內(nèi)存地址的標(biāo)識符,而此地址的內(nèi)存內(nèi)容在程序代碼執(zhí)行時可以被改變。在使用變量前必須對它進(jìn)行說明,即對它進(jìn)行命名,并說明它的類型。變量就像數(shù)據(jù)容器,而且由于變量被定義了類型,只能用于儲存與其定義類型相兼容的數(shù)據(jù)。2.3.2變量(1)變量有如下三個主要特征。(1)變量名:即變量的標(biāo)識符,用于對所代表的內(nèi)存單元的引用。(2)類型:變量的類型決定了變量中所存放數(shù)據(jù)的范圍、有效的操作、存儲空間的大小和格式。(3)變量值:變量所代表的內(nèi)存單元中的數(shù)據(jù)值。程序中的變量必須先聲明才能使用。1.變量的聲明變量在單元、函數(shù)或過程的聲明部分進(jìn)行聲明,聲明位置決定了變量的作用范圍。變量聲明的格式為:2.3.2變量(2)
聲明多個同類型的變量時可采用如下格式:
var<變量名1>…<變量名n>:<類型名>
其中var是ObjectPascal的保留字,表示變量定義的開始,<變量名>可以是任意合法的標(biāo)識符,<類型名>可以是ObjectPascal的基本數(shù)據(jù)類型也可以是由用戶定義的高級數(shù)據(jù)類型。聲明在過程或函數(shù)內(nèi)部的變量有時叫做局部變量,而在應(yīng)用程序開始聲明的變量叫做全局變量。全局變量可以在聲明時對它進(jìn)行初始化,格式為:
var<變量名>:<類型名>=<常量表達(dá)式>
其中常量表達(dá)式的值必須與變量定義的類型相兼容。var<變量名1>:<類型名1>…<變量名n>:<類型名n>2.變量使用
變量經(jīng)過聲明之后,就可以在程序中使用了,通??梢酝ㄟ^賦值語句給變量賦值。如果沒有明確初始化全局變量,那么編譯器將對其初始化為0。不同的是,局部變量不能在其聲明中被初始化并且在其被賦值之前包含的是隨機數(shù)據(jù)。一旦聲明了一個變量,應(yīng)及時對它賦值進(jìn)行初始化,未經(jīng)初始化的變量的值是一個不確定的隨機數(shù),如果該變量參與運算或是出現(xiàn)程序流程中將會產(chǎn)生意想不到的后果。初始化變量的最簡單方法就是給變量賦值。2.3.2變量(3)2.4運算符與表達(dá)式
運算是對數(shù)據(jù)進(jìn)行加工處理的過程,描述各種不同運算的符號稱為運算符,而參與運算的數(shù)據(jù)稱為操作數(shù)。表達(dá)式是表示某個求值規(guī)則的運算公式,它由運算符和圓括號將常量、變量等操作數(shù)以合理的形式組合而成。表達(dá)式可以用來執(zhí)行運算、操作或測試數(shù)據(jù),每個表達(dá)式都會產(chǎn)生惟一的值。表達(dá)式的類型由運算符的類型決定。在ObjectPascal中有以下幾種運算符:算術(shù)運算符、位運算符、字符串運算符、關(guān)系運算符、布爾運算符、集合運算符、指針運算符、類運算符和@運算符。本章中先介紹幾種常用的運算符。1.算術(shù)運算符
ObjectPascal有8個算術(shù)運算符,在這8個算術(shù)運算符中,除取正“+”、取負(fù)“-”是單目運算符外,其他均為雙目運算符,詳見本教程P31頁表2-8。其中+、-、*運算的含義與數(shù)學(xué)中的相同,參加運算的數(shù)可以是整型也可以是實型,結(jié)果由Delphi7.0自動向精度高的數(shù)據(jù)類型轉(zhuǎn)化。參加除法運算“/”的數(shù)無論是整型或是實型,結(jié)果都是實型。參加整數(shù)除法“div”和求余運算“mod”的數(shù)必須是
2.4.1算術(shù)運算符2.4.1算術(shù)運算符
2.算術(shù)表達(dá)式算術(shù)表達(dá)式是由算術(shù)運算符、數(shù)值型常量、變量、圓括號組成,其運算結(jié)果為一數(shù)值。 例如:3*4+(90-5)/4*2的值為54.5。在書寫算術(shù)表達(dá)式時應(yīng)當(dāng)注意以下兩點:(1)在數(shù)學(xué)中可以省略乘號,但在算術(shù)表達(dá)式書寫中不可以省略,如在數(shù)學(xué)中相乘可以寫成2x,但在編程中必須寫成2*x;(2)所有括號都用小括號(),括號必須配對,例如數(shù)學(xué)式3[x+(y-z)]在編程中必須寫成3*(x+(y-z))。整型,結(jié)果也是整型,分別是除法的商和余數(shù)。在表達(dá)式a/b、adivb、amodb中,如果b的值為0將會觸發(fā)一個錯誤。 例如:10mod3的值為1,10div3的值為3。2.4.2位運算符
位運算符是指對操作數(shù)進(jìn)行的按位邏輯運算。其運算對象是整數(shù),運算結(jié)果也是整數(shù),ObjectPascal有6個邏輯運算符,詳見表2-9。and、or、not和xor運算符當(dāng)運算符兩側(cè)為數(shù)值數(shù)據(jù),則將數(shù)值數(shù)據(jù)轉(zhuǎn)換為二進(jìn)制數(shù)(補碼形式)進(jìn)行按位運算。設(shè)x值為3,y值為5,在內(nèi)存中按二進(jìn)制保存,即x,y值分別為00000011,00000101。按位計算結(jié)果如下:notx的值為 11111100(十進(jìn)制數(shù)–4)xandy的值為 00000001(十進(jìn)制數(shù)1)xory的值為 00000111(十進(jìn)制數(shù)7)xxory的值為 00000110(十進(jìn)制數(shù)6)xshl2的值為 00001100(十進(jìn)制數(shù)12)xshr1的值為 00000010(十進(jìn)制數(shù)2)運算符名稱舉例運算符取值名稱舉例not按位取反notxxor按位異或xxoryand按位與xandyshl左移位xshl2or按位或xoryshr右移位yshr1表2-9ObjectPascal語言的位運算符2.4.3字符串運算符ObjectPascal只有一種字符串運算符,即連接運算符“+”。該運算符用于連接兩個或更多的字符串。當(dāng)兩個字符串用連接運算符連接起來后,第二個字符串直接添加到第一個字符串的尾部,結(jié)果是一個更長的包含兩個字符串的全部內(nèi)容的字符串,也可以把多個字符串連接起來,每兩個字符串之間都要用“+”號分隔。例如:'abcdef'+'123'連接后結(jié)果為:'abcdef123''abc'+'123'+'xyz'連接后結(jié)果為:'abc123xyz‘
加號(+)運算符對串的操作與其對數(shù)字的操作有很大差異。對于數(shù)字a、b,表達(dá)式a+b與b+a是等價的,對于字符串s1、s2表達(dá)式s1+s2與s2+s1不是等價的。例如,當(dāng)s1為'hello'、s2為'world'時,s1+s2返回的值是'helloworld',而s2+s1返回的值是'worldhello'。也就是說,當(dāng)加號(+)作為字符串運算符時,操作數(shù)的位置順序直接影響運算結(jié)果。2.4.4關(guān)系運算符
關(guān)系運算符又稱為比較運算符,用來對兩個表達(dá)式的值進(jìn)行比較,比較的結(jié)果是一個布爾值(True或False)。關(guān)系表達(dá)式是指用關(guān)系運算符將兩個表達(dá)式連接起來的式子。ObjectPascal提供的關(guān)系運算符有9種,詳見表2-10。表2-10ObjectPascal語言的關(guān)系運算符運算符名稱舉例運算符取值名稱舉例=等于4=5值為False>大于4>5值為False<>不等于4<>5值為True<=小于或等于4<=5值為True<小于4<5值為True>=大于或等于4>=5值為False
關(guān)系運算符兩側(cè)可以是數(shù)值表達(dá)式、字符型表達(dá)式或其他表達(dá)式,也可以是常量、變量或函數(shù),但其兩側(cè)的數(shù)據(jù)類型必須是相容的標(biāo)準(zhǔn)數(shù)據(jù)類型或順序類型。各關(guān)系運算符的運算級別相同。運算次序為:先分別求出關(guān)系運算符兩側(cè)表達(dá)式的值,然后再把兩者的值進(jìn)行比較,兩者的關(guān)系若與關(guān)系運算符指示的一樣,則關(guān)系運算的結(jié)果為真(True),否則結(jié)果為假(False)。數(shù)值型數(shù)據(jù)按其數(shù)值大小進(jìn)行比較;字符型數(shù)據(jù)按其ASCII碼值進(jìn)行比較,比較字符串時先比較第一個字符,其中ASCII碼值較大的字符所在的字符串大。若第一個字符相同時比較第二個字符,…以此類推。順序類型數(shù)據(jù)的比較按照其序數(shù)進(jìn)行比較。2.4.5布爾運算符
在表示較為復(fù)雜的條件判斷時,必須使用布爾表示式。布爾表達(dá)式是指用布爾運算符連接若干關(guān)系表達(dá)式或布爾值組成的式子,如a≤x≤b可以表示為:a<=xAndx<=b,布爾表達(dá)式的值也是一個布爾值。ObjectPascal提供4種布爾運算符,詳見表2-11。表2-11ObjectPascal語言的布爾運算符運算符名稱舉例說明and與(4>5)and(3<4)該表達(dá)式值為False。當(dāng)兩個表達(dá)式的值均為真,結(jié)果才為真,否則結(jié)果為假。or或(4>5)or(3<4)該表達(dá)式值為True。兩個表達(dá)式中只要有一個表達(dá)式的值為真,結(jié)果就為真,兩個表達(dá)式的值均為假時結(jié)果為假。not非not(4>5)該表達(dá)式值為True。進(jìn)行取“反”操作,由真變成假或由假變成真。xor異或(4>5)xor(3<4)該表達(dá)式值為True。當(dāng)兩個布爾表達(dá)式值不同時結(jié)果為True。2.4.6運算符的優(yōu)先級
在一個表達(dá)式中進(jìn)行多種操作時,ObjectPascal會按一定的順序進(jìn)行求值,這個順序稱為運算符的優(yōu)先順序。在表達(dá)式中運算符的優(yōu)先級決定了運算被執(zhí)行的順序。常用運算符的優(yōu)先順序如本教程P34頁表2-12所示。
當(dāng)一個表達(dá)式中含有多個算術(shù)運算符時,將按優(yōu)先級由高到低的順序求值。優(yōu)先級高的運算符在優(yōu)先級低的運算符之前求值,優(yōu)先級相同時自左向右求值,如果表達(dá)式中含有括號,則先計算括號內(nèi)表達(dá)式的值,如果有多層,先計算最內(nèi)層括號中的表達(dá)式。例 如表達(dá)式:
x+y*z
先運算y乘以z,然后將乘積(運算結(jié)果)與x相加;運算符*先被執(zhí)行,因為它比運算符+優(yōu)先??梢允褂脠A括號超越所有的優(yōu)先級規(guī)則。圓括號中的表達(dá)式最先被求值,因此可以被視為一個單獨的操作數(shù)。例如表達(dá)式:
(x>y)and(x>z)
首先判斷x是否大于y,然后判斷x是否大于z,最后將兩次判斷的結(jié)果相與,只有當(dāng)x的值比y、z的值都大時此表達(dá)式的值才為true。該表達(dá)式不能書寫為:
x>yandx>z
根據(jù)運算符的優(yōu)先級,該表達(dá)式將解釋為:
(x>(yandx))>z
若x,y,z均為實型或整型數(shù)據(jù)時將產(chǎn)生編譯錯誤。圓括號通常使代碼更容易讀寫,在編程過程中應(yīng)當(dāng)合理使用圓括號。2.5語句
語句是執(zhí)行具體操作的指令,是由ObjectPascal的保留字、變量名、函數(shù)名及Delphi7.0編輯器可以識別的指令符號組成,建立正確的語句必須遵從ObjectPascal的語法規(guī)則。ObjectPascal程序語句書寫比較自由,可以把多個語句放在一個程序行中,也可把一個語句分多行書寫,但需要記住ObjectPascal的每個語句都必須以分號“;”結(jié)束。在編寫自己的ObjectPascal程序時,要注意程序的可讀性。Pascal語言是英式結(jié)構(gòu)語言,在程序中選擇合適的縮排、大小寫風(fēng)格,并在需要時將程序代碼分行,會使得程序代碼能夠很容易地被自己和他人讀懂。對于較為復(fù)雜的程序常用到復(fù)合語句,復(fù)合語句是指將多個語句用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度南京市租賃房屋租賃保證金合同4篇
- 2024年度青海省公共營養(yǎng)師之三級營養(yǎng)師考試題庫
- 2024年度黑龍江省公共營養(yǎng)師之三級營養(yǎng)師模擬考核試卷含答案
- 2024年度陜西省公共營養(yǎng)師之四級營養(yǎng)師模擬考試試卷B卷含答案
- 2024年度青海省公共營養(yǎng)師之三級營養(yǎng)師押題練習(xí)試題A卷含答案
- 二零二五年度危廢處理設(shè)施環(huán)境影響評價與審批合同3篇
- 二零二五年度電梯設(shè)備買賣及智能化升級改造合同4篇
- 二零二五年度木制品包裝設(shè)計與制作分包勞務(wù)合同2篇
- 2025年祠堂宗教活動用品采購與供應(yīng)合同4篇
- 2025版婚禮場地租賃及策劃服務(wù)合同2篇
- 南通市2025屆高三第一次調(diào)研測試(一模)地理試卷(含答案 )
- 2025年上海市閔行區(qū)中考數(shù)學(xué)一模試卷
- 2025中國人民保險集團校園招聘高頻重點提升(共500題)附帶答案詳解
- 重癥患者家屬溝通管理制度
- 法規(guī)解讀丨2024新版《突發(fā)事件應(yīng)對法》及其應(yīng)用案例
- IF鋼物理冶金原理與關(guān)鍵工藝技術(shù)1
- 銷售提成對賭協(xié)議書范本 3篇
- 勞務(wù)派遣招標(biāo)文件范本
- EPC項目階段劃分及工作結(jié)構(gòu)分解方案
- 信息安全意識培訓(xùn)課件
- 金字塔原理完整版本
評論
0/150
提交評論