![Object Pascal語(yǔ)言基礎(chǔ)課件_第1頁(yè)](http://file4.renrendoc.com/view14/M00/13/0A/wKhkGWeQ3C2ANTk3AADiDYOLlKA616.jpg)
![Object Pascal語(yǔ)言基礎(chǔ)課件_第2頁(yè)](http://file4.renrendoc.com/view14/M00/13/0A/wKhkGWeQ3C2ANTk3AADiDYOLlKA6162.jpg)
![Object Pascal語(yǔ)言基礎(chǔ)課件_第3頁(yè)](http://file4.renrendoc.com/view14/M00/13/0A/wKhkGWeQ3C2ANTk3AADiDYOLlKA6163.jpg)
![Object Pascal語(yǔ)言基礎(chǔ)課件_第4頁(yè)](http://file4.renrendoc.com/view14/M00/13/0A/wKhkGWeQ3C2ANTk3AADiDYOLlKA6164.jpg)
![Object Pascal語(yǔ)言基礎(chǔ)課件_第5頁(yè)](http://file4.renrendoc.com/view14/M00/13/0A/wKhkGWeQ3C2ANTk3AADiDYOLlKA6165.jpg)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
ObjectPascal語(yǔ)言基礎(chǔ)2.1基本概念
Delphi7.0是一個(gè)基於ObjectPascal語(yǔ)言的Windows應(yīng)用程式開發(fā)系統(tǒng),在所有的事件處理過(guò)程和應(yīng)用程式中都是使用它來(lái)編寫程式代碼。ObjectPascal編程語(yǔ)言是在Pascal語(yǔ)言的基礎(chǔ)上發(fā)展起來(lái)的,它繼承了Pascal語(yǔ)法嚴(yán)謹(jǐn)、數(shù)據(jù)結(jié)構(gòu)豐富等優(yōu)點(diǎn),同時(shí)融入了面向?qū)ο缶幊痰恼Z(yǔ)法要素,使之成為一種優(yōu)秀的面向?qū)ο缶幊陶Z(yǔ)言。2.1.1保留字
首先介紹ObjectPascal語(yǔ)言的最基本內(nèi)容:保留字和標(biāo)誌符。保留字(ReservedWords)是由系統(tǒng)規(guī)定的、具有特定意義的單詞。在編程時(shí)不能被重新定義或另作他用。ObjectPascal語(yǔ)言規(guī)定的保留字有65個(gè),詳見(jiàn)本教程P23頁(yè)表2-1。
除了上述的保留字外,Private、Protected、Public、Published和Automated在定義對(duì)象類型時(shí)也作為保留字,而在其他場(chǎng)合則作為指令符。單詞at和on也具有特殊的含義。
注意:ObjectPascal編程語(yǔ)言和許多編程語(yǔ)言不同,它對(duì)單詞的大小寫是不敏感的。ObjectPascal不區(qū)分大小寫。IN、in和In都被看做是同樣的意義。2.1.2識(shí)別字
識(shí)別字是ObjectPascal語(yǔ)言中用來(lái)表示應(yīng)用程式量的名稱。包括:變數(shù)(Var)、常量(Const)、類型(Type)、過(guò)程(Procedure)、方法(Method)等。識(shí)別字分為標(biāo)準(zhǔn)識(shí)別字和自定義識(shí)別字兩類。
標(biāo)準(zhǔn)識(shí)別字是ObjectPascal語(yǔ)言系統(tǒng)預(yù)先分配給標(biāo)準(zhǔn)常量、標(biāo)準(zhǔn)類型、標(biāo)準(zhǔn)函數(shù)、標(biāo)準(zhǔn)過(guò)程及標(biāo)準(zhǔn)檔使用的識(shí)別字。如標(biāo)準(zhǔn)常量:False、True;標(biāo)準(zhǔn)類型:integer、char、real;標(biāo)準(zhǔn)函數(shù):Abs、Sqr、Cos等。自定義識(shí)別字是程式員根據(jù)需要為自己定義的常量、變數(shù)、類型、函數(shù)、過(guò)程以及所編寫的程式名等。ObjectPascal識(shí)別字由字母、數(shù)字、下劃線組成,其規(guī)定為:(1)必須以字母或下劃線開始;(2)不能與保留字相同;(3)避免與ObjectPascal已經(jīng)使用的標(biāo)準(zhǔn)識(shí)別字相同。2.1.3指令符
指令符(directives)也是具有特殊意義的單詞,但與保留字不同的是可以將指令符定義為識(shí)別字,ObjectPascal不會(huì)指示出錯(cuò),但這容易混淆。ObjectPascal規(guī)定的指令符見(jiàn)表2-2。absoluteabstractassemblerautomatedcdcelcontainsdefaultdispiddynamicexportexternalfarforwardimplementsindexmessagenamenearnodefaultoverloadoverridepackagepascalprivateprotectedpublicreadreadonlyregisterretroducerequiresresidentsafecallstdcallstoredvirtualwritewriteonly表2-2ObjectPascal語(yǔ)言規(guī)定的指令字2.2數(shù)據(jù)類型
描述客觀事物的數(shù)、字元以及所有能輸入到電腦中並被電腦程式加工處理的符號(hào)的集合稱為數(shù)據(jù)。數(shù)據(jù)的一個(gè)重要特徵就是其所屬的數(shù)據(jù)類型,數(shù)據(jù)類型不僅確定了該類數(shù)據(jù)的表示形式和取值範(fàn)圍,而且還確定了數(shù)據(jù)所能夠參加的各種運(yùn)算。ObjectPascal提供了多種數(shù)據(jù)類型,包括標(biāo)準(zhǔn)數(shù)據(jù)類型和高級(jí)數(shù)據(jù)類型。標(biāo)準(zhǔn)數(shù)據(jù)類型屬於ObjectPascal內(nèi)部約定的數(shù)據(jù)類型,無(wú)需定義就可以直接使用。標(biāo)準(zhǔn)數(shù)據(jù)類型有整型(Integer)、實(shí)型(Real)、字元型(Character)、字串型(String)、布爾型(Boolean)五種。高級(jí)數(shù)據(jù)類型體現(xiàn)了特殊的數(shù)據(jù)結(jié)構(gòu),在使用之前必須由用戶自己進(jìn)行定義。高級(jí)數(shù)據(jù)類型有枚舉型(Enumerated)、子界型(Subrange)、集合類型(Set)、數(shù)組類型(Array)、記錄類型(Record)檔類型(File)、類類型(Class)、類引用類型(ClassReference)、介面類型(Interface)、指針類型(Pointer)、過(guò)程類型(Procedural)、可變類型(Variant)。2.2.1整型
整數(shù)包括正整數(shù)、負(fù)整數(shù)和零。整型是存儲(chǔ)整數(shù)數(shù)據(jù)的類型。ObjectPascal包括9種形式的整型數(shù)據(jù),詳見(jiàn)本教程P25頁(yè)表2-3。
前2種為一般整型,後7種為基本整型,應(yīng)儘量使用Integer、Cardinal兩種基本類型,因?yàn)樗鼈冊(cè)诟鞣NCPU和操作系統(tǒng)中都提供最佳的性能。通常,作用於整數(shù)的算術(shù)運(yùn)算符返回Integer類型的值。在當(dāng)前執(zhí)行中,等價(jià)於32位的長(zhǎng)整型(LongInt)。僅當(dāng)對(duì)Int64類型執(zhí)行運(yùn)算時(shí),運(yùn)算結(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í)數(shù)是最常用的數(shù)據(jù)類型。在ObjectPascal中實(shí)數(shù)有兩種表示方法:小數(shù)表示法和科學(xué)計(jì)數(shù)法。例如:-3.6,2.4e0,–1.2e-5,3E7
小數(shù)表示法與日常數(shù)學(xué)中所用表示方法相同。科學(xué)計(jì)數(shù)法中,e之前表示有效數(shù)字,e之後數(shù)字表示10的冪。即–1.2e-5=(-1.2)×10-5=-0.000012
需要注意的是小數(shù)表示法中小數(shù)點(diǎn)前後都必須有數(shù)字,科學(xué)計(jì)數(shù)法中e前後都必須有數(shù)字,e可以大寫成E。實(shí)型是存儲(chǔ)實(shí)數(shù)數(shù)據(jù)的類型。ObjectPascal包括5種形式的實(shí)型數(shù)據(jù),詳見(jiàn)本教程P26表2-4。
(圖1-2)
前六種為基本數(shù)據(jù)類型,Real為一般實(shí)型。最常用的實(shí)型是Real類型,它與Double等價(jià)。Currency是專為處理貨幣而設(shè)計(jì)的,該類型與其他實(shí)型進(jìn)行運(yùn)算時(shí),Delphi自動(dòng)將結(jié)果轉(zhuǎn)化為Currency類型。2.2.3字元型
字元型是存儲(chǔ)單個(gè)字元的類型。ObjectPascal包括3種形式的字元型數(shù)據(jù),詳見(jiàn)表2-5?;咀衷愋褪茿nsiChar和WideChar。AnsiChar的尺寸是一個(gè)位元組(8位),其值參照本地字元集。AnsiChar最初模仿ANSI字元集,但現(xiàn)在用於擴(kuò)大到當(dāng)前的本地字元集。WideChar字元用多於一個(gè)位元組來(lái)表示每個(gè)字元。WideChar的尺寸是一個(gè)字(16位),其字元順序參照Unicode字元集,Unicode字元集中的前256個(gè)字元對(duì)應(yīng)ANSI字元。一般字元類型是Char,等價(jià)於AnsiChar。字元類型數(shù)據(jù)的表示方法是用兩個(gè)單引號(hào)括起單個(gè)字元如:'A'、'6'、'.'。
''表示空白字元。表2-5ObjectPascal語(yǔ)言的字元型類型名稱位元組數(shù)取值範(fàn)圍Ansi字元型AnsiChar1擴(kuò)展ANSI字元集寬字元型WideChar2UniCode字元集字元型Char1(2)擴(kuò)展ANSI字元集2.2.4字串型
字串型是存儲(chǔ)字串?dāng)?shù)據(jù)的類型。ObjectPascal包括4種形式的字串型數(shù)據(jù),詳見(jiàn)本教程P27頁(yè)表2-6。
保留字string的作用如一般類型的識(shí)別字。例如: varS:string;
創(chuàng)建了變數(shù)S,用於保存串。在默認(rèn)的編譯指示{$H+}狀態(tài)下,編譯器將string(後面沒(méi)有跟隨方括號(hào)和數(shù)字)解釋為AnsiString;使用編譯指示{$H-}時(shí),解釋為ShortString。
ShortString類型串的長(zhǎng)度在0到255之間。ShortString串的長(zhǎng)度可以動(dòng)態(tài)改變,其佔(zhàn)用的記憶體是靜態(tài)的,總是256位元組;第一個(gè)位元組存儲(chǔ)串的長(zhǎng)度,其餘255個(gè)位元組存儲(chǔ)串中的字元。
AnsiString也叫做長(zhǎng)串(longstring),用來(lái)表示動(dòng)態(tài)分配的串。
WideString類型表示16位Unicode字元的動(dòng)態(tài)分配的串。WideString類型大部分的特性與AnsiString類型相似。
ObjectPascal還支持其他最大長(zhǎng)度在0到255之間的短串。可以通過(guò)在保留字string後邊附加方括號(hào)括起來(lái)的數(shù)字來(lái)表示。例如: varMyString:string[100];
創(chuàng)建了一個(gè)叫做MyString的變數(shù),其最大長(zhǎng)度為100個(gè)字元。2.2.5布爾型
布爾型數(shù)據(jù)用於進(jìn)行邏輯運(yùn)算,布爾型數(shù)據(jù)的值只有兩個(gè):True(真)和False(假)。ObjectPascal包括4種形式的布爾型數(shù)據(jù),詳見(jiàn)表2-7。Boolean類型是編程時(shí)常用的布爾類型,其他三種類型是為了相容其他語(yǔ)言而設(shè)置的。Boolean類型的取值為False和True兩個(gè)符號(hào)常量。在ObjectPascal中,布爾運(yùn)算式不能被等同為整數(shù)或?qū)崝?shù)。因此,如果x是一個(gè)整數(shù)類型的變數(shù),那麼語(yǔ)句 ifxthen...;將產(chǎn)生一個(gè)編譯錯(cuò)誤??梢詫⑸蟼€(gè)語(yǔ)句改為: ifx=1then...;
表2-7ObjectPascal語(yǔ)言的布爾型類型名稱位元組數(shù)取值布爾型Boolean1只能為False(0)或True(1)位元組布爾型ByteBool1False或True(非False)寬布爾型WordBool2False或True(非False)長(zhǎng)布爾型LongBool4False或True(非False)2.2.6序數(shù)類型1.序數(shù)類型
序數(shù)類型包括整數(shù)、字元、布爾、枚舉、子界等類型。序數(shù)類型定義了一個(gè)有序的值的集合。集合中的每個(gè)值(除第一個(gè))都有一個(gè)唯一的前驅(qū)值,每個(gè)值(除最後一個(gè))都有一個(gè)唯一的後繼值。對(duì)於第一個(gè)序數(shù)的前趨和最後一個(gè)序數(shù)的後繼在此不做討論。此外,每個(gè)值都有一個(gè)序號(hào),類型中的序號(hào)決定值在類型中的順序。大多數(shù)情況下,如果一個(gè)值的序號(hào)為n,那麼它的前驅(qū)值的序號(hào)為n–1,後繼值的序號(hào)為n+1。
2.序數(shù)函數(shù)(1)序數(shù)函數(shù)Ord()返回?cái)?shù)據(jù)的序數(shù)。例如:Ord(6)的返回值為6,表示整數(shù)6的序數(shù)是其本身。(2)前趨函數(shù)Pred()返回?cái)?shù)據(jù)的前趨值。例如:Pred('e')的返回值為'd',表示字元e的前趨是字元d。(3)後繼函數(shù)Succ()返回?cái)?shù)據(jù)的後繼值。例如:Succ(False)的返回值為True,表示布爾型數(shù)據(jù)True是False的後繼。(4)首序數(shù)函數(shù)Low()返回序數(shù)類型的數(shù)據(jù)中序數(shù)最小的一個(gè)數(shù)據(jù)。(5)末序數(shù)函數(shù)High()返回序數(shù)類型的數(shù)據(jù)中序數(shù)最大的一個(gè)數(shù)據(jù)。2.3常量與變數(shù)
在程式設(shè)計(jì)中常用到兩種形式的數(shù)據(jù),一種是在程式執(zhí)行過(guò)程中其值保持不變的數(shù)據(jù),稱為常量;另一種是在程式執(zhí)行過(guò)程中其值可以改變的數(shù)據(jù),稱為變數(shù)。
常量是一種在程式執(zhí)行進(jìn)程中其值保持不變的數(shù)據(jù)。根據(jù)使用的方式不同,程式中的常量分為直接常量、真實(shí)常量與類型常量。2.3.1常量1.直接常量直接常量是指在程式中直接引用的整數(shù)、實(shí)數(shù)、字元、字串或其他不同類型的常數(shù)。下列常數(shù)均屬於直接常量。(1)帶有正負(fù)號(hào)的整數(shù)或無(wú)符號(hào)的整數(shù),如:-1,+2,2003,0。(2)實(shí)數(shù),包括定點(diǎn)實(shí)數(shù)與浮點(diǎn)實(shí)數(shù)兩種表示形式。定點(diǎn)實(shí)數(shù)即小數(shù)形式,如:0.03,-32.48,+102.9,0.0。浮點(diǎn)實(shí)數(shù)即指數(shù)形式,如:+2.56E-5,-1.2E+8,3.2E12。2.3.1常量(2)2.真實(shí)常量真實(shí)常量是指一個(gè)被聲明的識(shí)別字,它的值不能改變。如果在一個(gè)程式中,某一個(gè)常數(shù)反復(fù)多次出現(xiàn)可以定義一個(gè)識(shí)別字來(lái)代表該常數(shù)。定義常量時(shí)使用常量說(shuō)明語(yǔ)句,語(yǔ)法格式為:const<常量名1>=<常量值1>…<常量名n>=<常量值n>
其中const是ObjectPascal的保留字,表示常量定義的開始。<常量名>即常量的識(shí)別字,<常量值>是直接常量或常量組成的運(yùn)算式。例如:constPI=3.1415926;K=PI/180;
不能在程式中給常量另行賦值,否則會(huì)導(dǎo)致語(yǔ)法錯(cuò)誤。(3)字元,由單撇號(hào)括起來(lái)的單個(gè)字元,如:'a','C','6','+'。(4)字串,由雙撇號(hào)括起來(lái)的字串,如:"hello","abc123","3.234"。(5)布爾型常數(shù),只有兩個(gè)值True和False。2.3.1常量(3)3.類型常量類型常量不同於真實(shí)常量,它能保存數(shù)組、記錄等高級(jí)數(shù)據(jù)類型的值。定義類型常量的語(yǔ)法格式如下:
const <常量名>:<類型名>=<常量值>;例如:constHello:string='Hello';Max:Integer=100;Digits:array[0..9]ofChar=('0','1','2','3','4','5','6','7',‘8’,‘9’);//定義了一個(gè)常量用於保存數(shù)組在缺省的編譯狀態(tài){$J-}中,類型常量不能被賦予新的值,這時(shí)的類型常量相當(dāng)於只讀變數(shù)。然而,如果編譯指示{$J+}有效,那麼類型常量可以被賦予新的值,這時(shí)的類型常量相當(dāng)於被初始化過(guò)的變數(shù)。
變數(shù)是程式代碼中代表一個(gè)記憶體地址的識(shí)別字,而此地址的記憶體內(nèi)容在程式代碼執(zhí)行時(shí)可以被改變。在使用變數(shù)前必須對(duì)它進(jìn)行說(shuō)明,即對(duì)它進(jìn)行命名,並說(shuō)明它的類型。變數(shù)就像數(shù)據(jù)容器,而且由於變數(shù)被定義了類型,只能用於儲(chǔ)存與其定義類型相相容的數(shù)據(jù)。2.3.2變數(shù)(1)變數(shù)有如下三個(gè)主要特徵。(1)變數(shù)名:即變數(shù)的識(shí)別字,用於對(duì)所代表的記憶體單元的引用。(2)類型:變數(shù)的類型決定了變數(shù)中所存放數(shù)據(jù)的範(fàn)圍、有效的操作、存儲(chǔ)空間的大小和格式。(3)變數(shù)值:變數(shù)所代表的記憶體單元中的數(shù)據(jù)值。程式中的變數(shù)必須先聲明才能使用。1.變數(shù)的聲明變數(shù)在單元、函數(shù)或過(guò)程的聲明部分進(jìn)行聲明,聲明位置決定了變數(shù)的作用範(fàn)圍。變數(shù)聲明的格式為:2.3.2變數(shù)(2)
聲明多個(gè)同類型的變數(shù)時(shí)可採(cǎi)用如下格式:
var<變數(shù)名1>…<變數(shù)名n>:<類型名>
其中var是ObjectPascal的保留字,表示變數(shù)定義的開始,<變數(shù)名>可以是任意合法的識(shí)別字,<類型名>可以是ObjectPascal的基本數(shù)據(jù)類型也可以是由用戶定義的高級(jí)數(shù)據(jù)類型。聲明在過(guò)程或函數(shù)內(nèi)部的變數(shù)有時(shí)叫做局部變數(shù),而在應(yīng)用程式開始聲明的變數(shù)叫做全局變數(shù)。全局變數(shù)可以在聲明時(shí)對(duì)它進(jìn)行初始化,格式為:
var<變數(shù)名>:<類型名>=<常量運(yùn)算式>
其中常量運(yùn)算式的值必須與變數(shù)定義的類型相相容。var<變數(shù)名1>:<類型名1>…<變數(shù)名n>:<類型名n>2.變數(shù)使用
變數(shù)經(jīng)過(guò)聲明之後,就可以在程式中使用了,通??梢酝ㄟ^(guò)賦值語(yǔ)句給變數(shù)賦值。如果沒(méi)有明確初始化全局變數(shù),那麼編譯器將對(duì)其初始化為0。不同的是,局部變數(shù)不能在其聲明中被初始化並且在其被賦值之前包含的是亂數(shù)據(jù)。一旦聲明了一個(gè)變數(shù),應(yīng)及時(shí)對(duì)它賦值進(jìn)行初始化,未經(jīng)初始化的變數(shù)的值是一個(gè)不確定的亂數(shù),如果該變數(shù)參與運(yùn)算或是出現(xiàn)程式流程中將會(huì)產(chǎn)生意想不到的後果。初始化變數(shù)的最簡(jiǎn)單方法就是給變數(shù)賦值。2.3.2變數(shù)(3)2.4運(yùn)算符與運(yùn)算式
運(yùn)算是對(duì)數(shù)據(jù)進(jìn)行加工處理的過(guò)程,描述各種不同運(yùn)算的符號(hào)稱為運(yùn)算符,而參與運(yùn)算的數(shù)據(jù)稱為運(yùn)算元。運(yùn)算式是表示某個(gè)求值規(guī)則的運(yùn)算公式,它由運(yùn)算符和圓括號(hào)將常量、變數(shù)等運(yùn)算元以合理的形式組合而成。運(yùn)算式可以用來(lái)執(zhí)行運(yùn)算、操作或測(cè)試數(shù)據(jù),每個(gè)運(yùn)算式都會(huì)產(chǎn)生惟一的值。運(yùn)算式的類型由運(yùn)算符的類型決定。在ObjectPascal中有以下幾種運(yùn)算符:算術(shù)運(yùn)算符、位運(yùn)算符、字串運(yùn)算符、關(guān)係運(yùn)算符、布爾運(yùn)算符、集合運(yùn)算符、指針運(yùn)算符、類運(yùn)算符和@運(yùn)算符。本章中先介紹幾種常用的運(yùn)算符。1.算術(shù)運(yùn)算符
ObjectPascal有8?jìng)€(gè)算術(shù)運(yùn)算符,在這8?jìng)€(gè)算術(shù)運(yùn)算符中,除取正“+”、取負(fù)“-”是單目運(yùn)算符外,其他均為雙目運(yùn)算符,詳見(jiàn)本教程P31頁(yè)表2-8。其中+、-、*運(yùn)算的含義與數(shù)學(xué)中的相同,參加運(yùn)算的數(shù)可以是整型也可以是實(shí)型,結(jié)果由Delphi7.0自動(dòng)向精度高的數(shù)據(jù)類型轉(zhuǎn)化。參加除法運(yùn)算“/”的數(shù)無(wú)論是整型或是實(shí)型,結(jié)果都是實(shí)型。參加整數(shù)除法“div”和求餘運(yùn)算“mod”的數(shù)必須是
2.4.1算術(shù)運(yùn)算符2.4.1算術(shù)運(yùn)算符
2.算術(shù)運(yùn)算式算術(shù)運(yùn)算式是由算術(shù)運(yùn)算符、數(shù)值型常量、變數(shù)、圓括號(hào)組成,其運(yùn)算結(jié)果為一數(shù)值。 例如:3*4+(90-5)/4*2的值為54.5。在書寫算術(shù)運(yùn)算式時(shí)應(yīng)當(dāng)注意以下兩點(diǎn):(1)在數(shù)學(xué)中可以省略乘號(hào),但在算術(shù)運(yùn)算式書寫中不可以省略,如在數(shù)學(xué)中相乘可以寫成2x,但在編程中必須寫成2*x;(2)所有括弧都用小括?。ǎ?,括弧必須配對(duì),例如數(shù)學(xué)式3[x+(y-z)]在編程中必須寫成3*(x+(y-z))。整型,結(jié)果也是整型,分別是除法的商和餘數(shù)。在運(yùn)算式a/b、adivb、amodb中,如果b的值為0將會(huì)觸發(fā)一個(gè)錯(cuò)誤。 例如:10mod3的值為1,10div3的值為3。2.4.2位運(yùn)算符
位運(yùn)算符是指對(duì)運(yùn)算元進(jìn)行的按位邏輯運(yùn)算。其運(yùn)算對(duì)象是整數(shù),運(yùn)算結(jié)果也是整數(shù),ObjectPascal有6個(gè)邏輯運(yùn)算符,詳見(jiàn)表2-9。and、or、not和xor運(yùn)算符當(dāng)運(yùn)算符兩側(cè)為數(shù)值數(shù)據(jù),則將數(shù)值數(shù)據(jù)轉(zhuǎn)換為二進(jìn)位數(shù)(補(bǔ)數(shù)形式)進(jìn)行按位運(yùn)算。設(shè)x值為3,y值為5,在內(nèi)存中按二進(jìn)位保存,即x,y值分別為00000011,00000101。按位計(jì)算結(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)運(yùn)算符名稱舉例運(yùn)算符取值名稱舉例not按位取反notxxor按位異或xxoryand按位與xandyshl左移位xshl2or按位或xoryshr右移位yshr1表2-9ObjectPascal語(yǔ)言的位運(yùn)算符2.4.3字串運(yùn)算符ObjectPascal只有一種字串運(yùn)算符,即連接運(yùn)算符“+”。該運(yùn)算符用於連接兩個(gè)或更多的字串。當(dāng)兩個(gè)字串用連接運(yùn)算符連接起來(lái)後,第二個(gè)字串直接添加到第一個(gè)字串的尾部,結(jié)果是一個(gè)更長(zhǎng)的包含兩個(gè)字串的全部?jī)?nèi)容的字串,也可以把多個(gè)字串連接起來(lái),每?jī)蓚€(gè)字串之間都要用“+”號(hào)分隔。例如:'abcdef'+'123'連接後結(jié)果為:'abcdef123''abc'+'123'+'xyz'連接後結(jié)果為:'abc123xyz‘
加號(hào)(+)運(yùn)算符對(duì)串的操作與其對(duì)數(shù)字的操作有很大差異。對(duì)於數(shù)字a、b,運(yùn)算式a+b與b+a是等價(jià)的,對(duì)於字串s1、s2運(yùn)算式s1+s2與s2+s1不是等價(jià)的。例如,當(dāng)s1為'hello'、s2為'world'時(shí),s1+s2返回的值是'helloworld',而s2+s1返回的值是'worldhello'。也就是說(shuō),當(dāng)加號(hào)(+)作為字串運(yùn)算符時(shí),運(yùn)算元的位置順序直接影響運(yùn)算結(jié)果。2.4.4關(guān)係運(yùn)算符
關(guān)係運(yùn)算符又稱為比較運(yùn)算符,用來(lái)對(duì)兩個(gè)運(yùn)算式的值進(jìn)行比較,比較的結(jié)果是一個(gè)布爾值(True或False)。關(guān)係運(yùn)算式是指用關(guān)係運(yùn)算符將兩個(gè)運(yùn)算式連接起來(lái)的式子。ObjectPascal提供的關(guān)係運(yùn)算符有9種,詳見(jiàn)表2-10。表2-10ObjectPascal語(yǔ)言的關(guān)係運(yùn)算符運(yùn)算符名稱舉例運(yùn)算符取值名稱舉例=等於4=5值為False>大於4>5值為False<>不等於4<>5值為True<=小於或等於4<=5值為True<小於4<5值為True>=大於或等於4>=5值為False
關(guān)係運(yùn)算符兩側(cè)可以是數(shù)值運(yùn)算式、字元型運(yùn)算式或其他運(yùn)算式,也可以是常量、變數(shù)或函數(shù),但其兩側(cè)的數(shù)據(jù)類型必須是相容的標(biāo)準(zhǔn)數(shù)據(jù)類型或順序類型。各關(guān)係運(yùn)算符的運(yùn)算級(jí)別相同。運(yùn)算次序?yàn)椋合确謩e求出關(guān)係運(yùn)算符兩側(cè)運(yùn)算式的值,然後再把兩者的值進(jìn)行比較,兩者的關(guān)係若與關(guān)係運(yùn)算符指示的一樣,則關(guān)係運(yùn)算的結(jié)果為真(True),否則結(jié)果為假(False)。數(shù)值型數(shù)據(jù)按其數(shù)值大小進(jìn)行比較;字元型數(shù)據(jù)按其ASCII碼值進(jìn)行比較,比較字串時(shí)先比較第一個(gè)字元,其中ASCII碼值較大的字元所在的字串大。若第一個(gè)字元相同時(shí)比較第二個(gè)字元,…以此類推。順序類型數(shù)據(jù)的比較按照其序數(shù)進(jìn)行比較。2.4.5布爾運(yùn)算符
在表示較為複雜的條件判斷時(shí),必須使用布爾表示式。布爾運(yùn)算式是指用布爾運(yùn)算符連接若干關(guān)係運(yùn)算式或布爾值組成的式子,如a≤x≤b可以表示為:a<=xAndx<=b,布爾運(yùn)算式的值也是一個(gè)布爾值。ObjectPascal提供4種布爾運(yùn)算符,詳見(jiàn)表2-11。表2-11ObjectPascal語(yǔ)言的布爾運(yùn)算符運(yùn)算符名稱舉例說(shuō)明and與(4>5)and(3<4)該運(yùn)算式值為False。當(dāng)兩個(gè)運(yùn)算式的值均為真,結(jié)果才為真,否則結(jié)果為假。or或(4>5)or(3<4)該運(yùn)算式值為True。兩個(gè)運(yùn)算式中只要有一個(gè)運(yùn)算式的值為真,結(jié)果就為真,兩個(gè)運(yùn)算式的值均為假時(shí)結(jié)果為假。not非not(4>5)該運(yùn)算式值為True。進(jìn)行取“反”操作,由真變成假或由假變成真。xor異或(4>5)xor(3<4)該運(yùn)算式值為True。當(dāng)兩個(gè)布爾運(yùn)算式值不同時(shí)結(jié)果為True。2.4.6運(yùn)算符的優(yōu)先順序
在一個(gè)運(yùn)算式中進(jìn)行多種操作時(shí),ObjectPascal會(huì)按一定的順序進(jìn)行求值,這個(gè)順序稱為運(yùn)算符的優(yōu)先順序。在運(yùn)算式中運(yùn)算符的優(yōu)先順序決定了運(yùn)算被執(zhí)行的順序。常用運(yùn)算符的優(yōu)先順序如本教程P34頁(yè)表2-12所示。
當(dāng)一個(gè)運(yùn)算式中含有多個(gè)算術(shù)運(yùn)算符時(shí),將按優(yōu)先順序由高到低的順序求值。優(yōu)先順序高的運(yùn)算符在優(yōu)先順序低的運(yùn)算符之前求值,優(yōu)先順序相同時(shí)自左向右求值,如果運(yùn)算式中含有括弧,則先計(jì)算括弧內(nèi)運(yùn)算式的值,如果有多層,先計(jì)算最內(nèi)層括弧中的運(yùn)算式。例 如運(yùn)算式:
x+y*z
先運(yùn)算y乘以z,然後將乘積(運(yùn)算結(jié)果)與x相加;運(yùn)算符*先被執(zhí)行,因?yàn)樗冗\(yùn)算符+優(yōu)先。可以使用圓括號(hào)超越所有的優(yōu)先順序規(guī)則。圓括號(hào)中的運(yùn)算式最先被求值,因此可以被視為一個(gè)單獨(dú)的運(yùn)算元。例如運(yùn)算式:
(x>y)and(x>z)
首先判斷x是否大於y,然後判斷x是否大於z,最後將兩次判斷的結(jié)果相與,只有當(dāng)x的值比y、z的值都大時(shí)此運(yùn)算式的值才為true。該運(yùn)算式不能書寫為:
x>yandx>z
根據(jù)運(yùn)算符的優(yōu)先順序,該運(yùn)算式將解釋為:
(x>(yandx))>z
若x,y,z均為實(shí)型或整型數(shù)據(jù)時(shí)將產(chǎn)生編譯錯(cuò)誤。圓括號(hào)通常使代碼更容易讀寫,在編程過(guò)程中應(yīng)當(dāng)合理使用圓括號(hào)。2.5語(yǔ)句
語(yǔ)句是執(zhí)行具體操作的指令,是由ObjectPascal的保留字、變數(shù)名、函數(shù)名及Delphi7.0編輯器可以識(shí)別的指令符號(hào)組成,建立正確的語(yǔ)句必須遵從ObjectPascal的語(yǔ)法規(guī)則。ObjectPascal程式語(yǔ)句書寫比較自由,可以把多個(gè)語(yǔ)句放在一個(gè)程式行中,也可把一個(gè)語(yǔ)句分多行書寫,但需要記住ObjectPascal的每個(gè)語(yǔ)句都必須以分號(hào)“;”結(jié)束。在編寫自己的ObjectPascal程式時(shí),要注意程式的可讀性。Pascal語(yǔ)言是英式結(jié)構(gòu)語(yǔ)言,在程式中選擇合適的縮排、大小寫風(fēng)格,並在需要時(shí)將程式代碼分行,會(huì)使得程式代碼能夠很容易地被自己和他人讀懂。對(duì)於較為複雜的程式常用到複合語(yǔ)句,複合語(yǔ)句是指將多個(gè)語(yǔ)句用
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023三年級(jí)英語(yǔ)上冊(cè) Module 1 Getting to know you Unit 3 Are you Kitty說(shuō)課稿 牛津滬教版(三起)
- 21《古詩(shī)三首》說(shuō)課稿-2024-2025學(xué)年語(yǔ)文四年級(jí)上冊(cè)統(tǒng)編版001
- 6《摸一摸》說(shuō)課稿-2024-2025學(xué)年科學(xué)一年級(jí)上冊(cè)青島版
- 2024-2025學(xué)年高中生物 第3章 植物的激素調(diào)節(jié) 第1節(jié) 植物生長(zhǎng)素的發(fā)現(xiàn)說(shuō)課稿 新人教版必修3001
- 2024年五年級(jí)英語(yǔ)下冊(cè) Module 7 Unit 2 I will be home at seven oclock說(shuō)課稿 外研版(三起)
- 2025住宅裝修物業(yè)管理合同(合同范本)
- 8《池子與河流》(說(shuō)課稿)-2023-2024學(xué)年統(tǒng)編版語(yǔ)文三年級(jí)下冊(cè)
- 2025鍋爐拆除安全施工合同
- 2025有關(guān)電梯廣告的合同范本
- Unit 6 Disaster and Hope Understanding ideas 說(shuō)課稿-2023-2024學(xué)年外研版高中英語(yǔ)(2019)必修第三冊(cè)
- 玻璃反應(yīng)釜安全操作及保養(yǎng)規(guī)程
- 高中英語(yǔ)新課標(biāo)詞匯表(附詞組)
- 2023年心理咨詢師之心理咨詢師基礎(chǔ)知識(shí)考試題庫(kù)附完整答案【有一套】
- 證券公司信用風(fēng)險(xiǎn)和操作風(fēng)險(xiǎn)管理理論和實(shí)踐中金公司
- 一級(jí)建造師繼續(xù)教育最全題庫(kù)及答案(新)
- 2022年高考湖南卷生物試題(含答案解析)
- GB/T 20909-2007鋼門窗
- GB/T 17854-1999埋弧焊用不銹鋼焊絲和焊劑
- GB/T 15593-2020輸血(液)器具用聚氯乙烯塑料
- 直線加速器專項(xiàng)施工方案
- 儲(chǔ)能設(shè)備項(xiàng)目采購(gòu)供應(yīng)質(zhì)量管理方案
評(píng)論
0/150
提交評(píng)論