數據結構與演算法用什麼編譯器
Vim、C++編譯器、Dev-C++、Code::Blocks、Visual Studio等。
Vim是一個類似於Vi的著名的功能強大、高度可定製的文本編輯器,在Vi的基礎上改進和增加了很多特性。VIM是自由軟體。Vim普遍被推崇為類Vi編輯器中最好的一個,事實上真正的勁敵來自Emacs的不同變體。
「Borland C/C++ 5.5.1 for Win32」是一個C/C++編譯器,其功能完整、包含多種SDK,且容量極小,安裝版本大小僅8MB。Borland公司的旗艦級產品「C++ Builder 5」內置的就是這一編譯器。
❷ 數據結構與演算法作業:用C語言編程隨機生成一個迷宮,然後找出從入口到出口的路線圖。急!
幾點說明:
1.本程序是動態的,運行後自動尋找迷宮出路
2.本程序對C語言剛學完的有很大的意義.
3.四周是牆,坐標(1,1)是入口,右下腳是出口
聲明:本程序用VC調試是無法通過的需要修改
本程序調試工具是TC.....................
#include "graphics.h"
#include "dos.h"
#include "stdlib.h"
#include "process.h"
#define MAX_COL 14/*定義迷宮大小*/
#define MAX_ROW 14
typedef struct
{ int vert;
int horiz;
}offsets;
mapture(int i,int j,int k);/*標記迷宮,(i,j)標記為k模式*/
initmaze();/*初始化迷宮數組*/
findmaze(int i,int j);/*找到了(i,j)可走,標記*/
mapmaze();/*畫出原始迷宮*/
int findpath(int row,int col);/*遞歸函數,找出迷宮路徑*/
mapbar();/*畫出方格*/
initgrap();/*初始化VGA*/
print();/*迷宮走完後,輸出是否成功 */
int startx=50,starty=50;/*畫圖的屏幕坐標*/
int maze[MAX_ROW][MAX_COL];
offsets move[8]={{0,1},{1,1},{-1,1},{1,0},{-1,0},{0,-1},{1,-1},{-1,-1}}; /*8個方向尋找*/
initmaze()/*初始化迷宮數組 */
{ int i,j;
for(i=0;i<MAX_ROW;i++)/*迷宮四周設置為1 代表牆*/
{ maze[i][0]=1;
maze[i][MAX_COL-1]=1;
}
for(i=0;i<MAX_COL;i++)
{ maze[0][i]=1;
maze[MAX_ROW-1][i]=1;
}
randomize();
for(i=1;i<MAX_ROW-1;i++)/*迷宮圖形隨機產生 1表示不通 0表示可行*/
for(j=1;j<MAX_COL-1;j++)
{
maze[i][j]=random(2);
}
}
findmaze(int i,int j)/*找到 (i,j)可走*/
{
mapture(j,i,2);/*在圖形上標記*/
sleep(1);
}
returnmaze(int i,int j)/*找到(i,j)可走 ,但下一步無路走則標記*/
{
mapture(j,i,3);/*在圖形上標記*/
sleep(1);
}
print(int i)/*迷宮走完後,輸出是否成功*/
{ settextstyle(1,0,5);
if(i==1)
outtextxy(340,400,"Ture path!");
else if(i==2)
outtextxy(340,400,"No path!");
}
int findpath(int row,int col)/*用遞歸法找迷宮*/
{ int direct,next_row,next_col;
direct=0;
maze[1][1]=2;
mapture(1,1,2);
sleep(1);
while(direct<8)/*8個方向尋找*/
{ next_row=row+move[direct].vert;/*設置下一步坐標*/
next_col=col+move[direct].horiz;
if(maze[next_row][next_col]==0) /*可走,便標記*/
{ maze[next_row][next_col]=2;
findmaze(next_row,next_col) ;
if(next_row==(MAX_ROW-2)&&next_col==(MAX_COL-2))/*找到出口退出程序*/
{ print(1);
getch();
exit(0);
}
else
findpath(next_row,next_col);/*沒有到出口繼續遞歸*/
maze[next_row][next_col]=3;
returnmaze(next_row,next_col);
}
direct++;
}
return(row);
}
TC調試良好
❸ 常見的C語言編譯器是什麼
目前最流行的C語言編譯器有以下幾種:
1、GNU Compiler Collection 或稱GCC
GCC(GNU Compiler Collection,GNU編譯器套件),是由 GNU 開發的編程語言編譯器。它是以GPL許可證所發行的自由軟體,也是 GNU計劃的關鍵部分。
GCC原本作為GNU操作系統的官方編譯器,現已被大多數類Unix操作系統(如Linux、BSD、Mac OS X等)採納為標準的編譯器,GCC同樣適用於微軟的Windows。GCC是自由軟體過程發展中的著名例子,由自由軟體基金會以GPL協議發布。
2、Microsoft C 或稱 MS C
Microsoft C 是c語言的一種IDE(集成開發環境),常見的還有Microsoft Visual C++,Borland C++,Watcom C++ ,Borland C++ ,Borland C++ Builder,Borland C++ 3.1 for DOS,Watcom C++ 11.0 for DOS,GNU DJGPP C++ ,Lccwin32 C Compiler 3.1,High C,Turbo C等等......
3、Borland Turbo C 或稱 Turbo C
Turbo C是美國Borland公司的產品,Borland公司是一家專門從事軟體開發、研製的大公司。該公司相繼推出了一套 Turbo系列軟體, 如Turbo BASIC, Turbo Pascal, Turbo Prolog, 這些軟體很受用戶歡迎。
(3)數據結構與演算法用什麼編譯器擴展閱讀:
C編譯的整個過程很復雜,大致可以分為以下四個階段:
1、預處理階段在該階段主要完成對源代碼的預處理工作,主要包括對宏定義指令,頭文件包含指令,預定義指令和特殊字元的處理,如對宏定義的替換以及文件頭中所包含的文件中預定義代碼的替換等,總之這步主要完成一些替換工作,輸出是同源文件含義相同但內容不同的文件。
2、編譯、優化階段編譯就是將第一階段處理得到的文件通過詞法語法分析等轉換為匯編語言。優化包括對中間代碼的優化,如刪除公共表達式,循環優化等;和對目標代碼的生成進行的優化,如如何充分利用機器的寄存器存放有關變數的值,以減少內存訪問次數。
3、匯編階段將匯編語言翻譯成機器指令。
4、鏈接階段鏈接階段的主要工作是將有關的目標文件連接起來,即將在一個文件中引用的符號同該符號在另外一個文件中的定義連接起來,使得所有的目標文件成為一個能夠被操作系統裝入執行的統一整體。
❹ 數據結構與演算法問題,用c++編譯,要完整程序
#include<cstdio>
#defineX100000
intA[X],B[X];
voidinit();
intmain()
{
intna,nb,_max=-1e9;
scanf("%d%d",&na,&nb);
init();
for(inti=0;i<na;i++)
{
inta;
scanf("%d",&a);
_max=_max>a?_max:a;
A[a]=1;
}
for(inti=0;i<nb;i++)
{
intb;
scanf("%d",&b);
_max=_max>b?_max:b;
B[b]=1;
}
for(inti=0;i<=_max;i++)
if(A[i]^B[i])
printf("%d",i);
putchar(' ');
return0;
}
voidinit()
{
for(inti=0;i<X;i++)
A[i]=B[i]=0;
}
❺ 學C語言數據結構了用何種編譯器好
gcc for windows
VC
❻ 求救!!!請問數據結構C語言版上的代碼在什麼編譯器上實現啊
首先,你的這段代碼是不完整的,什麼編譯器都不能一下調試出結果來,必須補充完整才能調試。如果想在vc++上調試C程序,注意建文件時,文件名時一定是xxx.c這種格式。c語言的基本框架是
main()
{定義語句;
執行語句;
}
❼ 學習數據結構用那種編譯器好
這跟編譯器沒關系,那個好用用哪個。基本上還是用C語言吧,這樣資料還多些,更接近本質,C的話用 VC 吧,調試方便,gcc 難用。
❽ 數據結構(c語言版)裡面的那些程序是用什麼工具實現的。。
數據結構(c語言版)裡面的那些程序可以用VC 6.0來實現。其它C語言的編譯器也可以。
ASP.net 要用來做網路編程的,要一些網路知識和一點編程的基礎。
ASP的前景不如php和JSP,ASP不要花太多的時間去學了。
❾ 請問大家C/C++、JAVA、php、pascal、python、perl等程序語言的常用編譯器是什麼謝謝大家了
pascal
1、關於Turbo Pascal
Pascal是一種計算機通用的高級程序設計語言。它由瑞士Niklaus Wirth教授於六十年代末設計並創立。
以法國數學家命名的Pascal語言現已成為使用最廣泛的基於DOS的語言之一,其主要特點有:嚴格的結構化形式;豐富完備的數據類型;運行效率高;查錯能力強。
正因為上述特點,Pascal語言可以被方便地用於描述各種演算法與數據結構。尤其是對於程序設計的初學者,Pascal語言有益於培養良好的程序設計風格和習慣。IOI(國際奧林匹克信息學競賽)把Pascal語言作為三種程序設計語言之一, NOI(全國奧林匹克信息學競賽)把Pascal語言定為唯一提倡的程序設計語言,在大學中Pascal語言也常常被用作學習數據結構與演算法的教學語言。
在Pascal問世以來的三十餘年間,先後產生了適合於不同機型的各種各樣版本。其中影響最大的莫過於Turbo Pascal系列軟體。它是由美國Borland公司設計、研製的一種適用於微機的Pascal編譯系統。該編譯系統由1983年推出1.0版本發展到1992年推出的7.0版本,其版本不斷更新,而功能更趨完善。
下面列出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語言是編譯型程序語言,它提供了一個集成環境的工作系統,集編輯、編譯、運行、調試等多功能於一體
ps:高級語言發展過程中,PASCAL是一個重要的里程碑。PASCAL語言是第一個系統地體現了E.W.Dijkstra和C.A.R.Hoare定義的結構化程序設計概念的語言。1971年,瑞士聯邦技術學院尼克勞斯·沃爾斯(N.Wirth)教授發明了另一種簡單明晰的電腦語言,這就是以電腦先驅帕斯卡的名字命名的PASCAL語言。PASCAL語言語法嚴謹,層次分明,程序易寫,具有很強的可讀性,是第一個結構化的編程語言。它一出世就受到廣泛歡迎,迅速地從歐洲傳到美國。沃爾斯一生還寫作了大量有關程序設計、演算法和數據結構的著作,因此,他獲得了1984年度「圖靈獎」。
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已自成為一種標准,為許多人所熟悉。
看到這里,你可能會發覺我的回答與你最初的設想不同。你原來可能是想問Turbo Pascal有幾個版本,然而我卻回答了Pascal語言有幾個版本。這就是初學者常有的一個錯誤認識:Pascal是一種編程工具。實際上,Pascal是一種程序設計語言的名稱(從一般意義上說,Pascal也可以是指人名,它的取名原本就是為了紀念十七世紀法國著名哲學家和數學家Blaise 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逐漸被淘汰,全國信息學奧林匹克競賽決賽(NOI)和國際信息學奧林匹克競賽(IOI)已經指定Free Pascal為比賽使用的Pascal編程工具。Free Pascal是由一個國際組織開發的32位Pascal編程工具,屬於共享軟體,可用於各種操作系統。根據編譯選項的不同,它可以使用Borland Pascal兼容語法、Delphi 2 Object Pascal語法或者其它語法進行編寫程序。由於它擁有32位的編譯器,而且一直在更新發展中,因此它的功能比Borland Pascal更加強大,擁有許多現代程序設計的特徵,但同時也很不成熟,存在很多漏洞。Free Pascal正處於發展初期,相應的函數庫十分少,對程序員的吸引力遠比不上擁有VCL和CLX的Delphi和Kylix。
2、帕斯卡(Pascal,Blaise,1623年6月19日-1662年8月19日)是法國數學家、物理學家、思想家。生於克萊蒙費朗,早逝於巴黎。父親是數學家、「梅森學會」成員,對他的早期教育影響很大。他自幼聰穎,求知慾極犟,12歲始學幾何,即通讀歐幾里得(Euclid)的《幾何原本》(Elements)並掌握了它。16歲時發現著名的帕斯卡六邊形定理:內接於一個二次曲線的六邊形的三雙對邊的交點共線。據說他後來由此推出400多條推論。17歲時寫成《圓錐曲線論》(1640),是研究德札爾格(Girard Desargues)射影幾何工作心得的論文,包括上述定理。這些工作是自希臘阿波羅尼奧斯(Apollonius of Perga)以來圓錐曲線論的最大進步。1642年他設計並製作了一台能自動進位的加減法計算裝置,被稱為是世界上第一台數字計算器,為以後的計算機設計提供了基本原理。1654年他開始研究幾個方面的數學問題,在無窮小分析上深入探討了不可分原理,得出求不同曲線所圍面積和重心的一般方法,並以積分學的原理解決了擺線問題,於1658年完成《論擺線》。他的論文手稿對萊布尼茨(Gottfried Leibniz)建立微積分學有很大啟發。在研究二項式系數性質時,寫成《算術三角形》向巴黎科學院提交,後收入他的全集,並於1665年發表。其中給出的二項式系數展開後人稱為「帕斯卡三角形」,實際它已在約1100年由中國的賈憲所知。在與費馬(Pierre Fermat)的通信中討論賭金分配問題,對早期概率論的發展頗有影響。他還製作了水銀氣壓計(1646),寫了液體平衡、空氣的重量和密度等方向的論文(1651-1654)。自1655年隱居修道院,寫下《思想錄》(1658)等經典著作。
基本符號以及保留字:
pascal語言只能使用一下幾類基本符號:
(1)大小寫英文字母
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
(2)數字
1 2 3 4 5 6 7 8 9 0
(3)其他符號
+ - * / = <> <= >= < > ( ) [ ] { } := , . ; : .. '
注意,pascal語言除了可以使用以上規定的字元外,不得使用其他任何符號。
補充說明FreePascal(FP):
Free Pascal是一個在多種版本Pascal和Delphi下的產物,目前比較成熟的版本是由FreePascal.org發布的1.0.10版本,由於是Pascal上的改版,在FP里加入了很多以前沒有的東西,例如:FillChar系列內存塊賦值語句,用Power代替了**(乘方),但是**還是可以使用。
另外FP加強了與內存的互容性,增大對內存的支持,FP里的內存限制是TP和BP里的將近上萬倍。
FP還進一步加強了單元支持、面向對象程序設計的支持、顯卡(音效卡)的支持、圖形高級覆蓋的支持、Windows\Linux\OS/2\..等眾多系統的支持。在FP的較穩定版本中,可以方便的利用Win32編譯模式,編譯出Windows應用程序,與Delphi的功能相當。同時對動態連接庫、控制項、資料庫、文件、網路、OpenGL的深入支持,使得FP脫穎而出。
更值得提出的是,FP支持Delphi及C++的部分語言,例如:A+=2這樣的C Style語言,在FP里完美支持。
FP中支持單目、雙目操作符,即所有版本的Pascal的符號和「@」等特殊符號。
FreePascal.org現在正在修訂FP 2.0的版本,但使用起來並沒有1.0.10那樣輕松,穩定性也下降不少