第02章ObjectPascal語言基礎(chǔ)
《第02章ObjectPascal語言基礎(chǔ)》由會員分享,可在線閱讀,更多相關(guān)《第02章ObjectPascal語言基礎(chǔ)(49頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 Delphi 程序設(shè)計程序設(shè)計主講:陳強主講:陳強南昌理工學(xué)院計算機南昌理工學(xué)院計算機系系 Delphi 程序設(shè)計程序設(shè)計v第1章 Delphi 2005簡介v第2章 Object Pascal語言基礎(chǔ)v第3章 Windows應(yīng)用程序界面設(shè)計v第4章 菜單、工具欄和對話框v第5章 使用復(fù)雜組件v第6章 面向?qū)ο蟮暮诵奶匦詖第7章 多文檔界面設(shè)計v第8章 程序調(diào)試與異常處理v第9章 文件操作和流v第10章 多媒體應(yīng)用設(shè)計v第11章 數(shù)據(jù)庫應(yīng)用設(shè)計v第12章 綜合應(yīng)用設(shè)計 Delphi 程序設(shè)計第第2章章 Object Pascal語言基礎(chǔ)語言基礎(chǔ)1.2.1 語言成分語言成分2.2.2 語句與流
2、程控制語句與流程控制3.2.3 定義數(shù)據(jù)類型定義數(shù)據(jù)類型4.2.4 構(gòu)造數(shù)據(jù)類型構(gòu)造數(shù)據(jù)類型5.2.5 過程和函數(shù)過程和函數(shù) Delphi 程序設(shè)計2.1 語言成分語言成分1.2.1.1 程序組成程序組成2.2.1.2 標準數(shù)據(jù)類型標準數(shù)據(jù)類型3.2.1.3 運算符與表達式運算符與表達式4.2.1.4 標準函數(shù)標準函數(shù)5.2.1.5 常量與變量常量與變量 Delphi 程序設(shè)計2.1.1 程序組成程序組成1.程序結(jié)構(gòu)程序結(jié)構(gòu)【例【例2.1】 顯示程序結(jié)構(gòu)。顯示程序結(jié)構(gòu)。2.詞匯集詞匯集基本字符基本字符保留字保留字指示字指示字標識符標識符分隔符分隔符3.注釋和編譯指令注釋和編譯指令注釋注釋編譯指
3、令編譯指令4.Pascal代碼書寫風(fēng)格代碼書寫風(fēng)格 Delphi 程序設(shè)計2.1.2 標準數(shù)據(jù)類型標準數(shù)據(jù)類型1.什么是數(shù)據(jù)類型什么是數(shù)據(jù)類型2.數(shù)據(jù)類型的分類數(shù)據(jù)類型的分類簡單數(shù)據(jù)類型簡單數(shù)據(jù)類型構(gòu)造數(shù)據(jù)類型構(gòu)造數(shù)據(jù)類型指針類型指針類型 Delphi 程序設(shè)計2.1.2 標準數(shù)據(jù)類型標準數(shù)據(jù)類型3.整數(shù)類型整數(shù)類型4.實數(shù)類型實數(shù)類型5.布爾類型布爾類型6.字符類型字符類型7.字符串類型字符串類型 Delphi 程序設(shè)計2.1.3 運算符與表達式運算符與表達式1.運算符運算符算術(shù)運算符算術(shù)運算符關(guān)系運算符關(guān)系運算符位運算符位運算符邏輯運算符邏輯運算符2.運算符的優(yōu)先級運算符的優(yōu)先級 Delp
4、hi 程序設(shè)計【例【例2.2】 mod運算的用法。運算的用法。(w + 1) mod 7/明天明天(w 1 + 7 ) mod 7/昨天昨天 Delphi 程序設(shè)計2.1.3 運算符與表達式運算符與表達式3.表達式表達式表達式及其運算規(guī)則表達式及其運算規(guī)則表達式的數(shù)據(jù)類型表達式的數(shù)據(jù)類型布爾表達式中的短路計算布爾表達式中的短路計算書寫表達式時的注意事項書寫表達式時的注意事項 Delphi 程序設(shè)計【例【例2.3】 使用表達式。使用表達式。1.i mod 2=0/取值為取值為true時,時,i為一個偶數(shù),否則為奇數(shù)為一個偶數(shù),否則為奇數(shù)2.(i=0) and (i=9) /判斷判斷i的值是否在的
5、值是否在0到到9之間之間 Delphi 程序設(shè)計2.1.4 標準函數(shù)標準函數(shù)1.函數(shù)的概念函數(shù)的概念2.常用標準函數(shù)說明常用標準函數(shù)說明3.調(diào)用標準函數(shù)調(diào)用標準函數(shù)【例【例2.4】 使用標準函數(shù)。使用標準函數(shù)。odd(i) /取值為取值為true時,時,i為一個奇數(shù),否則為偶數(shù)為一個奇數(shù),否則為偶數(shù)chr(ord(ch)+ord(a)-ord(A) /將將ch轉(zhuǎn)換成小寫字母轉(zhuǎn)換成小寫字母 Delphi 程序設(shè)計2.1.5 常量與變量常量與變量1.常量常量直接常量和符號常量直接常量和符號常量常量定義常量定義2.變量變量變量聲明變量聲明變量初始化變量初始化變量參與的運算變量參與的運算 Delphi
6、 程序設(shè)計2.2 語句與流程控制語句與流程控制1.2.2.1 簡單語句簡單語句2.2.2.2 流程控制的概念流程控制的概念3.2.2.3 復(fù)合語句復(fù)合語句4.2.2.4 條件語句條件語句5.2.2.5 循環(huán)語句循環(huán)語句 Delphi 程序設(shè)計2.2.1 簡單語句簡單語句1.賦值語句賦值語句【例【例2.5】 變量賦值。變量賦值。2.空語句空語句3.過程調(diào)用語句過程調(diào)用語句讀語句讀語句寫語句寫語句【例【例2.6】 求一個三位數(shù)的數(shù)字和。求一個三位數(shù)的數(shù)字和?!纠纠?.7】 判斷一個年份是否為閏年。判斷一個年份是否為閏年。 Delphi 程序設(shè)計2.2.2 流程控制的概念流程控制的概念1.順序結(jié)構(gòu)
7、順序結(jié)構(gòu) 分支結(jié)構(gòu)分支結(jié)構(gòu) 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)語句1(a) 順序結(jié)構(gòu)語句2(b) if-else二路分支結(jié)構(gòu)語句1布爾表達式?語句2入口點出口點入口點出口點truefalse(c) while循環(huán)結(jié)構(gòu)語句布爾表達式?入口點出口點truefalse Delphi 程序設(shè)計圖圖2.4 不執(zhí)行與死循環(huán)不執(zhí)行與死循環(huán)語句1(a) 不執(zhí)行語句2出口點入口點語句1(b) 死循環(huán)語句2出口點入口點 Delphi 程序設(shè)計2.2.3 復(fù)合語句復(fù)合語句begin 語句語句1; 語句語句2;end Delphi 程序設(shè)計2.2.4 條件語句條件語句1.if語句語句if語句的語法格式語句的語法格式if 布爾表達式布爾
8、表達式then 語句語句1else 語句語句2【例【例2.8】 求三個整數(shù)中的最大值。求三個整數(shù)中的最大值。復(fù)合條件復(fù)合條件if語句嵌套語句嵌套 Delphi 程序設(shè)計2.2.4 條件語句條件語句2.case語句語句case 表達式表達式 of 常量常量1: 語句語句1; 常量常量2: 語句語句2; else 語句語句n;end;【例【例2.9】 計算每月的天數(shù)。計算每月的天數(shù)。 Delphi 程序設(shè)計2.2.5 循環(huán)語句循環(huán)語句1.while語句語句while語句語法語句語法while 布爾表達式布爾表達式 do 語句語句【例【例2.10】 用用while語句求語句求110的累加和。的累加和
9、。while語句循環(huán)執(zhí)行次數(shù)問題討論語句循環(huán)執(zhí)行次數(shù)問題討論 Delphi 程序設(shè)計2.2.5 循環(huán)語句循環(huán)語句2.repeat語句語句repeat語句語法語句語法repeat 語句語句;until 布爾表達式布爾表達式;【例【例2.11】 用用repeat語句求語句求110的累加和。的累加和。repeat語句循環(huán)執(zhí)行次數(shù)問題討論語句循環(huán)執(zhí)行次數(shù)問題討論 Delphi 程序設(shè)計2.2.5 循環(huán)語句循環(huán)語句3.for語句語句for語句語法語句語法for 循環(huán)變量循環(huán)變量:=初值初值 to 終值終值 do 語句語句for 循環(huán)變量循環(huán)變量:=初值初值 downto 終值終值 do 語句語句【例【例
10、2.12】 用用for語句求語句求110的累加和。的累加和。for語句循環(huán)執(zhí)行次數(shù)問題討論語句循環(huán)執(zhí)行次數(shù)問題討論 Delphi 程序設(shè)計2.2.5 循環(huán)語句循環(huán)語句【例【例2.13】 求一個日期(年月日)對應(yīng)的是求一個日期(年月日)對應(yīng)的是星期幾。星期幾。4.多重循環(huán)多重循環(huán)【例【例2.14】 求求100以內(nèi)的素數(shù)。以內(nèi)的素數(shù)。 Delphi 程序設(shè)計2.3 定義數(shù)據(jù)類型定義數(shù)據(jù)類型1.2.3.1 類型定義類型定義2.2.3.2 枚舉和子界類型枚舉和子界類型3.2.3.3 類型兼容原則類型兼容原則 Delphi 程序設(shè)計2.3.1 類型定義類型定義type 類型類型 = 類型描述類型描述;例
11、如,例如,type datatype = integer; arrint = array 1.10 of integer; Delphi 程序設(shè)計2.3.2 枚舉和子界類型枚舉和子界類型1.枚舉類型枚舉類型定義枚舉類型定義枚舉類型type 枚舉類型枚舉類型 = (枚舉常量枚舉常量,枚舉常量枚舉常量)聲明枚舉類型變量聲明枚舉類型變量枚舉類型變量能夠進行的操作枚舉類型變量能夠進行的操作枚舉類型變量不能進行的操作枚舉類型變量不能進行的操作2.子界類型子界類型type 子界類型子界類型 = 常量常量1.常量常量2; Delphi 程序設(shè)計2.3.3 類型兼容原則類型兼容原則1.類型相同類型相同兩個數(shù)據(jù)
12、類型具有完全相同的性質(zhì)。兩個數(shù)據(jù)類型具有完全相同的性質(zhì)。 2.類型相容類型相容兩個不同的數(shù)據(jù)類型具有某些相同的性質(zhì)兩個不同的數(shù)據(jù)類型具有某些相同的性質(zhì)3.賦值相容賦值相容一種數(shù)據(jù)類型的值可以通過賦值操作賦給另一種數(shù)據(jù)類型的值可以通過賦值操作賦給另一種數(shù)據(jù)類型的變量。一種數(shù)據(jù)類型的變量。 Delphi 程序設(shè)計2.4 構(gòu)造數(shù)據(jù)類型構(gòu)造數(shù)據(jù)類型1.2.4.1 數(shù)組類型數(shù)組類型2.2.4.2 字符串類型字符串類型3.2.4.3 集合類型集合類型4.2.4.4 記錄類型記錄類型5.2.4.5 文件類型文件類型6.2.4.6 指針類型指針類型 Delphi 程序設(shè)計2.4.1 數(shù)組類型數(shù)組類型1.一維數(shù)
13、組一維數(shù)組定義一維數(shù)組類型定義一維數(shù)組類型type 數(shù)組類型數(shù)組類型 = array 下標類型下標類型 of 元素元素類型類型;聲明一維數(shù)組變量聲明一維數(shù)組變量數(shù)組聲明時可賦初值數(shù)組聲明時可賦初值數(shù)組元素的引用格式數(shù)組元素的引用格式數(shù)組元素的運算數(shù)組元素的運算獲得數(shù)組下標的上界和下界獲得數(shù)組下標的上界和下界兩個數(shù)組變量間的賦值運算兩個數(shù)組變量間的賦值運算 Delphi 程序設(shè)計【例【例2.15】 用一維數(shù)組計算用一維數(shù)組計算Fibonacci序列值。序列值。Fibonacci序列是指首兩項為序列是指首兩項為0、1,以后各項的,以后各項的值是其前兩項值之和的序列:值是其前兩項值之和的序列:0,1
14、,1,2,3,5,8,其數(shù)學(xué)中的遞推定義為:其數(shù)學(xué)中的遞推定義為: 2)2() 1(1 , 0)(nnfibnfibnnnfib Delphi 程序設(shè)計2. 二維數(shù)組二維數(shù)組【例【例2.16】 顯示螺旋方陣。顯示螺旋方陣。1234112342121314531116156410987 Delphi 程序設(shè)計3. 動態(tài)數(shù)組動態(tài)數(shù)組var a:array of integer;SetLength(a,5);【例【例2.17】 以動態(tài)數(shù)組顯示幻方陣。以動態(tài)數(shù)組顯示幻方陣。816357492 Delphi 程序設(shè)計4. 不規(guī)則的多維數(shù)組不規(guī)則的多維數(shù)組【例【例2.18】 使用動態(tài)數(shù)組輸出楊輝三角。使用
15、動態(tài)數(shù)組輸出楊輝三角。010423511112數(shù)組第一維數(shù)組元素11331yang0yang1yang5yang4yang3yang2數(shù)組名yang下標321541464151010151 Delphi 程序設(shè)計2.4.2 字符串類型字符串類型1.3種字符串類型種字符串類型2.字符串元素的運算字符串元素的運算3.字符串變量的運算字符串變量的運算4.用于字符串運算的標準過程和函數(shù)用于字符串運算的標準過程和函數(shù)【例【例2.19】 判斷回文字符串。判斷回文字符串。 Delphi 程序設(shè)計2.4.3 集合類型集合類型1.集合類型的定義集合類型的定義type集合類型集合類型 = set of 元素類型元
16、素類型;2.集合類型的值集合類型的值3.集合類型的運算集合類型的運算賦值運算賦值運算關(guān)系運算關(guān)系運算屬于運算屬于運算集合運算集合運算【例【例2.20】 “篩選法篩選法”求素數(shù)。求素數(shù)。 Delphi 程序設(shè)計2.4.4 記錄類型記錄類型1.記錄類型與變量記錄類型與變量2.對記錄變量中的域進行操作對記錄變量中的域進行操作3.對記錄變量進行賦值操作對記錄變量進行賦值操作【例【例2.21】 使用記錄類型表示復(fù)數(shù)。使用記錄類型表示復(fù)數(shù)。4.開域語句開域語句type 記錄類型記錄類型 = record 域域1:類型類型1; 域域2:類型類型2; end; Delphi 程序設(shè)計5. 記錄數(shù)組記錄數(shù)組va
17、r group:array 1.50of student; groupi.number12i數(shù)組名下標數(shù)組元素groupgroupi.namenumbernamegroup1groupi.sexsexgroupi.scorescoregroup2groupi50group50 Delphi 程序設(shè)計2.4.5 文件類型文件類型文件類型是一種構(gòu)造數(shù)據(jù)類型,根據(jù)文件中文件類型是一種構(gòu)造數(shù)據(jù)類型,根據(jù)文件中數(shù)據(jù)元素的數(shù)據(jù)類型,可將文件類型分為數(shù)據(jù)元素的數(shù)據(jù)類型,可將文件類型分為3種:種:文本文件、類型文件和無類型文件。文本文件、類型文件和無類型文件。對不同類對不同類型的文件所進行的操作也有所差別。文
18、件類型型的文件所進行的操作也有所差別。文件類型的定義語法和使用方法詳見的定義語法和使用方法詳見9.3節(jié)。節(jié)。 Delphi 程序設(shè)計2.4.6 指針類型指針類型1.變量所占用存儲單元的靜態(tài)分配與動態(tài)分配變量所占用存儲單元的靜態(tài)分配與動態(tài)分配2.靜態(tài)變量和動態(tài)變量靜態(tài)變量和動態(tài)變量3.聲明指針變量聲明指針變量4.指針所指向的變量指針所指向的變量5.對指針變量的操作對指針變量的操作6.使用標準過程使用標準過程new與與dispose動態(tài)生成或撤銷變動態(tài)生成或撤銷變量量7.指針指向數(shù)組和記錄指針指向數(shù)組和記錄8.使用指針構(gòu)成鏈表使用指針構(gòu)成鏈表 Delphi 程序設(shè)計2.5 過程和函數(shù)過程和函數(shù)1.
19、2.5.1 過程的聲明與調(diào)用過程的聲明與調(diào)用2.2.5.2 函數(shù)的聲明與調(diào)用函數(shù)的聲明與調(diào)用3.2.5.3 變量的作用域變量的作用域4.2.5.4 參數(shù)傳遞參數(shù)傳遞5.2.5.5 過程過程/函數(shù)中參數(shù)的類型兼容原則函數(shù)中參數(shù)的類型兼容原則6.2.5.6 過程過程/函數(shù)的重載函數(shù)的重載7.2.5.7 遞歸的過程與函數(shù)遞歸的過程與函數(shù) Delphi 程序設(shè)計2.5.1 過程的聲明與調(diào)用過程的聲明與調(diào)用1.過程聲明過程聲明procedure 過程過程 (參數(shù)列表參數(shù)列表);/過程首部過程首部 局部聲明部分局部聲明部分;/過程聲明部分過程聲明部分begin/語句體語句體 語句語句;end;/此處以分號
20、結(jié)束此處以分號結(jié)束2.過程調(diào)用過程調(diào)用過程過程(參數(shù)參數(shù),參數(shù)參數(shù)) Delphi 程序設(shè)計2.5.2 函數(shù)的聲明與調(diào)用函數(shù)的聲明與調(diào)用1.函數(shù)聲明函數(shù)聲明function 函數(shù)函數(shù)(參數(shù)列表參數(shù)列表):類型類型;/函數(shù)首部函數(shù)首部 局部聲明部分局部聲明部分;/函數(shù)聲明部分函數(shù)聲明部分begin/語句體語句體 語句語句;end;2.函數(shù)怎樣返回值函數(shù)怎樣返回值fact:=10; /為函數(shù)名賦值,返回結(jié)果為函數(shù)名賦值,返回結(jié)果result:=10 /為為result變量賦值,返回結(jié)果變量賦值,返回結(jié)果3.函數(shù)調(diào)用函數(shù)調(diào)用函數(shù)過程函數(shù)過程(參數(shù)參數(shù),參數(shù)參數(shù))【例【例2.22】 計算階乘并顯示計算
21、公式。計算階乘并顯示計算公式。 Delphi 程序設(shè)計2.5.3 變量的作用域變量的作用域1.全局變量全局變量2.局部變量局部變量【例【例2.23】 求求100以內(nèi)的以內(nèi)的Smith數(shù)。數(shù)。 Delphi 程序設(shè)計2.5.4 參數(shù)傳遞參數(shù)傳遞1.參數(shù)聲明參數(shù)聲明2.值參數(shù)值參數(shù)3.變量參數(shù)變量參數(shù)4.常量參數(shù)常量參數(shù)5.輸出參數(shù)輸出參數(shù)6.參數(shù)默認值參數(shù)默認值【例【例2.24】 求求500以內(nèi)的親密數(shù)對。以內(nèi)的親密數(shù)對。 Delphi 程序設(shè)計2.5.5 過程過程/函數(shù)中參數(shù)的類型函數(shù)中參數(shù)的類型兼容原則兼容原則1.參數(shù)傳遞的類型兼容原則參數(shù)傳遞的類型兼容原則2.形式參數(shù)的類型聲明限制形式參數(shù)
22、的類型聲明限制3.函數(shù)返回值的類型限制函數(shù)返回值的類型限制 Delphi 程序設(shè)計2.5.6 過程過程/函數(shù)的重載函數(shù)的重載function Max(A,B: Integer): Integer; overload;function Max(A,B: Int64): Int64; overload;重載的多個過程重載的多個過程/函數(shù)之間必須滿足以下兩點:函數(shù)之間必須滿足以下兩點:參數(shù)必須不同,即以不同的參數(shù)個數(shù)或參數(shù)類參數(shù)必須不同,即以不同的參數(shù)個數(shù)或參數(shù)類型來區(qū)別重載的過程型來區(qū)別重載的過程/函數(shù)。函數(shù)。返回值可以相同,也可以不同,即不能以不同返回值可以相同,也可以不同,即不能以不同的返回值
23、來區(qū)別重載的過程的返回值來區(qū)別重載的過程/函數(shù)。函數(shù)。 Delphi 程序設(shè)計2.5.7 遞歸的過程與函數(shù)遞歸的過程與函數(shù)【例【例2.25】 使用遞歸函數(shù)計算階乘。使用遞歸函數(shù)計算階乘。2)!1(1 , 01!nnnnn5!返回 154!43!32!21!1(a) 遞歸調(diào)用5!54!43!32!21!1(b) 為每個遞歸調(diào)用返回一個值返回 2!=2返回 3!=6返回 4!=24返回 5!=120結(jié)果值 5!=1205!=54!=543!=5432!=54321! Delphi 程序設(shè)計實驗實驗2 Object Pascal語言程語言程序設(shè)計基礎(chǔ)訓(xùn)練序設(shè)計基礎(chǔ)訓(xùn)練1.金額的中文大寫方式2.求解約瑟夫環(huán)問題 15324(a) 初始化計數(shù)起點15304(b) 2出環(huán)后15300(c) 4出環(huán)后05300(d) 1出環(huán)后00300(e) 5出環(huán)后
- 溫馨提示:
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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 造紙納米碳酸鈣
- 2019中考物理第1章機械運動復(fù)習(xí)課件新人教版1
- LRBG的技能模型與角色模型
- 轉(zhuǎn)子間骨折的個手術(shù)技巧
- 生命之源血液
- 表情符號與藝術(shù)-美術(shù)ppt課件
- 壓力管理和積極心態(tài)
- 部編版初中語文春優(yōu)質(zhì)課課件
- 教育行業(yè)聯(lián)盟解決方案培訓(xùn)-new
- 控制與接口技術(shù)-基于模糊推理的智能控制 1226
- 八年級物理-聲音的特征-課件
- 藤野先生余映潮教案課件
- 興趣及其培養(yǎng)(發(fā)展職業(yè)生涯要立足本人實際)詳解課件
- 學(xué)會調(diào)控情緒_課件(教育精品)
- (廣州版)五年級英語下冊課件-Module-4-Unit-112