版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第二章面向對象的pascal語言本章學習導讀2.1ObjectPascal概述2.2基本數據類型2.3運算符
本章小結2023/10/8C++面向對象程序設計程序設計基礎教程第二章面向對象的pascal語言本章學習導讀2023/101本章學習導讀本章首先介紹如何在Delphi集成開發(fā)環(huán)境中創(chuàng)建控制臺程序,這將為下面學習對象Pascal語言的基本理論創(chuàng)造一個簡單實用的上機環(huán)境;然后介紹面向對象的Pascal語言中的一些基本知識,如源程序結構、符號、常量、變量、基本數據類型和表達式,并相應的配合圖形界面程序實現(xiàn)的實例進一步加深讀者對相關知識點的理解。讀者在學習完本章之后就可以使用Delphi進行簡單的面向對象的程序設計和開發(fā)了。2023/10/8C++面向對象程序設計程序設計基礎教程本章學習導讀本章首先介紹如何在Delphi集成開發(fā)環(huán)境中創(chuàng)建22.1ObjectPascal概述2.1.1標識符2.1.2保留字2.1.3注釋2.1.4常量和變量
2023/10/8C++面向對象程序設計程序設計基礎教程2.1ObjectPascal概述2.1.1標識符32.1ObjectPascal概述ObjectPascal具備清晰的模塊結構,編譯、運行效率高,便于移植,同時由于它提供了各種常量、變量的設置以及豐富的數據類型,在充分體現(xiàn)結構化程序設計的同時,使其應用程序廣泛應用于應用軟件的開發(fā)。通??梢岳肈elphi開發(fā)下面的3種應用程序:(1)Windows圖形界面程序(2)控制臺程序(3)服務器程序2023/10/8C++面向對象程序設計程序設計基礎教程2.1ObjectPascal概述ObjectPas42.1ObjectPascal概述例2-1:編寫一個小程序。要求輸入一行文字,然后輸出用戶輸入的文字,按回車鍵退出。該實例可以讓讀者在學習對象Pascal語言的過程中方便地上機。該實例具有以下特點:(1)是一個控制臺程序。(2)生成的應用程序非常小,一般在幾十個字節(jié)左右。(3)便于保存和備份實例。因為實例的運行環(huán)境、界面模式和文件等都比較簡單、統(tǒng)一,所以在做完實例之后可以將關鍵代碼復制到某個字處理軟件的文檔中保存。另外也可以通過簡單的操作將運行結果顯示的文字復制到剪貼板中。(4)相關文件少。最少情況下可以只有一個工程文件(.dpr)和一個可執(zhí)行文件(.exe)。2023/10/8C++面向對象程序設計程序設計基礎教程2.1ObjectPascal概述例2-1:編寫一個小52.1.1標識符標識符(Identifiers)是以字母或下劃線開頭,后跟字母、數字或下劃線所組成的串,其作用是標識常量、變量、類型、屬性、對象、過程、函數、程序、單元、庫和組件庫等。標識符由一個或多個ASCII碼字符序列組成,其構詞規(guī)則如下:(1)標識符由字母、數字或下劃線組成;(2)標識符的第一個字符必須是字母或下劃線;(3)標識符的長度不應超過255個字符,否則只有前255個字符有效;(4)不能將保留字用作標識符;(5)標識符不區(qū)分大、小寫。2023/10/8C++面向對象程序設計程序設計基礎教程2.1.1標識符標識符(Identifiers)是以字母62.1.2保留字程序如同一篇文章,由字符組成單詞,再由單詞和符號構成句子――語句。ObjectPascal語言中具有特殊含義的單詞稱為保留字。保留字系統(tǒng)已使用,用戶不可以用來作為標識符。以下是ObjectPascal的保留字:
AND,ARRAY,BEGIN,CASE,CONST,DIV,DO,DOWNTO,ELSE,END,F(xiàn)ILE,F(xiàn)OR,F(xiàn)UNTION,GOTO,IF,IN,LABEL,MOD,NIL,NOT,OF,OR,PACKED,PROCEDURE,PROGRAM,RECORD,REPEAT,SET,THEN,TO,TYPE,UNTIL,VAR,WHILE,WITH等2023/10/8C++面向對象程序設計程序設計基礎教程2.1.2保留字程序如同一篇文章,由字符組成單詞,再由單72.1.3注釋注釋語句為非執(zhí)行語句,編譯程序不對其進行翻譯,也不執(zhí)行,只是為方便用戶讀程序而附加的解釋說明語句。ObjectPascal支持3種類型的注釋。大括號注釋:“{”與“}”的成對使用表示它們之間的內容為注釋部分。帶星號的小括號注釋:“(*”與“*)”的成對使用表示它們之間的內容為注釋部分。雙斜杠注釋“//”:表示所在行的該符號之后的內容為注釋。2023/10/8C++面向對象程序設計程序設計基礎教程2.1.3注釋注釋語句為非執(zhí)行語句,編譯程序不對其進行翻82.1.3注釋例2-2:編寫一個小程序。依次輸入a,b,c三個數,然后分行輸出三個數,按回車鍵退出。2023/10/8C++面向對象程序設計程序設計基礎教程2.1.3注釋例2-2:編寫一個小程序。依次輸入a,b,92.1.4常量和變量常量和變量是學習各種編程語言進行程序設計的基礎概念,它們都是存儲數據的載體,它們在同一時刻只存儲一個數據。常量和變量代表了在程序運行過程中兩種不同狀態(tài)的量。常量的值是指在程序運行過程中始終不變;與之相反,變量的值則是程序運行過程中可以改變。2023/10/8C++面向對象程序設計程序設計基礎教程2.1.4常量和變量常量和變量是學習各種編程語言進102.1.4常量和變量常量在ObjectPascal中用Const關鍵字來聲明變量,可以同時聲明一個或幾個常量,每定義一個常量應以分號結束。說明常量時,不需要指定其數據類型,只需給出具體的值。因為編譯器能根據常量的值自動判斷常量的類型并分配內存,對于整型常量,編譯器在運行時跟蹤它的值,并不對它分配內存。如:Consta=10,編譯器能自動判斷a是整型,ConstPi=3.14判斷Pi是實型,等等。常量賦值的格式如下:
Const常量名=表達式;2023/10/8C++面向對象程序設計程序設計基礎教程2.1.4常量和變量常量2023/10/8C++面向對象112.1.4常量和變量變量ObjectPascal中用Var關鍵字來聲明變量,在聲明變量時需要聲明變量的類型。變量分為全局變量和局部變量。全局變量一旦聲明,會在整個程序中起作用。而局部變量則是在某一個過程或函數中起作用,退出該過程或函數則該變量自動從內存中被釋放。變量是程序代碼中代表一個內存地址的標識符,而此地址中的內容在程序代碼執(zhí)行時可以被改變。在使用變量前必須對它進行說明,即對它進行命名,并說明它的類型。系統(tǒng)根據變量的數據類型為每一個變量分配一定的內存空間。用戶可以通過變量名對內存單元進行讀或寫。變量賦值的格式如下:var變量名列表:類型名;2023/10/8C++面向對象程序設計程序設計基礎教程2.1.4常量和變量變量2023/10/8C++面向對象122.1.4常量和變量例2-3:計算路程有一輛汽車每小時可以行駛x公里,欲計算y小時能行駛多少公里(假設x和y均為整數)。解決這個問題需要使用公式:路程=速度×時間。要編寫解決這個問題的程序,需要使用3個變量:v、t和s。變量v用于存放速度的值,變量t用于存放時間的值,變量s用于存放路程的值。2023/10/8C++面向對象程序設計程序設計基礎教程2.1.4常量和變量例2-3:計算路程2023/10/8132.2基本數據類型2.2.1簡單數據類型2.2.2字符串類型2.2.3可變類型2.2.4類型轉換
2023/10/8C++面向對象程序設計程序設計基礎教程2.2基本數據類型2.2.1簡單數據類型2023/1142.2基本數據類型在ObjectPascal語言中,每個數據都有一個確定的類型,某種數據類型定義了該類型數據的存儲方式和允許的一組運算,存儲方式的定義相應地便確定了該類型數據的取值范圍。ObjectPascal是一種強類型語言,其變量在使用之前都要聲明其數據類型。變量的數據類型決定了它能夠存儲數據的形式、數據的范圍以及它能夠進行的運算。在聲明變量時,常量值本身就代表其類型,同時也決定了它所能參與的運算。2023/10/8C++面向對象程序設計程序設計基礎教程2.2基本數據類型在ObjectPascal語言中,每152.2.1簡單數據類型簡單數據類型包括整型、實型、布爾型和字符型等。整型一個整型數據用來存放整數。ObjectPascal支持7種預定義整型,每一種類型規(guī)定了相應的整數取值范圍以及所占用的內存字節(jié)數。整型類型是由正號或負號、數字組成的數據,數據中不包含小數。一般整型類型是最常用的類型,它們可以充分利用CPU和操作系統(tǒng)的特性,所以在程序中應盡可能使用這種整數類型。實型一個實型數據用類存放實數,是實數的子集,它是帶有小數部分的數值。ObjectPascal支持六種預定義實型,每一種類型規(guī)定了相應的實數取值范圍、所占用的內存字節(jié)數以及它們所能達到的精度見教材表2-2所示。2023/10/8C++面向對象程序設計程序設計基礎教程2.2.1簡單數據類型簡單數據類型包括整型、實型、布爾型162.2.1簡單數據類型布爾型一個布爾型數據用來存放邏輯值(布爾值)。ObjectPascal支持四種預定義布爾型,每一個類型規(guī)定了所占用的內存字節(jié)數。布爾型的值只有兩個:False(序號是0)和True(序號是1),分別表示邏輯假和邏輯真。并且True<False。4.字符型字符型用Char作為標識符。字符串用String作為標識符。字符型必須用單引號括起來,字母作為字符型時,要區(qū)分大小寫,并且字符型只允許單引號中有一個字符,否則就是字符串。2023/10/8C++面向對象程序設計程序設計基礎教程2.2.1簡單數據類型布爾型2023/10/8C++面向172.2.1簡單數據類型例2-4:編寫一個小程序,將整數值為0~255的字符在屏幕上輸出。2023/10/8C++面向對象程序設計程序設計基礎教程2.2.1簡單數據類型例2-4:編寫一個小程序,將整數值182.2.2字符串類型字符串類型包括ShortString,AnsiString和WideString三種類型,如教材表2-3所示。ShortString類型中的每個元素都是AnsiChar類型,不以NULL作為結束標記;AnsiString類型也是基于AnsiChar類型,可被動態(tài)分配存儲空間,字符個數幾乎不受限制,以NULL作為結束標記;WideString與AnsiString類似,只是所包含的字符是WideChar類型字符。習慣上String默認為AnsiString類型。2023/10/8C++面向對象程序設計程序設計基礎教程2.2.2字符串類型字符串類型包括ShortStri192.2.3可變類型有時需要對一些數據類型變化的數據進行操作,并且在編譯期間不能確定數據的類型,這時就可以使用可變類型的數據。這些數據的數據類型可以在運行期間進行改變,但是它們比固定類型的數據占用更多的空間和更多的操作實踐。另外,可變類型不能包含記錄型、集合類型、靜態(tài)數組、文件類型、類、指針類型以及長整型等數據類型??勺冾愋妥兞柯暶鳎?/p>
var變量名表:variant2023/10/8C++面向對象程序設計程序設計基礎教程2.2.3可變類型有時需要對一些數據類型變化的數據進行操202.2.4類型轉換在Delphi程序中,只有賦值號兩端的數據類型一致或相容才可以進行賦值的操作。有時在一個表達式中包含有各種類型的數據,這就需要將不同類型的操作數轉換為同一類型的數據,使所得到的結果只能是某一類型的數據。2023/10/8C++面向對象程序設計程序設計基礎教程2.2.4類型轉換在Delphi程序中,只有賦值號兩端的212.2.4類型轉換類型相容類型相容的數據之間可以進行關系運算。類型相容是賦值相容的前提,也是進行數據運算的前提。在ObjectPascal中,兩種數據類型只有滿足下列條件之一時才是相容的:兩種類型的數據一致。兩種類型的數據都是實型。兩種類型的數據都是整型。一種數據類型是另一種數據類型的子界。兩種數據類型是另外一種宿主類型的子界。兩種數據類型都是另外一種相容基類型的集合類型。兩種數據類型都是緊湊字符串類型,并且具有相同的元素個數。2023/10/8C++面向對象程序設計程序設計基礎教程2.2.4類型轉換類型相容2023/10/8C++面向對222.2.4類型轉換一種數據類型是字符串類型,另一種數據類型是字符串類型、緊湊字符串類型或字符類型,或者一種數據類型是Char類型,另一種數據類型是形式為array[0..n]ofchar的字符數組。一種類型是Pointer類型,另一種數據類型是指向任意一種數據類型的指針類型,或者2種數據類型都是基類型相同的指針類型。兩種數據類型都是類數據類型或者類引言類型,并且一種數據類型繼承了另外一種類型。兩種數據類型都是結果類型相同、參數個數相同、參數類型一致的過程類型。一種數據類型是可變數據類型,另外一種數據類型是整型、實型、字符串類型或布爾類型。2023/10/8C++面向對象程序設計程序設計基礎教程2.2.4類型轉換一種數據類型是字符串類型,另一種數據類232.2.4類型轉換變量的強制類型轉換強制類型轉換就是將一種類型的變量當作另一種類型。因為ObjectPascal是對數據類型要求嚴格的面向對象程序設計語言,編譯器檢查一些語句的數據類型是非常嚴格的,為了能通過編譯檢查,經常需要把一個變量的類型轉換為另一種類型。強制類型轉換的格式如下:
類型標識符(變量名);2023/10/8C++面向對象程序設計程序設計基礎教程2.2.4類型轉換變量的強制類型轉換2023/10/8C242.2.4類型轉換例2-5:有以下程序段Varstr1:char;str2:byte;beginstr1:=’a’;str2:=str1;End試寫出該程序正確的類型轉換語句。2023/10/8C++面向對象程序設計程序設計基礎教程2.2.4類型轉換例2-5:有以下程序段2023/10/252.3運算符2.3.1賦值運算符2.3.2算術運算符2.3.3關系運算符2.3.4邏輯運算符2.3.5集合運算符2.3.6位運算符2.3.7其他運算符2.3.8運算符的優(yōu)先級2023/10/8C++面向對象程序設計程序設計基礎教程2.3運算符2.3.1賦值運算符2023/10/8C262.3運算符運算符是在代碼中對各種數據類型進行運算的符號。例如,有能進行加、減、乘、除的運算符,有能訪問一個數組的單個單元地址的運算符。表達式由運算對象和運算符兩部分組成。不同數據類型的數據所能進行的運算是不同的,下面分別對各種運算符及其功能進行介紹。根據運算符給定的操作數數據類型,可以將其分為以下幾種:賦值運算符、算術運算符、關系運算符、邏輯運算符、集合運算符、位運算符和其他運算符。2023/10/8C++面向對象程序設計程序設計基礎教程2.3運算符運算符是在代碼中對各種數據類型進行運算的符號272.3.1賦值運算符賦值語句格式:
變量:=表達式;其中,“:=”稱為賦值號。賦值語句的功能是先計算賦值運算符右邊表達式的值,然后再把結果賦給左邊的變量。例如:x:=12;y:=5*x+6;str1:=’w’;2023/10/8C++面向對象程序設計程序設計基礎教程2.3.1賦值運算符賦值語句格式:2023/10/8C+282.3.2算術運算符算術運算符對浮點數和整數進行加、減、乘、除和取模運算,如教材表2-4所示。其中+和-運算符還可以作為單目運算符,放在浮點數或整數前,分別表示正數和負數。此外,+運算符還可以用在字符串的運算表達式中,可以將兩個字符串連在一起。+、-和*運算符還可以用在集合運算表達式中。在進行“+”、“-”、“*”運算中,只有一個運算分量為Real類型,則結果就為Real類型,只有兩個運算分量都為Integer類型時,結果才為Integer類型。2023/10/8C++面向對象程序設計程序設計基礎教程2.3.2算術運算符算術運算符對浮點數和整數進行加、減、292.3.2算術運算符例2-6:varn,m,r:integer;x,y,z:real;beginn:=10;m:=3;x:=2.5;r:=nmodm;//將n除以m所得的余數賦給rz:=n+x;y:=n/x;writeln(r);writeln(z);writeln(y);readlnend.程序段執(zhí)行后,r,z,y的值分別為多少?2023/10/8C++面向對象程序設計程序設計基礎教程2.3.2算術運算符例2-6:2023/10/8C++面302.3.2算術運算符例2-7:已知圓半徑r,計算圓的周長和面積。使用公式:C=2∏r和S=∏r2,式中C表示圓的周長,S表示圓的面積,r表示圓的半徑。2023/10/8C++面向對象程序設計程序設計基礎教程2.3.2算術運算符例2-7:已知圓半徑r,計算圓的周長312.3.3關系運算符關系運算符可以對兩個普通數據類型、類、對象、接口類型或字符串類型的數據進行比較,結果數據類型為布爾類型。關系運算符如教材表2-6所示。關系運算符用來比較兩個操作數的大小,被比較的兩個操作數類型必須相容,若操作數是數值,則按照數值的大小進行比較;若操作數是字符(串),則根據字符的先后順序按照ASCII值進行比較。例:’a’>’A’//結果為True,‘a’的ASCII值為‘97’,
//‘A’的ASCII值為65’15’>’A’//結果為False2023/10/8C++面向對象程序設計程序設計基礎教程2.3.3關系運算符關系運算符可以對兩個普通數據類型、類322.3.3關系運算符例2-8:在Delphi集成開發(fā)環(huán)境中,創(chuàng)建一個控制臺程序的工程,并在代碼編輯窗口中打開Project8.dpr文件,在該文件中輸入如下代碼:programProject8;{$APPTYPECONSOLE}varx,y:Integer;Bo:Boolean;beginx:=10;//給x賦值10y:=20;//給y賦值20Bo:=not(x>y);writeln(Bo);readlnend.運行后,布爾型變量“Bo”的值為什么?2023/10/8C++面向對象程序設計程序設計基礎教程2.3.3關系運算符例2-8:在Delphi集成開發(fā)環(huán)332.3.4邏輯運算符Pascal語言用and和or作為邏輯與和邏輯或運算符,Pascal的邏輯非的運算符是not,它是用來對一個布爾表達式取反。邏輯運算符對邏輯類型的操作數進行運算,數據結果也為邏輯類型,如教材表2-7所示。not(邏輯非):將邏輯結果取反,即原先為True的變成False,原選為False的變成True。and(邏輯與):有且僅有兩個操作數為真,結果才為真;否則為假。相當于漢語中“并且”的意思,只有當兩個條件同時滿足時,結果才為True。or(邏輯或):僅當一個操作數為真時,值就為真,否則為假。xor(邏輯異或):當兩個操作數不同時,即一個為True,另一個為False時結果為真,同時為True或同時為False時為假。2023/10/8C++面向對象程序設計程序設計基礎教程2.3.4邏輯運算符Pascal語言用and和or作為邏342.3.5集合運算符集合運算符只要對兩個集合進行操作,判斷兩個集合之間的關系,如教材表2-9所示。例如,有以下說明和集合的運算:typeNumbers=1...100;Numset=setofNumbers;varset1,set2,set3,set4,set5:Numset;beginset1:=[1,3,5,7];set2:=[2,4,5,8];set4:=[1,3];set5:=[2,5];set3:=set1+set2;end;試算出set3的值。2023/10/8C+
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工作心得體會格式
- 2025機械試用買賣合同書參考式樣
- 2025贊助合同常用版范本
- 2025補償貿易購銷合同書范本
- 二零二五年度農村房屋買賣合同協(xié)議書(含農村土地整治工程)
- 二零二五年度高效養(yǎng)雞場飼養(yǎng)員技能提升合同3篇
- 二零二五年度二零二五年度商標轉讓與全球市場布局合同3篇
- 2025知識產權共享合同范本
- 2025年度子女對父母贍養(yǎng)及家庭財產管理協(xié)議3篇
- 2025年度公司汽車銷售業(yè)務員銷售目標責任合同2篇
- 2024信息技術應用創(chuàng)新信息系統(tǒng)適配改造成本度量
- 廣東省廣州市2025屆高三上學期12月調研測試(零模)英語 含解析
- 陜西測繪地理信息局所屬事業(yè)單位2025年上半年招聘87人和重點基礎提升(共500題)附帶答案詳解
- 保險學期末試題及答案
- 高一數學上學期期末模擬試卷01-【中職專用】2024-2025學年高一數學上學期(高教版2023基礎模塊)(解析版)
- 嚴重精神障礙患者隨訪服務記錄表
- 2024-2025學年人教版八年級上冊地理期末測試卷(一)(含答案)
- 統(tǒng)編版(2024新版)七年級上冊道德與法治第四單元綜合測試卷(含答案)
- 滬教版英語小學六年級上學期期末試題與參考答案(2024-2025學年)
- 北京市海淀區(qū)2023-2024學年四年級上學期語文期末試卷
- 混凝土企業(yè)安全培訓
評論
0/150
提交評論