Delphi的編程語言Object Pascal(4)

1. 標準數據類型

 


1.1 實型

實型是存儲實數的總稱, 也統稱爲浮點類型,值域幾乎是無限的,精度較高。

類型

名稱

範圍

有效數字

字節數

實型

Real

±5.0*10-324 ~1.7*10308

15~16

8

雙精度

Double

±5.0*10-324 ~1.7*10308

15~16

8

48位實型

Real48

±2.9*10-39~1.7*1038

11~12

6

單精度

Single

±1.5*10-45~7.4*1038

7~8

4

擴展型

Extended

±7.4*10-4932~1.1*104932

19~20

10

計算型

Comp

-263+1~263-1

19~20

8

貨幣型

Currency

-922337203685477.5808 ~922337203685477.5807

19~20

8

l          一般定義方法:

   Var

       VirableName:TypeName;

    VirableName是實型變量名,TypeName是實型變量類型。

實數表示方法有兩種:

l          小數表示法:

    Eg:1.25-132.670.00250.0100.0

l          指數表示法(科學表示法:尾數,指數)

   Eg:1.25E01.3267E+2-2.3E-2

l          使用小數表示法,必須要有小數點,且小數點前後的數字(0~9)不能省略。

l          使用科學表示法,尾數和指數都不能省略,指數必須爲整數。

 

1.1.1實型操作函數- 絕對值函數

絕對值函數:Function Abs(X)

     返回參數X的絕對值,參數X可以是整型或實型,返回值爲非負的整數或實數。

1.1.2 平方/平方根

l          平方函數:

   Function Sqr(X:Extended):Extended;

   返回參數X的平方:X*X,返回值也是實型數據。

l          平方根函數:

   Function Sqrt(X:Extended):Extended;

   返回參數X的算術平方根,返回值也是實型數據。

1.1.3 三角函數

三角函數:Delphi提供了三個三角函數

   Function Sin(X:Extended):Extended;

   Function Cos(X:Extended):Extended;

   Function ArcTan(X:Extended):Extended;

   (1)參數X爲數值表達式。在SinCos函數中X是以弧度爲單位的角度,分別返回該角度所對應的正弦和餘弦值。ArcTan函數返回的是正切值爲X的弧度值。

   (2)弧度和角度的換算關係爲:π=180º

   (3)由這三個基本的三角函數可以導出:

       Tan(X)=Sin(X)/Cos(x)

       ArcSin(X)=ArcTan(X/Sqrt(1-Sqr(X)))

       ArcCos(X)=ArcTan(Sqrt(1-Sqr(X))/X)

1.1.4 整數與小數函數

l          取整數函數:

   Function Int(X:Extended):Extended;

   參數X爲實型表達式,返回X的整數部分,它仍然是實型,小數部分設置爲0

l          取小數函數

   Function Frac(X:Extended):Extended;

   參數X爲實型表達式,返回X的小數部分,Frac(X)=X-Int(X)

1.1.5 取整函數

l          取整函數:

   Function Trunc(X:Extended):Int64;

   參數X爲實型表達式,返回不大於X的整數。

l          舍入函數:

   Function Round(X:Extended):Int64;

   參數X爲實型表達式,返回對X四捨五入後的整數部分。

1.1.6 指數對數函數

l          指數函數:

   Function Exp(X:Real):Real;

   返回ex,返回值也是實型數據。

l          對數函數:

   Function Ln(X:Real):Real;

   (1)參數X爲正的實型表達式,返回X的自然對數,返回值也是實型數據。

   (2)根據公式:Xn=enln(X),導出Xn=Exp(n*Ln(X))

   (3)常對數                公式,可以求出常對數。

1.1.7 隨機函數

   Function Random[(Range:Ingeger)];

   返回一個大於或等於0且小於參數Range的隨機參數,如果缺省參數Range,返回一個大於或等於0且小於1的隨機實數。

   爲了能產生不同的隨機數,應在程序啓動時調用一次Randomize過程,以初始化內部隨機數產生器。Procedure Randomize;

1.1.8 π函數

Function Pi:Extended;

   該函數無參數,Delphi提供了一個返回圓周率的函數Pi

 

1.2 時間日期型

l          時間日期型是浮點型的一種映射。TDateTime,TDate,TTime;

l          定義的一般格式:

   Var

       VariableName:TypeName;

   VirableName是時間日期類型變量TypeNameTDateTime,TDate,Ttime;

1.2.1 日期時間函數

   Function Now:TDateTime;

   返回的TDateTime類型其實質是一個Double類型,整數部分表示從18991230以來所經過的天數,小數部分則表示經過的時間與24小時之比。

    Eg:0表示:12/30/1899 1200AM

    Eg:-1.25表示:12/29/1899 600Am

1.2.2 日期函數

   Function Date:TDateTime;

   返回系統系統當前日期

   若要計算兩日期之差,只需作簡單的減法。

1.2.3 時間函數

   Function Time:TDateTime;

   用來返回系統當前的時間。

   若要計算兩時間之差,只需作簡單的減法。

1.2.4 轉換函數

l          日期時間轉換字符串函數

   Function DateToStr(Date:TDateTime):String;

   Function TimeTostr(Time:TDateTime):String;

   Function DateTimeToStr(DateTime:     TDateTime):String;

    把日期或時間轉換成字符串。

1.2.5 轉換函數

l          日期型轉換整型函數

   Function EncodeDate(Year,Month,Day: Word):TDateTime;

   返回Year,Month,Day所對應的日期。

   Procedure DecodeDate(Date,var Year,Month,Day:Word);

    返回Year,Month,Day

l          時間型轉換整型函數

   Function EncodeTime(Hour,Min,Sec,MSec: Word);TDateTime;

   返回Hour,Min,Sec,MSec所對應的時間。

   Procedure DecodeTime(Time:TDate,Var Hour,Min,Sec,MSec:Word);

   返回Hour,Min,Sec,MSec

1.2.6 星期函數

l          星期函數

   Function DayOfWeek(Date: TDateTime):Integer;

   返回整數1~71表示星期日,7表示星期六。

1.2.7 日期與時間格式化函數

l          日期與時間格式函數

   Function FormatDateTime(Const Format:String; DateTime:TDateTime):String;

   將參數DateTime所給的日期時間值按參數Format指定的格式輸出。參數Format又稱格式化字符串

1.2.8 日期與時間格式化字符串取值和意義

取值

意義

c

使用全局變量ShortDateFormat定義的格式顯示日期,使用全局變量LongTimeFormat定義的格式顯示時間。時間在日期之後,若時間部分爲0,則不顯示時間。

d

將日期顯示爲1~31的格式,沒有前導0

dd

將日期顯示爲1~31的格式,有前導0

ddd

用全局變量ShortDayNames定義的名稱顯示日期(ShortDayNames,缺省值爲:array[星期日..星期六])

dddd

用全局變量LongDayNames定義的名稱顯示日期(LongDayNames,缺省值爲:array[星期日..星期六])

ddddd

用全局變量ShortDateNames定義的名稱顯示日期

dddddd

用全局變量LongDateNames定義的名稱顯示日期

m

將月份顯示爲1~12的格式,沒有前導0

mm

將月份顯示爲1~12的格式,有前導0

mmm

用全局變量ShortMonthNames定義的名稱顯示月份(ShortMonthNames缺省值爲:array[一月..十二月])

mmmm

用全局變量LongMonthNames定義的名稱顯示月份(LongMonthNames缺省值爲:array[一月..十二月])

yy

將年份顯示爲00~99的格式

yyyy

將年份顯示爲0000~9999的格式

h

將小時顯示爲0~23的格式,沒有前導0

hh

將小時顯示爲0~23的格式,有前導0

n

將分鐘顯示爲0~59的格式,沒有前導0

nn

將分鐘顯示爲0~59的格式,有前導0

s

將秒鐘顯示爲0~59的格式,沒有前導0

ss

將秒鐘顯示爲0~59的格式,有前導0

t

用全局變量ShortTimeFormat定義的格式顯示時間

tt

用全局變量LongTimeFormat定義的格式顯示時間

AM/PM

使用12h制顯示時間(hhh),上午顯示AM下午顯示PM

A/P

使用12h制顯示時間(hhh),上午顯示A下午顯示P

Ampm

使用12h制顯示時間(hhh),上午顯示全局變量TimeAMString的內容,下午顯示全局變量TimePMString的內容。

/

顯示全局變量DateSeparator指定的日期分隔符

顯示全局變量TimeSeparator指定的日期分隔符

‘xx’/”xx”

單引號或雙引號中的字符串將原樣輸出

Format參數爲空時,相當於取值爲“C”

FormatDatetime(‘“今天是:”dddddd,ddd’,date)

 

1.3 字符串型

l          有限長字符序列的集合稱爲字符串類型。默認情況下,字符串類型變量最多可以包含255個字符,也可以在定義字符串變量時指明其所包含字符的最大個數。

l          定義的一般格式:

    Var

       VariableName:TypeName [number] ;

    VariableName是字符串變量名,TypeName是字符串類型。

1.3.1 字符串類型

類型

名稱

最大長度

所需內存

用途

是否以Null結尾

字符串型

String

255個字符或約231個字符

2~256bytes

通用字符串型

短字符串型

ShortString

255個字符

2~256bytes

兼容以前版本的字符串類型

Ansi字符串型(長字符)

AnsiString

231個字符

4bytes~2G

8字節的ANSi字符

寬字符串型

WideString

230個字符

4bytes~2G

Unicode字符

1.3.2 大小寫轉換函數

   Function LowerCase(Const S:String):String;

   返回小寫字符串。

   Function UpperCase(Const S:String):String;

   返回大寫字符串。

1.3.3 比較先後函數

Function CompareStr(Const S1,S2:String): Integer;

   Function CompareText(Const S1,S2:String): Integer;

   (1)S1>S2返回函數值大於0S1<S2返回函數值小於0S1=S2返回函數值等於0

   (2)CompareStr()區分大小寫,CompareText()不區分大小寫

1.3.4 合併字符串函數

Procedure AppendStr(Var Dest :string:const S:String);

   相當於執行Dest:=Dest+S;

   Function Concat(S1[,S2,S3,]:String);

   用來合併多個字符串

1.3.5 查找字符串函數

Function Pos(Substr:String;S:String):Integer;

   Pos(S0,S)返回字符串S0在字符串S中的位置(整數值),若S0不在S中,則返回0

1.3.6 求字符串長度函數

Function Length(S:String)Integer;

   返回字符串S的長度值(整數值)。

1.3.7 截取字符串函數

Function Copy(S:String,Index,Count:Integer):String;

   如果Index大於字符串的長度,則返回一個空串,如果從Index開始到S的結尾不足Count個字符,則返回從Index開始到S結尾的所有字符。

1.3.8 刪除字符串函數

   Procedure Delete(Var S:String;Index,Count: Integer);

   如果Index大於字符串的長度則不刪除任何字符,如果從Index開始到S的結尾不足Count個字符,則返回從Index開始到S結尾的所有字符。

1.3.9 插入字符串函數

   Procedure Insert(Source:String ; Var S:String ; Integer:Integer);

   Insert(S0,S,n)將字符串S0插入到字符串S中的第n個字符處。

1.3.10 設置字符串值函數

   Procedure SetLength(Var S; NewLength:Integer);

   S NewLength是一個整形變量,用來確定長度,

   SetLength(S0,3);表示從字符串S0中取出前三個字符再存入變量S0中。

1.3.11 截取字符串空格函數

Function Trim(Const S:String);String;

   Function TrimLeft(Const S:String):String;

   Function TrimRight(Const S:String):String;

   Trim用來清除字符串兩端的空格。

   TrimLeft用來清除字符串左邊的空格。

   TrimRight用來清除字符串右邊的空格。

1.3.12 數值與字符串轉換函數

l          數值型轉換成字符串型

Procedure Str(Const X[:Width [:Decimals]],Var S:String);

   參數WidthDecimals分別爲指定的寬度與小數位數。如果X爲整型,則S爲整型格式,如果X爲實型,則S爲科學計數格式。

l          字符串型轉換成數值型

   Procedure Val(S:String,Var V,Var Code:Integer);

   參數S爲字符串。V可以是整型,也可以是實型,Code爲整型。如果不爲0,則表示轉換過程出現錯誤。

l          整型數據轉換成字符串型

   Function InttoStr(Value:Integer):String;

   函數返回整型數據Value10進制格式的字符串。

l          實型數據轉換成字符串型

   Function FloattoStr(Value:Extended):String;

   函數返回實型數據Value的普通數字格式的字符串。轉換的有效精度爲15位。

l          數字字符串轉換成整型數值

   Function StrToInt(Const S:String):Integer;

   函數的參數可以是10進制或16進制格式的字符串,若爲非法的數字字符串,系統將引發EconvertError錯誤。

l          數字字符串轉換成實型數值

   Function StrToFloat(Const S:String):Extended;

   函數的參數是定點或浮點格式的字符串,若爲非法的數字字符串,系統將引發EconvertError錯誤。

l          10進制轉換爲16進制格式函數

   Function IntToHex(Value:Integer,Digits: Integer):String;

   函數返回一個字符串,Digits爲字符串的最小位數。在位數不足時以0在左邊填充。

1.3.13 數值與字符串格式化函數

l          字符串格式化函數

   Function Format(Const Format:String;Const Args:Array of Const):String;

   Format格式字符串,可以包括字符信息,也可以包含參數組Args中參數的類型和格式信息。

l          類型和格式信息由字符“%”開頭,格式入下:

   %[<參數位置:>:][-][<所佔寬度>][.<小數位數>]<類型>

   若缺省[<參數位置:>:],則從左到右依次分配各參數。“-”表示左對齊,若缺省則右對齊。<類型>爲參數的類型,其可能的取值和意義如下表:

取值

意義

d

10進制整數,在<小數位數>中可以指定轉換後數的最小位數,若小於該位數則在其左邊填0

u

無符號10進制整數,與d相似

e

浮點類型

f

定點類型

g

實數,結果爲最短字符串型式,可以是浮點形式或定點形式

n

數值格式實數:與f相似,但整數部分加上千位分隔符

m

貨幣形式

p

指針形式

s

字符串形式

x

16進制整數,與d相似

l          Eg:

   Format(‘%s申辦%d奧運會成功’,[‘北京’,2008])

 

 

附練習題:

1、創建一個delphi應用程序項目。在窗體中加入一個button1 和三個edit。第一個edit輸入圓的半徑,在edit2edit3中分別輸出圓的周長和麪積。

var r : Integer;

procedure TForm1.Button1Click(Sender: TObject);

begin

r := StrToInt(self.Edit1.Text);

self.Edit2.Text := floattostr(r * Pi);

self.Edit3.Text := floattostr(r*r*Pi);

end;

 

2、創建一個delphi應用程序項目。並使用隨機數,產生100-100的加法運算。

並能判斷結果的正誤和統計成績。

 

不太瞭解這個題目的意思,反正我是這麼寫

procedure TForm1.Button1Click(Sender: TObject);

var Num,i,iCount,iRight,iR1,iR2 : integer;

begin

Num :=strtoint(self.Edit1.Text);

iCount := 0;

for i:=1 to 10 do

begin

iCount :=iCount + 1;

iR1 := Random(50);

iR2 := Random(50);

if(Num = (iR1 + iR2)) then

begin

  iRight := iRight + 1;

end;

 

end;

showmessage('進行了:' + intTostr(iCount) + '次隨機運算' +#13 + '正確的次數爲' + intTostr(iRight));

end;

 

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章