1. 帕斯卡語言的發展
在Pascal問世以來的三十餘年間,先後產生了適合於不同機型的各種各樣版本。其中影響最大的莫過於Turbo Pascal系列軟體。它是由美國Borland公司設計、研製的一種適用於微機的Pascal編譯系統。該編譯系統由1983年推出1.0版本發展到1992年推出的7.0版本,其版本不斷更新,而功能更趨完善。
Turbo Pascal語言是編譯型程序語言,它提供了一個集成環境的工作系統,集編輯、編譯、運行、調試等多功能於一體
Pascal有5個主要的版本,分別是Unextended Pascal、Extended Pascal、Object-Oriented Extensions to Pascal、Borland Pascal和Delphi Object Pascal。其中,Unextended Pascal、Extended Pascal和Object-Oriented Extensions to Pascal是由Pascal標准委員會所創立和維護的,Unextended Pascal類似於瑞士Niklaus Wirth教授和K.Jensen於1974年聯名發表的Pascal用戶手冊和報告,而Extended Pascal則是在其基礎上進行了擴展,加入了許多新的特性,它們都屬於正式的Pascal標准;Object-Oriented Extensions to Pascal是由Pascal標准委員會發表的一份技術報告,在Extended Pascal的基礎上增加了一些用以支持面向對象程序設計的特性,但它屬於非正式的標准。Borland Pascal和Delphi Object Pascal是由Borland公司專門為其開發的編譯工具設計的Pascal語言,前者是用於DOS的Turbo Pascal系列和Windows 3.x的Turbo Pascal for Windows的傳統高級語言,後者是用於Windows的Delphi和Linux的Kylix的面向對象程序設計語言,它們都不是正式的Pascal標准,具有專利性。但由於Turbo Pascal系列和Delphi功能強大並且廣為流行,Borland Pascal和Delphi Object Pascal已自成為一種標准,為許多人所熟悉。
2. 帕斯卡語言的程序設計
單元:
PASCAL語言的程序中,通過在開頭使用uses命令,說明使用的單元,語法是回:
uses<單元名稱答>
標准庫單元:System、DOS、CRT、Printer、Graph、Graph3、Turbo3、Overlay
單元的結構
單元的程序類似於一般的源程序,結構一般如下:
unit<單元名稱>
interface
uses<單元名稱表>;
<公用說明>
implementation
uses<單元名稱表>;
<私有說明>
<過程和函數程序段>
begin<開始>
...<語句>
end.<結束>
可以看出,interface 一節接就相當於C++中類的public部分,uses相當於類的繼承,implementation相當於private部分,初始化部分相當於構造函數。
面向對象的程序設計:
面向對象的程序設計就是利用pascal的單元進行設計。
pascal有object關鍵字,就是用於面向對象的程序設計,使用起來,程序的結構更加清晰。
語法:
object
Field;
Field;
...
Method;
Method;
end;
3. 帕斯卡語言的應用
在中國的信息學奧林匹克競賽中,過去比較常用的Pascal編程工具是Turbo Pascal,20世紀普及。Turbo Pascal是DOS下的一種16位編程工具,在Delphi出現之前,它是世界上最多人使用的Pascal編程工具,擁有編譯速度極快的先進編譯器和功能強大而又簡便易用的集成開發環境(IDE),在微機程序員中廣為流行,正是它的出現奠定了Pascal在DOS/Windows平台上不可動搖的根基,20世紀常見的版本有Turbo Pascal 5.5、Turbo Pascal 6.0和Borland Turbo Pascal with Objects 7.0。Turbo Pascal 6.0與Turbo Pascal 5.5相比,主要是IDE更為強大,而其程序設計功能改變不大,只是增加了一些新的功能,例如可以內嵌asm匯編語句等。而Borland Turbo Pascal with Objects 7.0(簡稱Borland Pascal 7.0)則有了新的飛躍,首先是IDE進一步加強,提供了程序瀏覽器,然後是程序設計功能有了很大的提升,新增了一些十分有用的標准子程序,支持比較完善的面向對象程序設計功能,並提供了DOS實模式、DOS保護模式和Windows模式三種程序編譯模式,能夠編寫出可以使用擴充內存(XMS)的保護模式應用程序或者在Windows 3.x下運行的Windows程序,另外還提供了一個對象窗口庫(OWL),使用它可以快速的開發出具有一致的視窗界面(DOS或Windows 3.x)的應用程序。Borland Pascal 7.0在1992年推出,是Turbo Pascal系列在DOS下的最後版本。
下面列出Turbo Pascal的編年史:
1983 Turbo Pascal 1.0
Turbo Pascal 2.0
Turbo-87 Pascal 提高實數運算速度並擴大值域
1985 Turbo Pascal 3.0 增加圖形功能
Turbo BCD Pascal 特別適合應用於商業
1987 Turbo Pascal 4.0 提供集成開發環境(IDE),引入單元概念
1988 Turbo Pascal 5.0 增加調試功能
1989 Turbo Pascal 5.5 支持面向對象的程序設計(OPP)
1990 Turbo Pascal 6.0 提供面向對象的應用框架和庫(Turbo Vision)
1992 Turbo Pascal 7.0 面向對象的應用系統、更完善的IDE
Turbo Vision 2.0
1993 Borland Pascal 7.0 開發 Object Windows庫
(For Windows) 提供對OLE多媒體應用開發的支持
1995 Delphi Visual Pascal
20世紀,隨著Turbo Pascal逐漸被淘汰,全國信息學奧林匹克競賽決賽(NOI)和國際信息學奧林匹克競賽(IOI)已經指定Free Pascal為比賽使用的Pascal編程工具。Free Pascal是由一個國際組織開發的32位Pascal編程工具,屬於共享軟體,可用於各種操作系統。根據編譯選項的不同,它可以使用Borland Pascal兼容語法、Delphi 2 Object Pascal語法或者其它語法進行編寫程序。由於它擁有32位的編譯器,所以理論內存達到了4GB,而且一直在更新發展中,因此它的功能比Borland Pascal更加強大,擁有許多現代程序設計的特徵,但同時也很不成熟,存在很多漏洞。Free Pascal正處於發展初期,相應的函數庫十分少,對程序員的吸引力遠比不上擁有VCL和CLX的Delphi和Kylix,但是它的這些不同於Turbo Pascal的特徵使聯賽選手們需要改進自己的演算法(簡單地說就是時間換空間)。
Pascal競賽的輔導用書有很多,最經典的有《全國青少年信息學奧林匹克聯賽培訓教材》。
4. 帕斯卡語言的介紹
Pascal是一種計算機通用的高級程序設計語言。它由瑞士Niklaus Wirth教授於六十年代末設計並創立。Pascal也可以是指人名,它的取名原本就是為了紀念十七世紀法國著名哲學家和數學家Blaise Pascal,而不是編程工具。以法國數學家命名的pascal語言現已成為使用最廣泛的基於DOS的語言之一,主要特點有:嚴格的結構化形式;豐富完備的數據類型;運行效率高;查錯能力強。 Pascal語言還是一種自編譯語言,這就使它的可靠性大大提高了。 Pascal具有簡潔的語法,結構化的程序結構。它是結構化編程語言,在許多學校計算機語言課上都是Pascal語言。
5. 帕斯卡語言的影響
高級語言發展過程中,PASCAL是一個重要的里程碑。PASCAL語言是第一個系統地體內現了E.W.Dijkstra和C.A.R.Hoare定義的結構化程序設容計概念的語言。1971年,瑞士聯邦技術學院尼克勞斯·沃爾斯(N.Wirth)教授發明了另一種簡單明晰的電腦語言,這就是以電腦先驅帕斯卡的名字命名的PASCAL語言。PASCAL語言語法嚴謹,層次分明,程序易寫,具有很強的可讀性,是第一個結構化的編程語言。它一出世就受到廣泛歡迎,迅速地從歐洲傳到美國。沃爾斯一生還寫作了大量有關程序設計、演算法和數據結構的著作,因此,他獲得了1984年度「圖靈獎」。
6. 什麼是pascal語言
帕斯卡語言
開放分類: 計算機語言、編程、編程語言、計算機、高級語言
目錄
• 一、語言的來歷
• 二、PASCAL語言的發展
• 三、PASCAL語言的影響
• 四、PASCAL在學習和競賽中的應用
• 五、Pascal的基本運用
• 六、單元和面向對象的程序設計
一、PASCAL語言的來歷
[編輯本段]
Pascal是一種計算機通用的高級程序設計語言。它由瑞士Niklaus Wirth教授於六十年代末設計並創立。Pascal也可以是指人名,它的取名原本就是為了紀念十七世紀法國著名哲學家和數學家Blaise Pascal,而不是編程工具。以法國數學家命名的pascal語言現已成為使用最廣泛的基於DOS的語言之一,其主要特點有:嚴格的結構化形式;豐富完備的數據類型;運行效率高;查錯能力強。
Pascal語言還是一種自編譯的語言,這就使它的可靠性大大提高了。
Pascal具有簡潔的語法,結構化的程序結構。它是結構化編程語言,於70年代在ALGO今,在許多學校的計算機語言課上,的都是Pascal語言。
Pascal是最早出現的結構化編程語言,具有豐富的數據類型和簡潔靈活的操作語句,適於描述數值和非數值的問題。
正因為上述特點,Pascal語言可以被方便地用於描述各種演算法與數據結構。尤其是對於程序設計的初學者,Pascal語言有益於培養良好的程序設計風格和習慣。IOI(國際奧林匹克信息學競賽)把Pascal語言作為三種程序設計語言之一, NOI(全國奧林匹克信息學競賽)把Pascal語言定為唯一提倡的程序設計語言,在大學中Pascal語言也常常被用作學習數據結構與演算法的教學語言。
二、PASCAL語言的發展
[編輯本段]
在Pascal問世以來的三十餘年間,先後產生了適合於不同機型的各種各樣版本。其中影響最大的莫過於Turbo Pascal系列軟體。它是由美國Borland公司設計、研製的一種適用於微機的Pascal編譯系統。該編譯系統由1983年推出1.0版本發展到1992年推出的7.0版本,其版本不斷更新,而功能更趨完善。
Turbo Pascal語言是編譯型程序語言,它提供了一個集成環境的工作系統,集編輯、編譯、運行、調試等多功能於一體
Pascal有5個主要的版本,分別是Unextended Pascal、Extended Pascal、Object-Oriented Extensions to Pascal、Borland Pascal和Delphi Object Pascal。其中,Unextended Pascal、Extended Pascal和Object-Oriented Extensions to Pascal是由Pascal標准委員會所創立和維護的,Unextended Pascal類似於瑞士Niklaus Wirth教授和K.Jensen於1974年聯名發表的Pascal用戶手冊和報告,而Extended Pascal則是在其基礎上進行了擴展,加入了許多新的特性,它們都屬於正式的Pascal標准;Object-Oriented Extensions to Pascal是由Pascal標准委員會發表的一份技術報告,在Extended Pascal的基礎上增加了一些用以支持面向對象程序設計的特性,但它屬於非正式的標准。Borland Pascal和Delphi Object Pascal是由Borland公司專門為其開發的編譯工具設計的Pascal語言,前者是用於DOS的Turbo Pascal系列和Windows 3.x的Turbo Pascal for Windows的傳統高級語言,後者是用於Windows的Delphi和Linux的Kylix的面向對象程序設計語言,它們都不是正式的Pascal標准,具有專利性。但由於Turbo Pascal系列和Delphi功能強大並且廣為流行,Borland Pascal和Delphi Object Pascal已自成為一種標准,為許多人所熟悉。
三、PASCAL語言的影響
[編輯本段]
高級語言發展過程中,PASCAL是一個重要的里程碑。PASCAL語言是第一個系統地體現了E.W.Dijkstra和C.A.R.Hoare定義的結構化程序設計概念的語言。1971年,瑞士聯邦技術學院尼克勞斯·沃爾斯(N.Wirth)教授發明了另一種簡單明晰的電腦語言,這就是以電腦先驅帕斯卡的名字命名的PASCAL語言。PASCAL語言語法嚴謹,層次分明,程序易寫,具有很強的可讀性,是第一個結構化的編程語言。它一出世就受到廣泛歡迎,迅速地從歐洲傳到美國。沃爾斯一生還寫作了大量有關程序設計、演算法和數據結構的著作,因此,他獲得了1984年度「圖靈獎」。
四、PASCAL在學習和競賽中的應用
[編輯本段]
在中國的信息學奧林匹克競賽中,過去比較常用的Pascal編程工具是Turbo Pascal。Turbo Pascal是DOS下的一種16位編程工具,在Delphi出現之前,它是世界上最多人使用的Pascal編程工具,擁有編譯速度極快的先進編譯器和功能強大而又簡便易用的集成開發環境(IDE),在微機程序員中廣為流行,正是它的出現奠定了Pascal在DOS/Windows平台上不可動搖的根基,現在常見的版本有Turbo Pascal 5.5、Turbo Pascal 6.0和Borland Turbo Pascal with Objects 7.0。Turbo Pascal 6.0與Turbo Pascal 5.5相比,主要是IDE更為強大,而其程序設計功能改變不大,只是增加了一些新的功能,例如可以內嵌asm匯編語句等。而Borland Turbo Pascal with Objects 7.0(簡稱Borland Pascal 7.0)則有了新的飛躍,首先是IDE進一步加強,提供了程序瀏覽器,然後是程序設計功能有了很大的提升,新增了一些十分有用的標准子程序,支持比較完善的面向對象程序設計功能,並提供了DOS實模式、DOS保護模式和Windows模式三種程序編譯模式,能夠編寫出可以使用擴充內存(XMS)的保護模式應用程序或者在Windows 3.x下運行的Windows程序,另外還提供了一個對象窗口庫(OWL),使用它可以快速的開發出具有一致的視窗界面(DOS或Windows 3.x)的應用程序。Borland Pascal 7.0在1992年推出,是Turbo Pascal系列在DOS下的最後版本。
下面列出Turbo Pascal的編年史:
1983 Turbo Pascal 1.0
Turbo Pascal 2.0
Turbo-87 Pascal 提高實數運算速度並擴大值域
1985 Turbo Pascal 3.0 增加圖形功能
Turbo BCD Pascal 特別適合應用於商業
1987 Turbo Pascal 4.0 提供集成開發環境(IDE),引入單元概念
1988 Turbo Pascal 5.0 增加調試功能
1989 Turbo Pascal 5.5 支持面向對象的程序設計(OPP)
1990 Turbo Pascal 6.0 提供面向對象的應用框架和庫(Turbo Vision)
1992 Turbo Pascal 7.0 面向對象的應用系統、更完善的IDE
Turbo Vision 2.0
1993 Borland Pascal 7.0 開發 Object Windows庫
(For Windows) 提供對OLE多媒體應用開發的支持
1995 Delphi Visual Pascal
Turbo Pascal語言是編譯型程序語言,它提供了一個集成環境的工作系統,集編輯、編譯、運行、調試等多功能於一體。
現在,隨著Turbo Pascal逐漸被淘汰,全國信息學奧林匹克競賽決賽(NOI)和國際信息學奧林匹克競賽(IOI)已經指定Free Pascal為比賽使用的Pascal編程工具。Free Pascal是由一個國際組織開發的32位Pascal編程工具,屬於共享軟體,可用於各種操作系統。根據編譯選項的不同,它可以使用Borland Pascal兼容語法、Delphi 2 Object Pascal語法或者其它語法進行編寫程序。由於它擁有32位的編譯器,而且一直在更新發展中,因此它的功能比Borland Pascal更加強大,擁有許多現代程序設計的特徵,但同時也很不成熟,存在很多漏洞。Free Pascal正處於發展初期,相應的函數庫十分少,對程序員的吸引力遠比不上擁有VCL和CLX的Delphi和Kylix。
Pascal競賽的輔導用書有很多,最經典的有《全國青少年信息學奧林匹克聯賽培訓教材》。
五、Pascal的基本運用
[編輯本段]
Turbo Pascal系列軟體作為開發系統軟體與就任軟體及實施科學計算和教學的有力工具,下發揮著越來越大的作用。也是國際和全國青少年信息學奧林匹克競賽指定的語言之一。從歷屆信息學競賽的情況看,它是最能出成績和選手最歡迎的語言。以後的例子就以Turbo Pascal 7.0進行程序設計。
下面我們就以一個實例來看一看Pascal程序的結構,從中認識到Pascal語言程序的書寫方式,以及其規范的標准設計方式。
例1:輸入一個圓的半徑,求出其圓周長。
設圓的半徑為R,周長為L,我們知道公式如下:
L=2πR
它的Pascal程序如下:
program yzhch( input, output) ; {程序首部}
const {常量說明}
pi=3.14159
var {變數說明}
l,r:real;
begin {程序開始}
readln(r); {輸入半徑}
l:=2*pi*r; {計圓周長}
writeln('l=',l); {輸出圓周長}
end. {結束程序}
從以上簡單的例子可以看出,Turbo Pascal程序是由程序首部、程序說明部分和程序執行部分組成。具體如下所示:
program 程序名; {程序首部}
說明部分 {說明部分}
begin {程序開始}
語句1; {執行語句}
語句2; {執行語句}
…… {執行語句}
end. {結束程序}
上面程序由如下兩部分組成:
1、程序首部
程序首部是程序的開頭部分,由保留字program後,接程序名及程序參數表組成,結束時一定要有分號。程序名yzhch是用戶自己定義的標識符,參數表一般是文件變數名,用於該程序與外界的數據交流。最常用的參數為input和output。Turbo Pascal程序首部中參數表可以省略。
2、程序說明部分
Pascal語言要求用戶將在程序中所使用的標號、常量、類型、變數、記錄、文件、以及過程和函數除了Pascal自己預先定義的標准量之外,都必須在說明部分說明後才能在程序執行部分使用。但各個內容部分是可選的,只有執行程序部分需要的時候才進行說明。
3、程序執行部分
緊接著說明部分的begin和end之間的部分為程序的執行部分。它由一系列語句組成,一條語句執行一定的功能,所有語句完成程序設計的任務。語句之間用「;」隔開,允許一行寫多個語句,也允許一個語句寫多行。最後一行的end後加「.」號表示結束。所跟其後的語句將無任何作用。Begin與end應配對出現,這是每一個Turbo Pascal程序都必須的。
注意:後面將學習到的語句中,也需要引用begin和end作為程序段的分隔標記,但其必須遵守語句規則。
數據類型、常量的變數
一、數據類型的概念
計算機處理數據對象是一個廣義的概念。例如,125、12.76是數據,』xiang qj zhong』這一串字元也是數據。前者是數值數據,後者是字元串數據,是非數值數據。顯然,為了表示這些數據,它們在內存中必須以不同方式存放。為處理這些數據,計算機對它們施加的運算也不同。為此,Turbo Pascal語言建立了數據類型的概念,對描述的數據進行分類。每一種數據類型定義了一個具有相同性質的數據集合。各種數據類型的數據具有不同的性質。程序中所用到的每一個數據,包括常量和變數都有一個和它相聯系的類型。由此決定了數據所具有的值,也決定了對該數據所能進行的操作。
Turbo Pascal語言中數據具有豐富的類型,按它們的特點可以分為簡單類型、構造類型、指針類型和過程類型四大類,如圖下所示。
其中,標准類型用語言系統預先定義的標准標識符表示,整型用integer表示,實型用real表示,布爾型用boolean表示,字元型用char表示。
二、常量
常量是指在程序中使用的一些具體的整型數、實型數和字元串。
(1)整型數:如9、3、-5、0等。
(2)實型數:如3•1、-6.1E+20等。
(3)字元串:是用單引號括起來的一串字元,如,』book』、』96•5』、』ABC』等。
以上列舉的都可以作為常量在程序中使用。為了提高程序的可讀性並使程序便於修改,在程序中往往用一些標識符來代表具體的常量。
在Turbo Pascal語言中,可以給一些常量取個名字用一個標識符代表它,這就是常量定義。例如,Cost=60;Blank=』 』。
經常量定義的標識符又稱為常量標識符。
在Turbo Pascal語言中,常量定義要寫在常量定義部分中。
常量定義部分的一般形式:
Const
(常量標識符1)= (常量1);
(常量標識符2)=(常量2);
(常量標識符n)=(常量n);
Const是保留宇,表示開始一個常量定義部分,其後可以有若干個常量定義,這些
常量定義之間要用「;」號分隔。例如:
Const
Cost=60;
A=Cost+30;
Pi =3.14159;
Turbo Pascal語言對常量定義有如下要求:
(1)常量定義要放在程序的常量定義部分,即程序首部之後,執行部分之前。
(2)必須遵循先定義後使用的原則,即只有已經定義的常量標識符,才能在程序中
使用。
三、變數
在程序執行過程中其值可以改變的數據,稱為變數。每個變數都要有一個名稱,這就是變數名。變數名由用戶自己定義,但必須符合標識符的規定。
在一個程序中,一個變數只能屬於一種確定的數據類型。因此,程序中出現的每個變數都必須說明其數據類型,這樣就規定了該變數的取值范圍,也決定了對該變數所能執行的運算操作。
變數的類型,可以是標准數據類型integer、real、boolean和char,也可以是用戶自定義的各種類型。
變數說明形式是:一個變數標識符或由逗號隔開的多個變數標識符在它的冒號":"後面說明其數據類型。
在Turbo Pascal程序中,變數說明要寫在變數說明部分中。
變數說明部分的一般形式:
var
(變數說明1);
(變數說明2);
……(變數說明n);
其中var是保留字,表示一個變數說明部分開始。一個var可以含有多個不同的變數說明,每個變數說明之間用分號隔開,有時稱被分號隔開的變數說明為變數說明項。例如:
var
x,y:real;
chl:char;
t,f:boolean;
注意:不同類型的變數一般不能互相串用。
這里還應指出,變數一經說明系統就在計算機內存中為其分配一個存貯空間。在程序中使用到變數時,就在相應的內存中存入數據或取出數據,這種操作稱為變數的訪問。
標准數據類型
Pascal向程序設計者提供了豐富的數據類型,它們用於專門的目的,但卻都是由簡單的、非構造型的數據類型所構成的。本節介紹Turbo Pascal中最為基本的幾種數據類型:整型、實型、布爾型和字元型。它們都是系統定義的簡單數據類型,稱為標准數據類型,其對應的名字稱為標准標識符。
1、整型
一個整型數據用來存放整數,整型數據可以是正整數、負整數和整數零。
Turbo Pascal中的整型常數必須按規定嚴格書寫。
Turbo Pascal支持五種預定義整型,它們是短整型(Shortint)、整型(Integer)、長整型 (Longint)、位元組型(Byte)和字類型(Word),每一種類型規定了相應的整數取值范圍以及所佔內存位元組數(一個位元組為8個二進制位)。因此,用戶在具體編程定義變數類型時,要根據它們的特點選用適當的類型,以達到理想的效果。當兩個不同范圍類型的操作數進行運算時,得到的結果屬於較大范圍的類型。如下表所示。
Turbo Pascal語言規定可以對整型數據進行算術運算符+、一、*、Div、Mod。
它們分別表示加、減、乘、整除和取余。這五種運算,要求參加運算的兩個數都是整型數,運算結果也是整型數。前三種運算與一般的算術運算加、減、乘相同。Div整除運算,是兩個整型數相除取整數部分(商的整數部分),得到整型結果。Mod取余運算,是兩個整型數相除取余數,余數的符號與被除數符號相同。例如:
3 Div 2 = 1 5 Div 7 = 0
6 Div (-4) = - 1 (-12) Div (-5) = 2
7 Mod 4 = 3 (14) Mod (-4) = 2
(-18) Mod (-6) = 0 6 Mod l7 = 6
由此可見,a Mod b,所得結果的符號與a相同,其值(絕對值)在0~∣b∣-1之間。運算符Mod與Div之間有如下關系:
a Mod b = a – (a Div b) * b (b<>0)
其中Mod運算的結果的符號與a的符號相同。
利用以上兩種運算可以對正整數進行分離。例如:
n為四位數8531,可用下法分離出它的個、十、百、千位。
8531 Mod l0 = 1 (個位數)
(8531 Mod l00) Div l0 = 3 (十位數)
(8531 Mod l000) Div l00 = 5 (百位數)
8531 Mod l000 = 8 (千位數)
利用 a Mod b可以判斷a能否被b整除。當a Mod b = 0時,a能被b整除。
2、實型
一個實型數據用來存放實數。實型數據可以是正實數、負實數和實數零。實型數據一般用小數或指數形式(亦稱科學表示法)表示。例如:
+1993,33,3.5E+8(=3.5×105), -0.5E-3(=-0.5×10-3,),-20.0,,0.0等都是合法實型數。
Turbo Pascal支持一種預定義實型,它們是基本實型(Real)、單精度實型(Single)、雙精度實型(Double)、擴展實型(Extended)和裝配實型(Comp)。每一種類型規定了相應的實數取值范圍和所佔內存位元組數,以及它們所能達到的精度,即有效數字位數。因此,用戶在具體編程時應根據以上的參數適當選用,以達到最佳效果。如下表所示。
對於此類實型數據,若其絕對值大於上界,則產生上溢;絕對值小於下界,則產生下溢,下溢導致結果為0。Comp類型的取值范圍是-263+1~238-1之間的整數,相當於十進制的-9.218~9.218。由於Comp類型的數據表示成二進制形式的數,這種類型的變數有時處理起來比較方便,特別對於數值很大的整數間的計算,這種數據類型很有用。
Turbo Pascal語言允許實型數使用下列運算符進行運算。
運算符:+、-、*、/
分別表示加、減、乘和除。其中"/"叫實數除,即使兩個整型數相除,其結果也總是實型,如: 7/2=3.5 6/3=2.0
3、字元型
用標准標識符Char標明字元型。字元型數據可以是字母、符號、數字(0-9)等ASCII碼的所有字元。Turbo Pascal支持擴展ASCII碼,共包括256個字元。但非印刷字元是不能在標准顯示上顯示或列印輸出。在計算機內部,字元集的元素是以該元素在字元集內的順序位置來標記的,位置取值范圍為0~255,我們稱這些整數為字元在字元集內的序數值或序號。每個字元型數據在內存中佔一個位元組。將字元用單引號括起來,即成字元常數,如,』X』,』7』,』?』。字元常數可按字元的序數值確定大小關系,也就是說它們的大小由它們所對應的ASCII碼值決定,如:』Y』,』Z』,』A』<』a』。
由於採用ASCII碼,字元依ASCII碼序號排列。這樣,字元與ASCII碼序號有一一對應的映射關系。
4、布爾型
一個布爾型數據用來存放邏輯值,或稱布爾值。Turbo Pascal支持預定義布爾型,以標准標識符Boolean表示。Boolean一詞,系根據19世紀英國數學家George boole (1815-1864)的名字而得,George boole為現代布爾代數之父。布爾型數據的值只有兩個:True(邏輯真)和False(邏輯假)。布爾型是順序類型,規定False<TRUE,FALSE的序號為0,TRUE的序號為1。
邏輯運算的結果只有兩個:True(真)和False(假)。Turbo Pascal提供了六種關系運算符和四種邏輯運算符:
=(等於)、<(小於)、<=(小於等於)、>(大於)、>=(大於等於)、<>(不等於)
NOT(非)、AND(與)、OR(或)、XOR(異或)
運算關系
函 數
標准函數。Turbo Pascal語言提供了自變數為整型量的標准函數有順序函數算術函數和轉換函數等。
標准函數是Turbo Pascal語言預先定義的,它們實際上是能完成特定功能的稱步子程序的程序段。每個標准函數都用一個標識符來標識,每個標准函數都能完成一個特定的功能,在程序中可以直接調用它們。Turbo Pascal語言中某些標准函數與數學中的函數有相似之處。
一、整數類型函數
整型是順序類型,即所有的整型數都是按一定的順序排列的。如3的後序數是4,350的後序數是351。以後介紹的布爾型、字元型、枚舉類型和子界類型等都是順序類型。順序函數可以對順序類型數據進行操作,但要注意它們自變數的取值范圍。
①前趨函數:Pred(x)函數值為x-l,例如:
Pred (6)=5 Pred (-21)=-22
②後繼函數:Succ (x)函數值為x+l,例如:
Succ (l5)=16 Succ (-114)= -113
③絕對值函數:Abs (x)函數值為|X|,例如:
Abs (-119)=119 Abs (101)=101
④平方函數:Sqr (x)函數值為X2,例如:
Sqr (-5)=,25 Sqr (l0)= 100
以上四個函數的結果仍是整型數。
⑤奇函數:Odd (x),函數的結果為布爾型。當X為奇數時,函數值為true;當X為偶數時,函數值為false。例如:
Odd (13)= True Odd (16)= False
⑥字元函數:Chr (X),函數值是序號的ASCII字元,屬字元型。例如:
Chr (65)=』A』 Chr (32)=』 』
二、實數類型函數
在下列算術函數中,X可以是實型或整型數的表達式。對於函數Abs和Sqr,其結果類型和變數X的類型相同,其他算術函數的結果類型都是實型。
絕對值函數Abs(x):函數值為x的絕對值
平方函數Sqr (x):函數值為x的平方
小數函數Frac (x):函數值為x的小數部分
整數函數Int (x):函數值為x的整數部分
正弦函數Sin (x):函數值為x的正弦,其申,的單位為弧度
餘弦函數Cos (x):函數值為x的餘弦,其中,的單位為弧度
指數函數Exp (x):函數值為了ex
對數函數Ln (X):函數值為x的自然對數
平方根函數的Sqrt (x):函數值為x的平方根
反正切函數Arctan(x):函數值為x的反正切,單位為弧度
隨機函數Random:無自變數時,函數值取(0,1)間的隨機小數;有自變數且為Word類型時,函數值取(0,自變數)間的隨機整數。
三、字元類型函數
Turbo Pascal語言提供如下自變數為字元型的標准函數,其中Chr為字元型。
後繼函數Succ (ch):例如,Succ (』8』)=』9』 Succ (』E』)=』F』
對字元集的最後一個字元,Succ函數無意義。
前趨函數Pred (ch):例如,Pred (』7』)=』6』 Pred (』B』)=』 A』
序數函數Ord (ch)::給出字元ch在ASCII字元集中的序號,結果為整型。
注意:Ord (』7』)<>7,正確的是:Ord (』7』)=Ord(』0』)+7=48+7=55
若ch是數字字元,則Ord (ch)-Ord ('0')是該數字字元的數值。例如:Ord (』7』)-Ord(』0』)=7
前面介紹的字元函數Chr (i)是Ord (ch)的逆函數。例如:
Chr (55)= 』7』 Chr (Ord(』A』))=』A』
三、布爾類型函數
Turbo Pascal語言提供布爾型函數主要是幾個字元型函數。
Ord (B) 例如:Ord (false)=0 Ord (true)=1
表達式
運算是對數據進行加工處理的過程,得到運算結果的數學公式或其它式子統稱為表達式。表達式可以是常量也可以是變數或算式,在表達式中又可分為:算術表達式、邏輯表達式和字元串表達式。
1、算術表達式:
算術表達式是最常用的表達式,又稱為數值表達式。它是通過算術運算符來進行運算的數學公式。我們先來看Visual Basic中的算術運算符:
算術運算符
運算符 表達式 說 明 舉 例
* X*Y 求X乘Y的值 6*7=42
/ X/Y 求X除Y的值(浮點數運算) 2.76/1.2=2.3
div X div Y 求X除Y的整數商(對整型數計算) 25=5
Mod X mod Y 求X除Y的余數(對整型數運算) 25 mod 4=1
+ X+Y 加法運算 32+2=34
- X-Y 減法運算 48-21=27
由於Visual Basic只能識別按其格式書寫的數學表達式,所以必須將我們常用的數學表達式轉換成Visual Basic表達式。例如:
數學式 Visual Basic表達式
2、邏輯運算
邏輯運算的結果只有兩個:True(真)和False(假)。Visual Basic提供了六種關系運算符和四種邏輯運算符:
=(等於)、<(小於)、<=(小於等於)、>(大於)、>=(大於等於)、<>(不等於)
NOT(非)、AND(與)、OR(或)、XOR(異或)
運算關系
p q NOT p p AND q p OR q
True True False True True
True False False False True
False True True False True
False false True False False
例如:5>3 結果為 True, 「a」>」b」 結果為False。
3、表達式的運算優先順序
在進行表達式的轉換過程中,必須了解各種運算的優先順序,使轉換後的表達式能滿足數學公式的運算要求。運算優先順序為:
括弧→函數→乘方→乘、除→加、減→字元連接運算符→關系運算符→邏輯運算符
如果同級的運算是按從左到右次序進行;多層括弧由里向外。
例:
(10+6)*3^2*COS(1)/2*8+7
① ④ ③ ⑤ ② ⑥ ⑦ ⑧
Sqrt(Abs(p/n-1))+1
④ ③ ① ② ⑤
2.1 Pascal字元與符號
1.標識符
(1) 標識符的定義:標識符就是以字母開頭的字母數字序列,有效長度為63個字元,並且大小寫等效。可以用來標示常量、變數、程序、函數等。例如例1.1中的Area(程序名),pi(符號常量),s、r(變數名)都是標識符。
(2) 標識符的分類:
a.保留字(關鍵字)
所謂保留字是指在Pascal語言中具有特定的含義,你必須了解它的含義,以便於正確的使用,否則會造成錯誤。標准Pascal語言中的保留字一共有35個,Turbo Pascal語言一共有51個。下面是Pascal語言的保留字:
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等
b.標准標識符:指Pascal語言預先定義的標識符,具有特殊含義。
以下列舉了Turbo Pascal語言部分常用的標准表識符:
標准常量 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
c.用戶自定義標識符:由你自己根據需要來定義。
(1)選用的標識符不能和保留字相同。
(2)語法上允許預定義的標准標識符作為你自己定義的標識符使用,但最好還是不要用。
以下列舉了你自己在定義標識符時可以用的字元:
A..Z,a..z,0..9和_(下劃線),其中首位必須是字母,字母不區分大小寫。
7. 在帕斯卡語言里((a+b)>c)與a+b>c相同嗎
相同。
pascal語言算符優先順序:
1.單目運算符 (最高優先順序)
@ 取變數或函數的地址(返回一個指內針)
not 邏輯取反容或按位取反
2.乘除及按位運算符
* 相乘或集合交集
/ 浮點相除
div 整數相除
mod 取模 (整數相除的余數)
as 程序運行階段類型轉換 (RTTI運算符)
and 邏輯或按位求和
shl 按位左移
shr 按位右移
3.加減運算符
+ 相加、集合並集、字元串連接或指針增加一個偏移量
- 相減、集合差集或指針減少一個偏移量
or 邏輯或按位或運算
xor 邏輯或按位異或運算
4.關系及比較運算符(最低優先順序)
= 判斷是否相等
<> 判斷是否不相等
< 判斷是否小於
> 判斷是否大於
<= 判斷是否小於或等於,或是否是一個集合的子集
>= 判斷是否大於或等於,或是否是一個集合的父集
in 判斷是否是集合成員
is 判斷對象是否類型兼容 (又一個RTTI運算符)
8. 用帕斯卡語言編程
額滴神哪,哪年頭的題目被你翻出來了?換語言吧。雖然pascal編譯起來很快,代碼執行效率高。但是國內沒有這個環境,而且也不符合整個程序語言發展的主流了~~推薦用C,C++,JAVA吧,簡單上手,功能強大。順便說一下,我不是打廣告的……
得了,還是給你弄出來吧,對這門語言我也不是很熟悉,不過在TP70中通過編譯了哈~~
1.
program TwoNumber;
var a,b:integer;
begin
write('Please Input Two Number,Input the Bigger one first:');
readln(a,b);
writeln('a+b=',a+b);
writeln('a-b=',a-b);
writeln('a*b=',a*b);
writeln('a/b=',a/b);
end.
注意你要自己控制輸入,否則運行會出錯,嘿嘿~~
2.
program JiShuHe;
var a,sum:integer;
begin
a:=1;
sum:=0;
while(a<100) do
begin
sum:=sum+a;
a:=a+2;
end;
writeln('The Answer is:',sum:1);
writeln('Press Any Key To Quit!');
readln;
end.
9. 帕斯卡語言插入排序的程序
program charu(input,output);
var
a:array[1..11] of integer;
x,I,j,n:integer;
f:Boolean;
Begin
{給數組賦一個已經排序好的初值,設A[1]到A[10]分別等於1到10}
For I:=1 to 10 do A[I]:=I;
Writeln(『數組原來的排列值是:』);
For I:=1 to 10 do write(a[I]:4);
Writeln;
Writeln(『輸入一個整數:』);
Readln(x);
F:=false;
I:=0;N:=10;
Repeat
I:=I+1;
If a[I]>x then f:=ture;
Until I>n or f=ture;
J:=n+1;
While j<>I do
begin
A[j]:=a[j-1];
J:=j-1
End;
A[I]:=x;
Writeln(『 插入一個數後的數組排列值是:』);
For I:=1 to n+1 do
Write(a[I]:4)
End.
10. c語言好還是帕斯卡語言好
c語言好;
C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。
二十世紀八十年代,為了避免各開發廠商用的C語言語法產生差異,由美國國家標准局為C語言訂定了一套完整的國際標准語法,稱為ANSI C,作為C語言最初的標准。
帕斯卡語言一種計算機通用的高級程序設計語言。它由瑞士Niklaus Wirth教授於六十年代末設計並創立;
Pascal也可以是指人名,它的取名原本就是為了紀念十七世紀法國著名哲學家和數學家Blaise Pascal,而不是編程工具;
以法國數學家命名的pascal語言現已成為使用最廣泛的基於DOS的語言之一,主要特點有:嚴格的結構化形式;豐富完備的數據類型;
運行效率高;查錯能力強,Pascal語言還是一種自編譯語言,這就使它的可靠性大大提高了。 Pascal具有簡潔的語法,結構化的程序結構。它是結構化編程語言,在許多學校計算機語言課上都是Pascal語言。