Pascal
出自 MBA智库百科(https://wiki.mbalib.com/)
目錄 |
Pascal的名稱是為了紀念十七世紀法國著名哲學家和數學家Blaise Pascal而來的,它由瑞士Niklaus Wirth教授於六十年代末設計並創立的。
Pascal語言語法嚴謹,層次分明,程式易寫,可讀性強,是第一個結構化編程語言。
Pascal電腦程式教程如今已經有專業化課程,並且越來越完善和嚴格化。
Pascal有6個主要的版本,分別是Action Pascal Unextended Pascal、Extended Pascal、Object-Oriented Extensions to Pascal、Borland Pascal和Delphi Object Pascal。
Pascal語言廣泛用於各種軟體,程式分為名稱(program後自擬)、設置(var後規定)、開始(begin)、程式(正文)、讀取(read/readln),結束(end),結構層次強,嚴謹而又緊密,其中Action Pascal較有名。
Pascal由瑞士蘇黎世聯邦工業大學的Niklaus Wirth教授於六十年代末設計並創立。1971年,瑞士聯邦技術學院尼克勞斯·沃爾斯(N.Wirth)教授發明瞭另一種簡單明晰的電腦程式設計語言,這就是以電腦先驅帕斯卡的名字命名的Pascal語言。Pascal語言語法嚴謹,一齣世就受到廣泛歡迎,迅速地從歐洲傳到美國。
Pascal是最早出現的結構化編程語言,具有豐富的數據類型和簡潔靈活的操作語句。
Pascal基於ALGOL編程語言,為紀念法國數學家和哲學家布萊茲·帕斯卡而命名。維爾特後來開發了類似Pascal的Modula-2和Oberon。在開發Pascal之前,維爾特開發了語言Euler,然後開發了Algol-W。
最初,Pascal在很大程度上但不是完全地為了教授學生結構化編程。很多代學生已使用Pascal作為本科課程的入門語言。Pascal的變種也逐漸地用於從研究項目到PC游戲和嵌入式系統的所有領域。更新的Pascal編譯器存在於廣泛使用它的領域。
GCC,Gnu C編譯器,最初是用Pascal的一種方言Pastel編寫的(見GCC#概觀)。Pascal是Apple Lisa和早期Mac開發使用的高級語言;最初Macintosh操作系統的部分是從Pascal源代碼手工翻譯成Motorola 68000彙編語言的。流行的排版系統TeX是由高德納使用基於DEC PDP-10 Pascal的最初文學編程系統WEB編寫的,而像Total Commander的應用是使用Delphi(即Object Pascal)編寫的。
Object Pascal仍然廣泛用於開發像Skype這樣的Windows應用。
Pascal以法國數學家命名的Pascal語言現已成為使用最廣泛的語言之一,其主要特點有:嚴格的結構化形式;豐富完備的數據類型;運行效率高;查錯能力強。
Pascal強調的結構化編程帶來了非結構化語言如Fortran之流無法比擬的美和樂趣,Unix崇尚的“小即是美”、“沒有消息就是好消息”。
正因為上述特點,Pascal語言可以被方便地用於描述各種演算法與數據結構。尤其是對於程式設計的初學者,Pascal語言有益於培養良好的程式設計風格和習慣。
IOI(國際信息學奧林匹克競賽)把Pascal語言作為三種程式設計語言之一,NOI(全國奧林匹克信息學競賽)把Pascal語言和c語言、c++語言作為競賽使用程式設計語言,在大學中Pascal語言也常常被用作學習數據結構與演算法的教學語言。
高級語言發展過程中,PASCAL是一個重要的里程碑。1971年,瑞士聯邦技術學院尼克勞斯·沃爾斯(N.Wirth)教授發明瞭另一種簡單明晰的電腦語言,這就是以電腦先驅帕斯卡的名字命名的PASCAL語言。PASCAL語言語法嚴謹,編程語言。
它一齣世就受到廣泛歡迎,迅速地從歐洲傳到美國。
沃爾斯一生還寫作了大量有關程式設計、演算法和數據結構的著作,因此,他獲得了1984年度“圖靈獎”。
在Pascal問世以來的三十餘年間,完善。
Turbo Pascal語言是編譯型程式語言。
Pascal有6個主要的版本,分別是Action Pascal 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的基礎上增加了一些用以支持面向對象程式設計的特性,但它屬於非正式的標準。
Action 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的標準庫中缺乏對網路編程的支持,並且僅通過自帶的graph單元難以實現較好的圖形界面(GUI),這些缺點大多需要嵌入彙編語言代碼才能得到解決,缺乏與機器語言的介面。
另一方面,作為一個面向過程的編程語言,和90年代興起的面向對象的語言相比,不利於大型軟體的開發。
儘管Pascal非常流行(然而在八十到九十年代時比21世紀更加流行),依據維爾特的對這種語言的定義來構建Pascal,使它不適合在非教學的場合使用,這遭到了廣泛的批評。 推廣了C語言的Brian Kernighan早在1981年就在他的論文《Why Pascal Is Not My Favourite Programming Language》對Pascal提出了嚴厲的抨擊。
註:高級語言發展過程中,Pascal是一個重要的里程碑。Pascal語言是第一個系統地體現了E.W.Dijkstra和C.A.R.Hoare定義的結構化程式設計概念的語言。
Pascal語言結構嚴謹,功能強大。在Pascal問世以來的三十餘年間,先後產生了適合於不同機型的各種各樣版本。其中影響最大的莫過於Turbo Pascal系列軟體。它是由美國Borland公司設計、研製的一種適用於微機的Pascal編譯系統。該編譯系統由1983年推出1.0版本發展到1992年推出的7.0版本,其版本不斷更新,而功能更趨完善。目前應用最廣泛的是Free Pascal 2.04。
Pascal語言在 OEM-美國 編碼下只能使用以下幾類基本符號:
英文字母
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
a b c d e f g h i j k l m n o p q r s t u v w x y z
數字
1 2 3 4 5 6 7 8 9 0
其他符號
+ - * / = <> <= >= > < ( ):= , . ; : .. ‘ ’ ^ @$ div mod shr shl
ACSII 碼
Pascal中,字元代碼是由ASCII(American Standard Code for Information Interchange,美國信息互換標準代碼)碼進行轉換的。由函數chr(x) (求編號x對應的字元)和ord(x) (求字元x或枚舉型X對應的編號)進行轉換執行。
Pascal語言是一種演算法語言,它是瑞士蘇黎世聯邦工業大學的沃思教授於1968年設計完成的,1971年正式發表。Pascal語言是在ALGOL60的基礎上發展而成的。它是一種結構化的程式設計語言。它的功能強、編譯程式簡單,是70年代影響最大一種演算法語言。
從使用者的角度來看,Pascal語言有以下幾個主要的特點:
1.結構化
Pascal可以方便地書寫出結構化程式,保證了程式的正確性和易讀性。在結構化這一點上,Pascal比其它演算法語言更好。
2.數據類型豐富
Pascal是一種強類型語言。它提供了整數型、實數型、字元型、布爾型、枚舉型、子界型以及由以上類型構成的數組類型、集合類型、記錄類型和文件類型。此外,還提供了其它許多語言中所沒有的指針類型。豐富的數據結構和上述的結構化性質,使得Pascal可以被方便地用來描述複雜的演算法。
3.適用性好
既適用於數值運算,也適用於非數值運算領域。有些語言只適用於數值計算,有些語言則適用於商業數據處理和管理領域。Pascal的功能較強,能廣泛應用於各種領域。
4.書寫較自由
得益於語句末的分號做分隔符,Pascal允許一行寫多個語句,一個語句可以分寫在多行上,這樣就可以使Pascal程式寫得象詩歌格式一樣優美,便於閱讀,但一行不可超過257個字元。
由於以上特點,許多學校選Pascal作為程式設計課程中的一種主要的語言。它能給學生嚴格而良好的程式設計的基本訓練,培養學生結構化程式設計的風格。
任何程式設計語言都有一定的規則。使用Pascal語言必須遵循其本身所規定的規則來編寫程式。儘管不同版本的Pascal語言所採用的符號的數量、形式不盡相同,但其基本成分一般都符合標準Pascal的規定。下麵我們首先來瞭解Pascal語言的程式基本結構。
1. 一個Pascal程式分為兩個部分:程式首部和程式體(或稱分程式)。
2. 程式首部是程式的開頭部分,它包括:
⑴程式標誌。用"program"來標明這是一個Pascal 程式。Pascal規定任何一個控制台Pascal程式的首部都必須以此字開頭。在Free Pascal中,首部也可省略。
⑵程式名稱。由程式設計者自己定義,如例中的li1。在寫完程式首部之後,應有一個分號。
3.程式體是程式的主體,在有的書本里也稱"分程式"。程式體包括說明部分(也可省略)和執行部分兩個部分。
⑴說明部分用來描述程式中用到的標號、常量、類型、變數、函數、過程等。正如示例中的“var”標註定義變數的名稱、類型,其它的標註欄位為:label(標號)、const(常量)、type(類型)、var(變數)、function(函數)、procedure(過程)。
Pascal規定,凡程式中用到的所有變數、符號常量、數組、過程與函數、記錄、文件等數據都必須"先說明,再使用"。
⑵執行部分的作用是給出需要電腦執行的操作。
執行部分以"begin"開始,以"end"結束,其間有若幹個語句,一般為了易於閱讀,begin..end中的語句應空2格(不包括“begin”和“end”),語句之間以分號隔開。執行部分之後有一個句點,表示整個程式結束。
4. Pascal程式的書寫方法比較靈活。書寫程式應結構清晰、容易閱讀理解。在編寫程式時希望讀者儘量模仿本書中例題程式格式和縮進(兩個空格或一個Tab)。
5. 在程式中,一對大括弧間的文字稱為註釋(也可用(*、*))。註釋的內容由人們根據需要書寫,可以用英語或漢語表示。註釋可以放在任何空格可以出現的位置。編譯器對註釋不予理睬。
信息學競賽使用的Pascal語言系統是Free Pascal,下麵我們就來學習Free Pascal的使用。
1.系統的啟動在運行系統目錄下的啟動程式fp.EXE,即可啟動系統。屏幕上出現如圖1所示的集成環境。
2.Free Pascal系統集成環境簡介
最頂上一行為主菜單。中間藍色框內為編輯視窗,在它個編輯視窗內可以進行程式的編輯。最底下一行為提示行,顯示出系統中常用命令的快捷鍵,如打開一個文件的快捷鍵為F3,將當前編輯視窗中文件存檔的快捷鍵為F2,獲得系統幫助的快捷鍵為F1,等等。
3.新建程式視窗
按F10進行主菜單,選擇FILE菜單,執行其中New命令。就可建立一個新的程式視窗(預設文件名為Noname00.pas或Noname01.pas等)。
4.程式的輸入、編輯與運行
在當前程式視窗中,一行一行的輸入程式。程式視窗是一個編輯器。所以對程式的編輯與其它編輯器相似,類似記事本程式。
當程式輸入完畢之後,一般要先按Alt+F9(或執行compile菜單中compile命令)對程式進行編譯。如果程式有語法錯誤,則會在程式視窗的下方顯示錯誤信息。若無語法錯誤,則視窗正中央會出現一個對話框,提示編譯成功。接下來,我們可以運行程式了。
程式的運行可以通過按ALT+R打開RUN菜單中的RUN命令,或直接按快捷鍵CTRL+F9。則可以在用戶視窗中輸出運行結果。通常在程式運行結束後系統回到Pascal系統的集成環境,因此要查看運行結果,要按ALT+F5將屏幕切換到用戶屏幕。
5.程式的保存與打開
當我們想把程式視窗中的程式存入磁碟時,可以通過按F2鍵(或執行File菜單中的save命令)來保存程式。第一次保存文件時屏幕上會出現一個對話框要求輸入文件名(預設擴展名為.pas)。
當我們要將磁碟上的程式文件中的Pascal程式裝入視窗時,可按F3(或執行File菜單中的Open命令)來裝入程式,此時系統也會彈出一個對話框要求輸入要打開的文件名,或直接在文件對話框列表中選擇所要的文件,然後回到打開文件。(.pas文件,可以由記事本打開)
1、程式首部
程式首部是程式的開頭部分,由保留字program後,接程式名及程式參數表組成,結束時一定要有分號。程式名yzhch是用戶自己定義的標識符,參數表一般是文件變數名,用於該程式與外界的數據交流。最常用的參數為input和output。Turbo Pascal程式首部中參數表可以省略。
2、程式說明部分
Pascal語言要求用戶將在程式中所使用的標號、常量、類型、變數、記錄、文件、以及過程和函數除了Pascal自己預先定義的標準量之外,都必須在說明部分說明後才能在程式執行部分使用。但各個內容部分是可選的,只有執行程式部分需要的時候才進行說明。
3、程式執行部分
緊接著說明部分的begin和end之間的部分為程式的執行部分。它由一系列語句組成,一條語句執行一定的功能,所有語句完成程式設計的任務。語句之間用“;”隔開,允許一行寫多個語句,也允許一個語句寫多行。最後一行的end後加“.”號表示結束。所跟其後的語句將無任何作用。Begin與end應配對出現,這是每一個Turbo Pascal程式都必須的。
註意:後面將學習到的語句中,也需要引用begin和end作為程式段的分隔標記,但其必須遵守語句規則。