Ⅰ 想學習編程序 開發自己的軟體從哪裡開始入手!
先學習C語言、
C語言是國際上廣泛流行的,很有發展前途的計算機高級語言.它適合作為系統描述語言,即可用來編寫系統軟體,也可用來編寫應用軟體.
早期的操作系統等系統軟體主要是用匯編語言編寫的(包括 UNIX操作系統在內).由於匯編語言依賴於計算機硬體,程序的可讀性和可移植性都比較差.為了提高可讀性和可移植性,最好改用高級語言,但一般的高級語言難以實現匯編語言的某些功能(匯編語言可以直接對硬體進行操作),例如:對內存地址的操作,位操作等).人們設想能否找到一種既具有一般高級語言特性,又具有低級語言特性的語言,集它們的優點於一身.於是,C語言就在這種情況下應運而生了.
C語言是在B語言的基礎上發展起來的,它的根源可以追溯到ALGOL 60. 1960年出現的ALGOL 60是一種面向問題的高級語言,它離硬體比較遠,不宜用來編寫系統程序.1963年英國的劍橋大學推出了CPL(CombinedProgram- ming Language)語言.CPL語言在ALGOL 60的基礎上接近了硬體一些,但規模比較大,難以實現.1967年英國劍橋大學的Matin Richards對 CPL語言作了簡化,推出了BCPL(Basic Combined Programming Language)語言.1970年美國貝爾實驗室的 Ken Thompson以 BCPL語言為基礎,又作了進一步簡化,設計出了很簡單的而且很接近硬體的 B語言( 取 BCPL的第一個字母),並用 B語言寫第一個UNIX操作系統,在PDP-7上實現. 1971年在PDP-11/20上實現了B語言,並寫了UNIX操作系統.但B語言過於簡單,功能有限.1972年至 1973年間,貝爾實驗室的 D.M.Ritchie在B語言的基礎上設計出了C語言(取 BCPL的第二個字母).C語言既保持了BCPL和B語言的優點(精練,接近硬體),又克服了它們的缺點(過於簡單,數據無類型等). 最初的C語言只是為描述和實現UNIX操作系統提供一種工作語言而設計的.1973年,K.Thom- pson和D.M.ritchie兩人合作把UNIX的90%以上用 C改寫(UNIX第5版.原來的 UNIX操作系統是1969年由美國的貝爾實驗室的 K.Thompson和D.M.Ritchie開發成功的,是用匯編語言寫的).
後來,C語言多次作了改進,但主要還是在貝爾實驗室內部使用.直到1- 975年UNIX第6版公布後 ,C語言的突出優點才引起人們普遍注意.1977年出現了不依賴於具體機器的C語言編譯文本《可移植C語言編譯程序》,使C移植到其它機器時所做的工作大大簡化了,這也推動了UNIX操作系統迅速地在各種機器上實現.例如,VAX,AT&T等計算機系統都相繼開發了UNIX.隨著 UNIX的日益廣泛使用,C語言也迅速得到推廣.C語言和UNIX可以說是一對孿生兄弟,在發展過程中相輔相成.1978年以後,C語言已先後移植到大,中,小,微型機上,已獨立於UNIX和PDP了.現在C語言已風靡全世界,成為世界上應用最廣泛的幾種計算機語言之一.
以1978年發表的UNIX第7版中的C編譯程序為基礎,Brian W.Kernighan和 Dennis M.Ritchie(合稱K&R)合著了影響深遠了名著《The C Programming Lan- guage》,這本書中介紹的C語言成為後來廣泛使用的C語言版本的基礎,它被稱為標准C.1983年,美國國家標准化協會(ANSI)根據C語言問世以來各種版本對C的發展和擴充 ,制定了新的標准,稱為ANSI C.ANSI C比原來的標准C有了很大的發展.K&R在1988年修改了他們的經典著作《The C Progra- mming Language》 ,按照ANSI C的標准重新寫了該書.1987年,ANSI C又公布了新標准--87 ANSI C .目前流行的C編譯系統都是以它為基礎的.
Ⅱ 本人非常想學宏程序如何入手
學好宏程序其實不難,人家花巨資開發就是為了方便使用。下面我給你詳細說說它的各系統的不同之處和使用方法:
不同的系統有不同編程語法。西門子明顯與三菱、法那科、華中、哈斯等系統不同。但編程思想是相通的。你的這個問題太寬泛了,我先說說相同的地方吧(西門子除外):
1.變數:正如計算機程序設計中的變數一樣,數控程序中也需要使用變數。要進行程序流程式控制制,變數是必不可少的。數控編程中的變數用符號#跟一個整數表示。例如 #1就是一個變數。給變數賦值的方法和計算機編程一樣,如#1=5。(相當於basic或C語言的a=5,pascal的a:=5。)
數控編程中的變數按作用域可分為三類:局部變數、全局變數、系統變數。#1~#33是局部變數,局部變數只在本程序內起作用;#100~#199、#500~#599(現在很多系統都不止599了)是全局變數,在所有程序中起作用;#1000以上的是系統變數,控制著機床運行的各種狀態,不要輕易修改。局部變數不能在程序運行時再加以修改,只能由程序控制。在使用局部變數時,必須在程序中賦初值。全局變數可以程序運行時人為地加以修改。在使用全局變數時,可以不在程序中賦初值,而在加工時打入所需值。補償量的本質是變數。
#0是空變數(相當於pascal的nil,C的NULL),不能給#0賦值。注意:空變數和0是不同的。正像在pascal里定義一個指針型變數p,則如下兩句程序是不同的:p:=nil、p^:=0。(或者C語言里的p=NULL、*p=0)當#1為0時,G1X100Y#1相當於G1X100Y0,而當#1為空時,G1X100Y#1相當於G1X100。當#1為0時,G#1X100相當於G0X100,而當#1為空時,G#1X100相當於X100。
表示變數的#號後面的數也可以是表達式或變數。例如,已知#1=5,#2=30,#3=25,#4=0,#5=80則#6=#[#1]相當於#6=80;#[3+4]=128相當於#7=128;#8=#[#4]相當於#8為空;#9=#[#2-#3]相當於#9=80;G#4X#2*#1Y#[#4]相當於G0X150。
變數可以自增或自減,變數經過運算後的值可以賦給自身。例如,當前#1=3;則執行#1=#1+1後#1的值是4。(相當於匯編語言里的INC AL;basic里的i=i+1;pascal里的inc(i);C語言里的i++。)再如,當前#1=3,則執行#1=#1EQ3後,#1的值是1。
2.算術運算和邏輯運算:①算術運算就是加減乘除(+-*/)。計算四則混合運算式時,先算乘除後算加減,如果有括弧則先算括弧里的。例如1+2*(7-4)=7。通常計算機程序設計里的括弧用圓括弧表示,但數控編程里用方括弧表示。數控編程里的圓括弧表示注釋(相當於匯編語言的分號、basic里的rem、pascal里的{}或(*…*)、C語言里的/*…*/。)②邏輯運算常見的有以下4種:與(and)、或(or)、非(not)、異或(xor)。與、或、非是基本邏輯運算,異或不是基本邏輯運算。A和B相異或的結果是AB+AB。「與」的運算規則是全1出1,有0出0,如1 and 1=1; 0 and 1=0;「或」的運算規則是全0出0,有1出1,如1 or 1=1; 0 or 1=1;「非」是單目運算符,即0變1,1變0。程序設計中的邏輯值(也叫布爾值,即「真」和「假」)在計算機中用1和0表示,通常1表示「真」,0表示「假」。如果是兩個整數進行邏輯運算,則是這兩個數的二進制的各位進行運算,例如5 and 6=4; 5 or 6=7。具體用法你可以回憶一下計算機程序設計中的用法,數控編程中也同樣使用。and、or、not、xor四種運算符分別相當於匯編、basic或pascal里的and、or、not、xor;C語言里的&、|、!、^。③數控編程中也可以使用取余運算(mod),例如10 mod 3=1。mod相當於匯編、basic或pascal里的mod、C語言的%。④數控編程中的比較運算符和匯編語言(指Intel80x86匯編語言)里的相同,即EQ(等於)、NE(不等於)、LT(小於)、LE(小於等於)、GT(大於)、GE(大於等於)。相當於basic或pascal里的=、<>、<、<=、>、>=,C語言里的==、!=、<、<=、>、>=。
3.常用數學函數:數控編程中用到的函數主要是數學函數。一般數控系統均提供下列函數:絕對值函數abs(x);平方根函數sqrt(x);三角函數sin(x);cos(x);tan(x) (單位是度,但華中是弧度);反三角函數asin(x);acos(x);atan(x);對數函數ln(x);指數函數exp(x);四捨五入取整函數round(x);截斷取整函數fix(x);進位取整函數fup(x);以及把8421BCD碼轉二進制的函數bin(x) 和把二進制轉8421BCD碼的函數bcd(x)。大多數數控系統要求函數名必須用大寫,括弧則必須用方括弧。例如G[#1GT30]X[50+2*ABS[#1]],當#1=20時相當於G0X90。
4.程序流程式控制制:程序流程可以進行無條件轉移、條件轉移、循環,還可以調用子程序或宏程序。
無條件轉移的格式是GOTO_。GOTO後面的數是要轉移到的程序行的標號(即N_)。如果無條件往回跳轉,則有可能造成死循環(即程序無法自然執行結束)。條件轉移的格式是IF[……]GOTO_或IF[……]THEN……。方括弧內是一個邏輯值,通常使用一個判斷表達式表示。循環的格式是WHILE[條件表達式]DO m …… END m。DO m和END m之間的部分是循環體,m是一個整數,用於說明哪個END和哪個DO配對。m可重復使用,只有在循環嵌套時才需要改變m。在進行程序跳轉時,可由循環體內跳轉至循環體外,但不能循環體外跳轉至循環體內(各種編程語言均如此)。
宏程序(用G65調用或直接寫成G××)和子程序(用M98調用或直接寫成M××)主要有以下區別:
①宏程序可以傳遞參數,子程序不能傳遞參數。
②M98指令可以指定標號,故可以把子程序和主程序寫在一個程序中(因系統而異);G65指令不能指定標號,宏程序必須單獨寫成一個程序。
③子程序里的變數不區分層次,主程序里的#1和子程序里的#1是同一個變數;宏程序里的變數區分層次,主程序里的#1和宏程序里的#1不是同一個變數。這類似於pascal里的函數嵌套(C語言不允許函數嵌套)。
各系統還有自己的特點,如三菱可以寫G#1+#2,法那科必須寫成G[#1+#2];三菱可以寫IF[#1]GOTO1(想想C語言里的if(a)...)法那科不行;西門子的變數是R1、R2,無條件轉移是gotof、gotob等,細節的差別太多了,你參考一下系統說明書。
宏程序可以定義成G代碼(如G200,只要系統沒用到),用法和系統原帶的幾乎沒有區別。實際上系統原帶的G代碼除了一些基本的(如G0~G4等)大都是用宏程序實現的,如G73~G89(孔加工)、M6(換刀)等。(我交待一句:你可以打開它們的宏程序看看,但不要修改!)
我花很大工夫給你回帖,不知你覺得有用沒有。請問你是學生還是已經參加工作了?在什麼地方?你要是參加工作了,我可以再詳細說說怎麼編宏程序,其中涉及到程序設計思想、數學計算、系統變數、參數傳遞方法等等。我也願意多交流交流經驗。如果你是學生,我再多說恐怕你嫌太枯燥了。
Ⅲ 想學編程,從哪兒入手比較好
送你一個很好的學習網址:http://www.vbaspnew.com/
對於廣大編程初學者來說,存在著這樣普遍的認識:學習程序設計選擇編程語言
很重要,開口閉口就是VisualBasic、Visual C++、Delphi、Power Builder等一些現在比較流行的開發工具。經常看見有初學者問:我學C/C++,究竟是學
VisualC++好,還是學Borland C++ Builder好呢?或者就是要求在Visual Basic和Delphi之間作出選擇。學習程序設計和學習程序設計語言究竟是怎麼一個關系?初學者究竟應該如何取捨呢?就此我們打個簡單的比方:學習程序設計就好比學習射擊,而程序設計語言就對應射擊中的氣槍、手槍、步槍等各種槍械。學習射擊必須要選擇一種槍械,不可能沒有槍還能學好射擊的,也不可能同時學會使用所有的槍械。但是,如果掌握一種槍械的射擊,再學別的也就觸類旁通了。因為在熟悉一種槍械的同時,也學習了射擊技術本身。再學其他的,自然事半功倍。學習程序設計也是一樣,必然要從學習一門程序設計語言開始入手。同時在學習的過程中?
建議:學習程序設計不必苛求一定要從某一種語言入手,可以在Visual Basic、Delphi、Borland C++ Builder或者DOS下的Pascal、Turbo C(或Borland C)中間選擇自己比較容易接受的一種進行學習。從中主要學習的是編程本身的思想,學習的是用程序設計的眼光來看待問題。或許,學習的效果不能馬上看到,但是可以學到扎實的基本功,而這對於將來的進一步發展是有很大好處的。這些基本功包括:
一、強化邏輯分析和建立數學模型的能力
編程的目的是什麼?是要解決現實中的問題。而現實中的問題是用自然語言描述的,目前的計算機對其無法理解。我們要做的就是必須用計算機能理解的方式將問題「告訴」計算機。也就需要我們對現實問題進行邏輯分析,建立合理的數學模型,然後以程序和數據的形式輸入計算機,R、G、B三色份量來各表示一種顏色,對於顏色的處理被轉化為對R、G、B三個整數的處理。我們只要改變這三個整數,就可以將其改變成另外一種顏色。對於其它的現實問題,我們也要像
這樣使其可以被計
二、數據結構和演算法知識
程序設計發展到現在,已經有了一套比較普遍、完整的數學模型(我們稱之為
數據結構)和對應這些數學模型的處理方法(也就是演算法)。目前的程序就是以
此為基礎的。在程序員中間流傳著一句經驗之談:「好的數據結構是程序的一
半。」其重要性可見一斑。作為一個程序員
三、豐富的實踐經驗
程序設計本身就是一門實踐性很強的學科。一個只存在於紙上的程序如同沒
有翅膀的鳥永遠不能飛翔在現實的天空。任由代碼寫得再巧妙,風格再優美,也
只是一張紙上的一連串字元而已。就好比是一份作文練習,或許寫得很好,但是
不交給老師去批閱,和一張白紙又有什麼區別呢?!最後,作為一個程序員還有一點小要求:那就是身體素質要好,能熬夜才行。
Top of Form 1
選其器與善其事——縱談編程工具的選擇選其器相同主題的文章
「工欲善其事,必先利其器」——《論語》。很多人在學習軟體編程時,都希望
選擇一款優秀的編程工具。到書店逛逛,可以看到各種琳琅滿目的編程書籍,可
是你還沒有想好選擇學習什麼編程語言,也就無所適從,不知道該買什麼書看。
要想學好編程,必須認真了解各種語言的特點,找准自己的學習方向。那麼你首
先必須明確你想要做什麼,你所感興趣的是什麼?進一步說就是:你現在想要完
成哪一方面的程序設計,你的程序主要完成的功能是什麼?由此在眾多軟體中,
選擇出適合自己的開發工具。
一、基礎語言開發工具
諸如Delphi、VC++、VB等語言都是一種面向對象的程序設計語言,雖然每種語言在對面向對象的支持不盡相同,但它們始終貫穿整個程序設計的思維方式的主線。因此,要學好這些語言最開始不應該將重點放在某種語言的具體語法格式上,而應該注重學習面向對象的基本理論
最容易的入門語言——Visual Basic
在掌握面向對象編程的基本概念的基礎上,相對來講,VB是比較容易入門的
一門語言。在學習VB時,應該注意抓住對象的精髓,避免凌亂和繁雜,注意掌握
對象和控制項的屬性和事件以及它們的功能和用法、主要函數的簡單功能。最有效
的方法就是自己組織一個由簡到繁的學習步驟,比如:在學習VB簡單繪圖功能時,學著自己繪制正弦曲線;學習使用picturecl控制項來製作一個液晶效果顯示時間;在學習API函數時,製作自己的任務欄圖標。這種方法能夠很好的幫助你掌握VB中常用對象、事件的使用。
最靈活的語言——Delphi
對於Delphi來講,如果你曾經學過PASCAL的話,你會發現很多東西都是「似曾相識」的。確實如此,Delphi本身就是由和PASCAL結構類似的Object
Pascal編寫而成。如果你有一定的PASCAL基礎,學習起來當然更輕松一些。另外,還應注意對Delphi中包的理解和應用。比如,對運行期包、設計期包以及自己建立包應該注意的事項。在熟練掌握Object Pascal語言的基礎上,可以把學習Delphi時的重點放到如何使用Delphi編寫Windows應用程序,Delphi資料庫編程和創建控制項以及程序開發上面。
最強大的語言——Visual C++
VC++中由於有較完整的微軟基本類庫,使開發Windows應用程序變得簡單而
高效。它提供的復雜的資源編輯器,可以很方便地編輯對話框、菜單、工具欄以及其他組成元素,因此它的功能強大,使用方便,但是和VB、Delphi相比,入門較難、不容易掌握。學習VC++,應該首先把重點方在基本數據類型、輸入/輸出、循環和數組、模板以及如何創建C++應用程序上面。在此之後,才應該進一步學習VC++中資源編輯器的使用、ActiveX控制項的使用以及編輯器優化等內容。目前很多關於VC++的書籍中大部份都是對使用VC++各個版本開發應用程序的介紹,而忽略了C++的基本知識,實際上,對於初學者來講,直接從具體應用程序設計入手而忽略基本知識,反而會在很大程度上加大學習難度,很容易喪失學習的信心?!---->
當然在上述這些語言中,都提供有自己的資料庫編程和Internet編□'7b。在對程序本身熟練掌握的基礎上,你還可根據自己的需要選擇學習。當你已具有一定程序設計能力時,不妨自己設計一個現實、有興趣的課題,自行開發、自行設計。這樣可以幫你很好地熟練
二、資料庫編程
如果你主要是想完成資料庫方面的設計,那麼應該選擇專門的資料庫開發工具,常見的有:SQLServer、PowerBulider等。假如只是需要完成相對簡單的資料庫功能,那就仔細看看Access吧。花不多的時間,也能讓你有很大的收獲,另外,還有一些專門用於大型資料庫開發的工具如:DB2、Sysbase以及Oracle,這一類的軟體一般都需要有較扎實的資料庫基礎知識和一定的軟體開發能力。如果你是從頭開始的話,建議不要一開始就去學習這一類軟體。PB和SQLServer主要是用於完成數據處理和資料庫的訪問。由於SQLServer和操作系統兼容性較好以及在網路中的廣泛應用,目前很多業余愛好者都選擇學習它,在學習SQLServer時,應把重點放在SQL語言的組成、SQL的事務管理以及SQL的查詢和優化上面。而PB則一直都是很多從事數人來講,在學習資料庫基本使用技巧的同時,還應注意到在PB中,對於需要訪問Windows特殊功能的應用程序需要調用API函數,比如:控制滑鼠、創建目錄以及閃□'7b窗口等。
在學習資料庫編程時,可以嘗試著完成一個完整的軟體開發周期。從需求分析隍7d始,親身經歷設計資料庫、創建資料庫前端、創建表格、完成常見查詢以及輸出報表等全部過程。
三、網路編程
目前較為流行的網路編程工具可謂「風格迥異,百花齊放」。每一種工具都有其獨特的特點,在互聯網實現上都有各自的優勢。
在學習Java時,應該明確其中對象、繼承等面向對象的基本理論,從根本上掌握Java的運行機制。在學習中應把重點放在其語言基礎、Java與ActiveX以及JavaBeans等組件之間的編程技術以及應用上來。你可以自己編一些較為經典的小程序來加深基本技能的掌握:用Java的圖形處理能力編寫紙牌游戲,用AWT編寫掃雷或者俄羅斯方塊、用Java的網路功能編寫網路聊天室等等。
相對來講,ASP編輯方式簡單、容易上手、功能強大,早已被廣泛採用。在學
習ASP時,應該首先對ASP相關的網路知識、Web Server設置、HTML語言等方面有
一定了解,在此基礎上,注重ASP的主要編程語言VBScript、ASP的常用對象和組
件的學習。如果想對ASP有較深入的了解的話,還必須對其常用的資料庫
SQLServer、Acess等具有基本的使用技能。你可以自己嘗試編一個簡單的網上投票、網上超市等程序來加深對上述知識的掌握。
另外,值得一提的還有網路編程語言的「新秀」——PHP。它□'5c脫了ASP只能使用NT或者Windows 2000為伺服器操作系統的限制,對於資料庫的訪問較ASP更快、更直接。但是目前對於初學者來講,其語言比較難理解,安裝相對復雜、可供參考和學習的資料遠不及ASP。同時在Windows中使用PHP,並不能夠很好地體現其優越性。因此,我們建議對於沒有Linux/Uninx基礎的初學者,最好不要從PHP學起。
網路編程還有一個很大的特點:處處留心皆學問。時常留意互聯網上各個網站的設計,留心他人的設計思想和創意,會使你的網路編程技巧進步很快。總的來講,網路編答7b本身難度並不大,但是由於其在具體項目設計上涉及范圍較廣,比如涉及到與各種各樣的資料庫直接的介面、 學習語言的過程,是自己創造、自己編程的過程,也是逐漸掌握、逐漸應用的過程。在學習過程中逐漸培養起良好的編程思維、經驗,逐步提高程序設計能力、找到更好的設計方案才是編程開發的真正精髓和樂趣所在!
懂數據結構怕不行,我說的高手,不是在會不會的界限上,而是在能不能的界限上.
Ⅳ 程序員怎麼入門要學習,知道些什麼
從二進制了解入手,到了解計算機的原理,再到了解程序的原理,軟硬體的原理,再到學習程序語言,再到精通這門程序語言,最後是觸類旁通一通百通,這么說也許誇張一點,計算機語言現在為不同的門類也有不少劃分,不過可以同時通上幾門還是可以的