程式組成
例1.1計算半徑為R的圓面積S
[Copy to clipboard]
CODE:
program Area; {程式首部}
{已知半徑求圓的面積}
const pi=3.14159; {說明部分——數據描述}
var s,r:real;
begin {執行部分}
readln(r);
s:=pi*sqr(r);
writeln(’s=’,s);
end.
上述程式第一行稱為程式首部。其中用花括弧(注釋可以用{ }或(* *)來表示)括起來的內容是注釋,程式第二行就是一個注釋,注釋除了給人看,增加程式的可讀性外,對程式編譯和運行不起作用。一個程式可以包含多個出現在不同處注釋,亦可無注釋。程式第三行是常量說明,程式第四行是變數說明。程式從begin到end都是執行(語句)部分
程式首部
例1.1的第一行稱為程式首部。program是保留字,接著是程式名(由你依據“標示符”規則自行定義),最後以分號表示程式首部結束,下面是程式主體的開始。程式首部在一個Turbo Pascal(僅在Turbo Pascal中有效)程式中並非必須出現,它是可選的。寫上它僅起了文檔作用。因此,在時間有限的情況下,如果用Turbo Pascal編程完全可以省略程式首部。
程式體
a.說明部分
說明部分用於定義和說明程式中用到的數據,由單元說明、標號說明、常量說明、類型說明、變數說明、函式或過程說明組成,並且這些數據的說明次序必須按照以上次序。但是一個簡單的Turbo Pascal程式也可以不包含說明部分,也就是說說明部分是可選的。
b.執行部分
執行部分描述了程式要執行的操作。它必須以一個Turbo Pascal保留字begin開始,以保留字end後跟句點結束,其間是一些執行具體操作的語句,並且以分號作為語句之間的分隔設定。begin 和end必須成對出現,這是一個Turbo Pascal程式所必須有的。緊跟end之後的句號表示執行部分的結束,也表示整個程式的結束。此後的任何語句都無效。Turbo Pascal規定緊隨end之前出現的分號允許省略。
程式結構
[Copy to clipboard]
CODE:
program 程式名;
uses
已知單元說明;
label
標號說明;
const
常量說明;
type
類型說明;
var
變數說明;
operator
運算符說明;
function
函式說明;
procedure
過程說明;
begin
語句;
語句;
……
語句
end.
字元與符號
保留字
所謂保留字是指在Pascal語言中具有特定的含義,你必須了解它的含義,以便於正確的使用,否則會造成錯誤。標準Pascal語言中的保留字一共有35個,Turbo Pascal語言一共有51個。下面是Pascal語言的保留字(斜體是Turbo Pascal特有的保留字):
(常用)
[Copy to clipboard]
CODE:
AND,ARRAY,BEGIN,CASE,CONST,DIV,DO,DOWNTO,ELSE,END,FILE,FOR,FUNTION,GOTO,IF,IN,LABEL,MOD,NIL,NOT,OF,OR,PACKED,PROCEDURE,PROGRAM,RECORD,REPEAT,SET,THEN,TO,TYPE,UNTIL,VAR,WHILE,WITH,EXPORTS,SHR,STRING,ASM,OBJECT,UNIT,CONSTRUCTOR,IMPLEMENTATION,DESTRUCTOR,USES,INHERITED,INLINE,INTERFACE,LIBRARY,XOR,SHL, FAR,OPERATOR
全部:
標識符
(1)標識符的定義:標識符就是以字母開頭的字母數字序列,有效長度為63個字元,並且大小寫等效。可以用來標示常量、變數、程式、函式等。例如例1.1中的Area(程式名),pi(符號常量),s、r(變數名)都是標識符。
(2)標識符的分類:
a.標準標識符:指Pascal語言預先定義的表識符,具有特殊含義。
以下列舉了Turbo Pascal語言部分常用的標準表識符:
QUOTE:
標準常量 False Maxint True
標準類型 Boolean Char Real Integer
標準函式 Abs Arctan Chr Cos Eof Eoln Exp
Ln Odd Ord Pred Round Sin Sqr
Sqrt Succ Trunc
標準過程 Dispose Get New Pack Page Put Read
Readln Reset Rewrite Unpack Write Writeln
標準檔案 Input Output
b.用戶字定義表識符:由你來根據需要定義。
(1)選用的表識符不能和保留字相同。
(2)語法上允許預定義的標準標識符作為你定義的的表識符使用,但最好還是不要用。
以下列舉了你在定義表識符時可以用的字元:
[Copy to clipboard]
CODE:
A——Z;a——z;0——9;+,-,*,/,=,<>,<=,>=,<,>,(,),[,],{,},:=,,,;,.,:,..,’,^,@
數據類型
數據是程式設計的一個重要內容,其重要特徵----數據類型,確定了該數據的形、取值範圍以及所能參與的運算。
Turbo Pascal 提供了豐富的數據類型,這些數據類型可以分為三大類:簡單類型、構造類型和指針類型,其中簡單類型可以分為標準類型(整型、實型、字元型和布爾型)和自定義類型(枚舉型和子界型),構造類型可以分為數組類型、集合類型、記錄類型和檔案類型。這些數據類型中除了指針類型是動態數據類型外,其他的都是靜態數據類型。在這些數據類型中簡單類型都是有序類型,除了實型以外的簡單類型都是順序類型,所謂順序類型就是他們的值不僅是有序的而且是有順序號。
在這裡主要介紹整型、實型、字元型和布爾型四種常用的數據類型。
整型
一個整型數據用來存放整數。Turbo Pascal支持五種預定義整型,它們是shortint(短整型)、 integer(整型)、 longint(長整型)、 byte(位元組型)和 word(字類型),Turbo Pascal分別用相同的名字作為他們的表識符。每一種類型規定了相應的整數取值範圍以及所占用的記憶體位元組數。
類型 數值範圍 占位元組數 格式
[Copy to clipboard]
CODE:
shortint -128..128 1 帶符號8位
integer -32768..32767 2 帶符號16位
longint -2^16~2^16-1 帶符號32位
byte 0..255 1 帶符號8位
word 0..65535 2 帶符號16位
Turbo Pascal規定了兩個預定義整型常量表識符maxint和maxlonint,他們各表示確定的常數值,maxint為32767, longint為2147483647,他們的類型分別是integer 和longint。
實型
一個實型數據用類存放實數。Turbo Pascal支持五種預定義實型,它們是real(基本實型)、 single(單精度實型)、double(雙精度實型)、extended(擴展實型)、comp(裝配實型),Turbo Pascal分別用相同的名字作為他們的表識符。每一種類型規定了相應的實數取值範圍、所占用的記憶體位元組數以及它們所能達到的精度。
類型 數值範圍 占位元組數 有效位數
[Copy to clipboard]
CODE:
real 2.9e-39..1.7e38 6 11..12
single 1.5e-45..3.4e38 4 7..8
double 5.0e-324..1.7e308 8 15..16
extended 3.4e-4932..1.1e4932 10 19..20
comp -2**63+1..2**63-1 8 19..20
Turbo Pascal支持兩種用於執行實型運算的代碼生成模式:軟體仿真模式和80x87浮點模式。除了real可以在軟體仿真模式下直接運行以外,其他類型必須在80x87浮點模式下運行。
布爾型
一個布爾型數據用來存放邏輯值(布爾值)。布爾型的值只有兩個:false和true,並且false的序號是0,true的序號是1。false 和true都是預定義常數表識符,分別表示邏輯假和邏輯真。並且true大於false。boolean是布爾型的表識符。
字元型
字元型用char作為表識符。字元型必須用單引號括起來,字母作為字元型時,大小寫是不等價的,並且字元型只允許單引號中有一個字元,否則就是字元串。
其他
構造類型:枚舉、子界、記錄、集合、數組、object(對象)等
註:引用其他單元後,還有更多類型
常量與變數
常量
(1)常量:在某個程式的整個過程中其值不變的量。
(2)常量定義:常量定義出現在說明部分。它的語法格式是:
const
<常量標識符>=<常量>;
<常量標識符>=<常量>;
常量表識符的類型由定義它的常量的類型決定。例如:const a=12 隱含說明a是整型;const r=3.21 隱含說明r是實型......
(3)常量定義部分必須以保留字const開頭,可以包含一個或幾個常量定義,而且每個常量均以分號結束。
(4)Turbo Pascal類型常量
類型常量,又稱變數常數,它是Turbo Pascal的一個擴充特性。類型常量的定義與標準Pascal規定的常數定義和變數說明有所區別。類型常量定義的語法格式:
const
<簡單類型常量標識符>:簡單類型=常數;
例如:
[Copy to clipboard]
CODE:
const
counter:integer=0;
flag:boolean=true;
index:0..100=0;
變數
(1)變數:在某個程式中的運行過程中其值可以發生改變的量
(2)變數說明:變臉說明出現在說明部分。它的語法格式是:
var
<變數標識符列表>:<類型>;
...
<變數標識符列表>:<類型>;
其中,保留字var表示開始一個變數說明部分。變數標識符列表是一個用逗號隔開的標識符序列,冒號後面的類型是類型標識符。每個變數說明均以分號結束。
例如:
[Copy to clipboard]
CODE:
var
a,b,c:integer;
m,n:real;
標準函式
算術函式
函式標識符 | 自變數類型 | 意義 | 結果類型 |
abs | 整型、實型 | 絕對值 | 整型、實型 |
arctan | 整型、實型 | 反正切 | 實型 |
cos | 整型、實型 | 餘弦 | 實型 |
exp | 整型、實型 | 指數 | 實型 |
frac | 整型、實型 | 小數部分 | 實型 |
int | 整型、實型 | 整數部分 | 整型 |
ln | 整型、實型 | 自然對數 | 實型 |
pi | 圓周率 | 實型 | |
sin | 整型、實型 | 正弦 | 實型 |
sqr | 整型、實型 | 平方 | 整型、實型 |
sqrt | 整型、實型 | 平方根 | 實型 |
例:
abs(-4)=4
abs(-7.49)=7.49
arctan(0)=0.0
sin(pi)=0.0
cos(pi)=-1.0
frac(-3.71)=-0.71
int(-3.71)=-3.0
sqr(4)=16
sqrt(4)=2
標量函式
函式標識符 | 自變數類型 | 意義 | 結果類型 |
odd | 整型 | 判斷奇數 | 布爾型 |
pred | 離散類型 | 求前趨 | 離散類型 |
succ | 離散類型 | 求後繼 | 離散類型 |
例:
odd(1000)=false
odd(3)true
pred(2000)=1999
succ(2000)=2001
pred(’x’)=’w’
succ(’x’)=’y’
轉換函式
函式標識符 | 自變數類型 | 意義 | 結果類型 |
chr | 整型 | 自變數對應的字元 | 字元型 |
ord | 離散類型 | 自變數對應的序號 | 整型 |
round | 實型 | 四捨五入 | 整型 |
trunc | 實型 | 截斷取整 | 整型 |
雜類函式
函式標識符 | 自變數類型 | 意義 | 結果類型 |
random | [0,1)之間的隨機實數 | 實型 | |
random | 整型 | [0,自變數)之間的隨機整數 | 整型 |
upcase | 字元型 | 使小寫英文字母變為大寫 | 字元型 |
運算符表達式
運算符和優先權
(1)運算符
a.算術運算符 運算符
運算
運算對象
結果類型
+
加
整型、實型
只要有一個運算對象是實型,結果就是實型,如果全部的運算對象都是整型並且運算不是除法,則結果為整型,若運算是除法,則結果是實型
-
減
整型、實型
*
乘
整型、實型
/
除
整型、實型
div
整除
整型
整型
mod
取余
整型
整型
b.邏輯運算符
運算符
運算
運算對象
結果類型
not
邏輯非
布爾型
布爾型
and
邏輯與
布爾型
布爾型
or
邏輯或
布爾型
布爾型
xor
邏輯異或
布爾型
布爾型
c.關係運算符
運算符
運算
運算對象
結果類型
=
等於
簡單類型
布爾型
<>
不等於
簡單類型
布爾型
<
小於
簡單類型
布爾型
>
大於
簡單類型
布爾型
<=
小於等於
簡單類型
布爾型
>=
大於等於
簡單類型
布爾型
(2)優先權
運算符
優先權
not
1(高)
*,/,div,mod,and
2
xor,+,-,or
3
in,=,<>,>=,<=,<>
4(低)
表達式
(1)算術表達式:算術表達式是由算術運算符連線常量、變數、函式的式子。算術表達式中各個運算符的次序為: ( )-->函式-->*,/,div,mod-->+,1
(2)布爾表達式:Turbo Pascal提供給布爾表達式以下基本操作:邏輯運算和關係運算。