『壹』 NOI比賽用什麼編譯器TP還是FP,那裡有下載
NOI比賽允許使用的語言是Pascal、C、C++
其中Pascal使用的編譯器是FPC 2.0.4
也就是說使用的是Free Pascal的編譯器
但需要說明的是,NOI全國賽不提供FP使用
因為NOI使用的是NOI Linux系統作為比賽環境
而Free Pascal在Linux下很不穩定
所以官方使用Lazarus和Guide作為Pascal語言的IDE
其中Guide是北京航空航天大學自行研製的IDE
Lazarus是FP製作團隊製作的一款Object Pascal
個人推薦入門時使用FP,備戰NOI時使用Lazarus
以下分別是FP和Lazarus的官網下載地址
Free Pascal 2.4.0
ftp://ftp.freepascal.org/pub/fpc/dist/2.4.0/i386-win32/fpc-2.4.0.i386-win32.exe
Lazarus 0.9.28.2
http://nchc.dl.sourceforge.net/project/lazarus/Lazarus%20Windows%2032%20bits/Lazarus%200.9.28.2/lazarus-0.9.28.2-fpc-2.2.4-win32.exe
上面兩個版本都是Windows下32位的程序
如果無法下載或者無法使用,可以在官網選擇合適版本下載
FP官網:www.freepascal.org
Lazarus官網:www.lazarus.freepascal.org
『貳』 pascal是什麼語言,有何優勢
Pascal是種高階的程序設計語言,由瑞士蘇黎世理工學院的尼古拉斯·沃斯教授設計,ISO對Pascal進行修改以後,形成了標准Pascal語言。
Pascal語言還是一種自編譯的語言,這就使它的可靠性大大提高了。在Pascal的各個版本中,尤以Turbo Pascal的功能最為強大。
Pascal具有簡潔的語法,結構化的程序結構。它是結構化編程語言,於70年代在ALGOL基礎上研製出來的。它具有豐富的數據類型並提供了數據類型定義設施,其控制結構體現了結構程序設計原則。
它最初是為系統地教授程序設計而設計的,特點是簡明化和結構化,適合教學科學計算與系統軟體的研製。如今,在許多學校的計算機語言課上,學的都是Pascal語言,用的都是Turbo Pascal。至今,Pascal還是國際信息學奧林匹克競賽中最受歡迎的編程語言之一。
Pascal是最早出現的結構化編程語言,具有豐富的數據類型和簡潔靈活的操作語句,適於描述數值和非數值的問題。
美國Borland公司於1983年推出了Turbo Pascal編譯器。其後發展了Object Pascal,作為其Delphi開發工具的開發語言。Kylix是Borland公司Pascal產品的新成員,支持Delphi和C/C++,運行於Linux。
有何優勢?
對於數學方面的問題,pascal很強大。
『叄』 Pascal語言在什麼軟體上編寫我是一點都不知道,比較菜鳥。。一直有個問題想問,JAVA和Pascal在什麼上編
我是一個搞NOIP競賽的人 也搞過一點開發,你可以聽聽我的意見(全手打的,很累啊)
我學的就是Pascal語言,面向過程,用的是Free Pascal
如果是面向對象,就用Delphi
至於Java的編譯器,可以試試NetBeans或者sun公司的jdk
像C也有面向過程和面向對象
面向過程是GCC
面向對象就是VC之類的了
Pascal的確是一個起步很好的語言,一開始就學C或C++會很累的
語言一般分3種:機器語言 匯編語言 高級語言
機器語言:能直接被CPU執行,效率極高,但是可移植性極差(換台電腦可能就不行了),寫起來也很麻煩
匯編語言:不能直接被CPU執行,加入了一些人性化的東西,如加法用ADD、減法用SUB,但還是很麻煩
高級語言:效率最低,但是很人性化,可移植性很強 像Pascal C C++ JAVA都是高級語言
高級語言不能直接被計算機執行,所以就需要編譯器來幫忙,把這些語句翻譯一下,讓CPU能執行
高級語言執行方式分兩種:解釋執行和編譯執行
解釋執行:編譯器運行一句翻譯一句,調試的時候就是這樣的
編譯執行:編譯器將源文件編譯成.exe的可執行文件,然後執行
像Free Pascal、Delphi、VB、VC這種,都是IDE
不僅可以編輯源代碼,編譯源代碼,還可以調試程序等等
要學好編程,個人覺得分三塊(把我下面講的東西全學透,要1-2年)
①語法:學好語法是基礎!學好了語法,才知道語言如何使用,這個不用我說吧
②數據結構(數據結構是脫離語言的,也就是說這些數據結構每個語言都好實現):這是一個很抽象的東西,有 線性表、棧、隊列、堆、數、圖、串、集合 等等。
分為4種:線性結構(一對一,如 棧、隊列)、樹形結構(一對多,如 樹)、離型結構(沒有連接)、網狀結構(多對多,如 圖)
像棧就是一種FILO表,只運行在一頭進行輸入輸出操作,應用在 表達式求值、撤銷恢復操作上面
隊列是FIFO表,允許在一頭進行插入操作,另一頭錯刪除操作
樹 就復雜了 樹和二叉樹是兩種概念,具體的自己去看書吧
二叉樹有許多特殊形態,如滿二叉樹 完全二叉樹 哈夫曼樹 最優二叉樹(哈夫曼樹不等於最有二叉樹!這點有許多人弄錯。因為哈夫曼樹不一定是二叉的)
二叉樹的三種遍歷方式一定要會:前序遍歷(也稱先根遍歷)根左右, 中序遍歷(也稱中根遍歷)左根右, 後序遍歷(也稱後根遍歷)左右根
圖就更復雜了,分 連通與不連通 帶權與不帶權 有向與無向,所以就有了 (不)連通有(無)向(不)帶權圖這種說法 還有什麼強連通圖,弱連通圖的,自己看書吧!
③演算法(演算法是脫離語言的,也就是說這些演算法每個語言都好寫):
1.低級演算法(立意上的,就像初等數學和高等數學):窮搜、深度優先搜索(DFS)、廣度優先搜索(BFS,也稱寬度優先搜索),是三種不同的遍歷方式
2.高級演算法:貪心,分支,動態規劃(DP)。其他兩個不介紹了,就介紹一下動態規劃吧!
動態規劃:記憶化搜索,利用以前搜索留下的數據,加快解決多階段決策最優化問題的速度。要能動態規劃,問題必須滿足兩個條件(我背了好長時間才背出來)
①:最優化原理(也稱最優性原理):無論過去的狀態或決策如何,對於當前的決策所形成的狀態而言,餘下的諸決策必須構成最優策略。
②:無後效性:一旦一個狀態的決策確定,則此後過程的演變不再受此前各狀態及決策的影響,當前狀態時此前歷史的完整總結,此前歷史只能通過當前狀態去影響過程未來的演變。
學DP一般從背包開始,背包一共有8個:01背包、完全背包、多重背包、混合三種背包、二維費用背包、分組背包、有依賴的背包、泛化物品背包。
然後再學樹形動態規劃
還有排序演算法:冒泡排序,選擇排序,插入排序,快速排序,堆排序,希爾排序,基數排序,序數排序,桶排序,鴿巢排序,二叉樹排序(應用二叉排序樹),雞尾酒排序(就是雙向冒泡,在一次初賽的完善程序里出現過)
還有數論演算法(不展開介紹了)
圖論演算法:
最短路(顧名思義,就是一個點到另一個點的最短路程):迪傑斯特拉(Dijkstra)、弗洛伊德(Floyd)、SPFA(國人設計的,很不錯)等等 還會要解決SPFA的負權迴路問題 這幾個演算法都是解決單源最短路徑問題的,就是一個點到所有點的最短路)
最小生成樹(應用在無向連通圖中,就是拿掉一些邊,在保證圖連通的情況下,使得剩下的邊權值之和最小):普利姆(Prim)、克魯斯卡爾(Kruskal)
關鍵路徑(在生產生活中應用很廣,注意關鍵路徑之前一定要拓撲一次!)、拓撲排序(可用於是否有環路的檢測)、網路流等等
如果以上你都會了,那麼恭喜你,你已經可以算是一名初級程序員了!
可以繼續學 雙向深搜、雙向廣搜、周界搜索、迭代加深搜索、迭代加寬搜索、A*廣度優先啟發搜索、A*迭代加深搜索 等高級的演算法。
『肆』 PASCAL有哪些編譯器(最好支持win7)
編譯器有:x0dx0aFree Pascal 2.4.4x0dx0aDelphi 7.比較好用的文本編輯器有:(不能編譯,只能打代碼)x0dx0aGeditx0dx0aEmacs(大牛一般用Emacs...)