他們太重要了,
(1)數據結構:首先要明白---->程序=演算法+數據
「數據結構」就是做數據這塊的,例如一個「電影播放器」程序,首先要有「電影」嗎,這個就是「數據」,那麼就要用「數據結構」的知識,怎麼存儲每一幀,怎麼高效,怎麼能無損,怎麼空間最節省.........,然後才是怎麼去「解碼」(解碼就是「演算法」做的啦),當然這么講起來不是很嚴謹,但你可以看得出,數據結構可以說的上是有50%的重要性了。
(2)編譯原理:不要以為,自己不去開發「語言」,編譯原理就沒有用啦,它能讓你從根本上理解編譯器,這對怎麼提高程序的效率,怎麼變出漂亮的程序很有用................當然貌似如果從事,「人工智慧」這一塊的話,編譯原理也非常重要。
(3)資料庫:又是剛才哪一點----------->程序=演算法+數據
數據以文件的形式存儲,是在不是很高效,所以,為了方便數據的管理與查找等等..........人類作出了「資料庫」,說白了,它就是用來解決「數據」這部分內容的,現在基本無論你做什麼都離不開資料庫了,從大型網游到網站,到手機等的移動設備編程,都要用到資料庫
--------------------------------------------------------------------------------------------------
從你的體溫來看,你可能剛剛接觸編程,沒有做過什麼成品,隨著你越來越了解這個領域,你會剛到這些東西非常重要,當然還有很多東西,與以上三者地位相當,或更高,例如,微型計算機組成原理,等一些硬體方面的知識.......................................
---------------------------------------------------------------------------------------------------
還是「廣泛閱讀」吧。
② 編譯原理中,在文法G中,E'的follow集為什麼會含有右括弧,題和答案如圖,求解答
這個問題中的一個產生式E』→+TE』| e,應該是E->+TE』 |ε這樣吧!否則不可能獲得如此結果.
關於求follow集合,龍書中說得很清楚,依據三條規則即可:
1、任何FOLLOW(S)都包含輸入終止符號,其中S是開始符號.
適用該條,因此FOLLOW(E』)中包含終止符號#.
2、如果存在產生式,A->αBβ,則將FIRST(β)中除ε以外的符號都放入FOLLOW(B)中.
該條不適用,因為在上述所有產生式中不存在形如E『->αE』β這樣的產生式.
3、如果存在產生式,A->αB,或A->αBβ,其中FIRST(β)中包含ε,則將FOLLOW(A)中的所有符號都放入FOLLOW(B)中.
適用該條,因為存在這樣的產生式E->+TE』,使得FOLLOW(E』)=FOLLOW(E)成立.而FOLLOW(E)適用上述第二條,根據產生式F→(E)可求得為FOLLOW(E)={#,)}.
綜上,FOLLOW(E』)=FOLLOW(E)={#,)}.
③ 編譯原理 終結符集合 包不包括空 ε 為什麼
除了非終結符之外的符號都是終結符,「|」符號除外,只有這個啥都不是
④ 【編譯原理】自頂向下LL(1)分析中,消除左遞歸和提取左因子的目的是什麼
通常LL(1) 是以函數遞歸調用來實現的
如文法: A -> A + a | a
代碼實現則為:
function A()
{
A();
match('+');
Term(a);
}
這樣你可以看得出死循環了吧...?
將文法消除左遞歸後
A -> aA'
A' -> +aA'
則可以避免這一問題
提出公因式 就像樓上說的一樣,避免程序回溯,消除二義性.
樓上高手啊,求搞基.
⑤ 編譯原理:靜態數組的存儲空間可以在編譯時確定。這句話為什麼是錯的。請給出詳細原因,謝謝。
靜態變數在程序運行過程中只在第一次初始化時,會賦初始值,以後即使再初始化其值也不會改變。
任何變數的存儲空間及存儲在內存中的位置都是由操作系統在程序運行時才分配的,只能說存儲空間的大小是程序裡面的初始化語句決定的。
靜態變數、全局變數和局部變數
1.從作用域看:
C++變數根據定義的位置的不同的生命周期,具有不同的作用域,作用域可分為6種:
全局作用域,局部作用域,語句作用域,類作用域,命名空間作用域和文件作用域。
1>全局變數具有全局作用域。全局變數只需在一個源文件中定義,就可以作用於所有的源文件。當然,其他不包含全局變數定義的源文件需要用extern關鍵字再次聲明這個全局變數。
2>靜態局部變數具有局部作用域,它只被初始化一次,自從第一次被初始化直到程序運行結束都一直存在,它和全局變數的區別在於全局變數對所有的函數都是可見的,而靜態局部變數只對定義自己的函數體始終可見。
3>局部變數也只有局部作用域,它是自動對象(auto),它在程序運行期間不是一直存在,而是只在函數執行期間存在,函數的一次調用執行結束後,變數被撤銷,其所佔用的內存也被收回。
4>靜態全局變數也具有全局作用域,它與全局變數的區別在於如果程序包含多個文件的話,它作用於定義它的文件里,不能作用到其它文件里,即被static關鍵字修飾過的變數具有文件作用域。這樣即使兩個不同的源文件都定義了相同名字的靜態全局變數,它們也是不同的變數。
2.從分配內存空間看:
1>全局變數,靜態局部變數,靜態全局變數都在靜態存儲區分配空間,而局部變數在棧里分配空間
2>全局變數本身就是靜態存儲方式,靜態全局變數當然也是靜態存儲方式。這兩者在存儲方式上並無不同。這兩者的區別雖在於非靜態全局變數的作用域是整個源程序,當一個源程序由多個源文件組成時,非靜態的全局變數在各個源文件中都是有效的。而靜態全局變數則限制了其作用域,即只在定義該變數的源文件內有效,在同一源程序的其它源文件中不能使用它。由於靜態全局變數的作用域局限於一個源文件內,只能為該源文件內的函數公用,因此可以避免在其它源文件中引起錯誤。
1)全局變數、靜態全局變數以及靜態局部變數都會被放在程序的靜態數據存儲區(全局可見)中,這樣可以在下一次調用的時候還可以保持原來的賦值。這一點是它們與堆變數、堆變數的區別。
2)靜態變數(包括靜態局部變數和靜態全局變數)用static告知編譯器,自己僅僅在變數的作用范圍內可見。這一點是它與全局變數的區別。
從以上分析可以看出,把局部變數改變為靜態變數後是改變了它的存儲方式即改變了它的生存期。把全局變數改變為靜態變數後是改變了它的作用域,限制了它的使用范圍。因此static這個說明符在不同的地方所起的作用是不同的。應予以注意。
Tips:
A.若全局變數僅在單個C文件中訪問,則可以將這個變數修改為靜態全局變數,以降低模塊間的耦合度;
B.若全局變數僅由單個函數訪問,則可以將這個變數改為該函數的靜態局部變數,以降低模塊間的耦合度;
C.設計和使用訪問動態全局變數、靜態全局變數、靜態局部變數的函數時,需要考慮重入問題,因為他們都放在靜態數據存儲區,全局可見;
D.如果我們需要一個可重入的函數,那麼,我們一定要避免函數中使用static變數(這樣的函數被稱為:帶「內部存儲器」功能的的函數)
E.函數中必須要使用static變數情況:比如當某函數的返回值為指針類型時,則必須是static的局部變數的地址作為返回值,若為auto類型,則返回為錯指針。
⑥ 倪志偉的論文專著
近五年來,在國內外學術期刊上公開發表論文30多篇,其中有15篇論文被EI或ISTP收錄。出版的教材或專著有:
1.《Foxpro實用教程》,南京大學出版社,1994年(主編)
2.《用C++建造專家系統》,電子工業出版社,1996年 (副主編)3.《機器學習與智能決策支持系統》,科學出版社,2004年5月(副主編)
4.《編譯原理》,北京希望電子出版社,2005年11月(主編)
5.《現代物流技術》,中國物資出版社,2006年1月(主編)(被評為國家「十一五」規劃教材)
6.《物流信息系統》,中國物資出版社,2006年2月(副主編)
7. 《智能管理技術與方法》,科學出版社,2007年10月(主編)
8. 《動態數據挖掘》,科學出版社,2010年8月(主編)
近年來,發表的主要學術論文如下: [1] Zhangjun Wu, Xiao Liu, Zhiwei Ni, Dong Yuan, Jinjun Chen, Yun Yang: A Market-Oriented Hierarchical Scheling Strategy in Cloud Workflow Systems, Journal of Supercomputing, Volume 63,Issue 1,pp.256-293,2013.(UT WOS:000313166000013).[2] Xiao Liu,Zhiwei Ni,et al.A Novel Statistical Time-Series Pattern based Interval Forecastting Strategy for Activity Durations in Workflow Systems.Journal of Software and system,2011,(84),354-376.(SCI indexed)[3] Liping Ni, Zhiwei Ni, YaZhuo Gao.Stock trend Prediction Based on Fractal Feature Selection and Support Vector Machine.Expert system with applications,2011,(38),5569-5576.(SCI indexed)[4]Xiao Liu,Zhiwei Ni,et al.A probabilistic strategy for temporal constraint management in scientisfic workflow systems.Concurrrency and Computation :Pratice and Experience,2011,23(16),1893-1919.(SCI indexed) [5] Xiao Liu, Zhiwei Ni, Zhangjun Wu, Dong Yuan, Jinjun Chen, Yun Yang: A Novel General Framework for Automatic and Cost-Effective Handling of Recoverable Temporal violations in Scientific Workflow Systems, Journal of Software and System,2011,(84),492-509. (SCI indexed ) [6]Zhiwei Ni,Junfeng guo ,et al.An Efficient Method for Improving Query Efficiency in Data Warehouse.Journal of software,2011,6(5),857-865.[7]高雅卓, 倪志偉等.連續屬性上的OLAP查詢建模方法研究.情報學報,2011,30(4),372-379.[8]張以文,倪志偉等.雲計算環境下動態虛擬企業夥伴選擇模型.計算機科學,2011,38(7),212-215.[9]倪志偉,公維峰等.數據流中隨機型分型維數計算方法研究.計算機科學,2011,38(4),209-212.[10]倪志偉,吳昊等.基於改進的經驗模態分解的時間序列匹配演算法.系統模擬學報,2011,23(11),2395-2399.[11]姜苗,倪志偉等.數據流時間窗口中閉頻繁項集的在線挖掘.中國科學技術大學學報,2011,(8),729-745.[12] Zhangjun Wu, Zhiwei Ni, Lichuan Gu, Xiao Liu: A Revised Discrete Particle Swarm Optimization for Cloud Workflow Scheling, 2010 International Conference on Computational Intelligence and Security (CIS2010), Nanning, China, 11-14 Dec. 2010 (EI indexed) [13] Xiao Liu, Zhiwei Ni, Zhangjun Wu, Dong Yuan, Jinjun Chen, Yun Yang: A Framework for Handling Fine-Grained Recoverable Temporal Violations in Scientific Workflows, 16th IEEE International Conference on Parallel and Distributed Systems (ICPADS2010), Shanghai, China, December 7-11, 2010, on Sept. 05, 2010 (EI indexed). [14] Yazhuo Gao, Zhiwei Ni, Yuxiao Zhao.A scheling strategy for OLAM tasks and its application in a financial BI system Business Intelligence and Financial Engneering .2009會議論文集: 435-440 (EI收錄) [15] Zhiwei Ni, Dan Han, Gongrang Zhang, Yazhuo Gao.Extension CBR Retrieval.AICI2009:224—227 (EI收錄) [16] Zhangjun Wu, Zhiwei Ni,Chang Zhang, Lichuan Gu. A Novel PSO for Multi-stage Portfolios Planning, IEEE International Conference on Artificial Intelligence and Computational Intelligence (AICI2009),71—77 (EI收錄) [17] Chang Zhang, Zhiwei Ni, Zhangjun Wu,Lichuan Gu. A Novel Swarm Model with Quasi-Oppositional Particle, International Forum on Information Technology and Applications (IFITA 2009), pp.325-330 (EI收錄) [18] Li Fenggang, Wang Xiaolu, Ni Zhiwei, Ni Liping. Semantic Analysis Based Literature Transaction System of Xi-An Medical Authority, Intelligent Information Management Systems and Technologies (2010),Volume6,No.3 ,219—226 [19] Xiao Liu, Jinjun Chen, Zhangjun Wu, Zhiwei Ni, Dong Yuan, Yun Yang.Handling Recoverable Temporal Violations in Scientific Workflow Systems: A, Workflow Rescheling Based Strategy,2010,pp.534-537 [20]Chao Wang ,Zhi-wei Ni ,Jun-fen Guo.A Fast Bidirectional Method for Mining Maximal Frequent Itemsets,The Third International Joint Conference on Computational Sciences and Optimization (CSO 2010),447—450 [21]倪志偉,高雅卓,李偉東,束建華.基於矩陣的增量式關聯規則挖掘演算法.計算機工程與應用, 2008,44(13):153-155 [22]劉斌,倪志偉,趙敏.基於屬性重要性的貪心演算法的改進演算法.合肥工業大學學報,2010,33(8):1185-1188 [23]王麗紅,倪志偉, 高雅卓.改進的蟻群演算法求解多目標車間作業調度問題.計算機技術與發展,2008 ,18(10):49—52 [24]吳姍,倪志偉,羅賀,鄭盈盈.一種基於密度的無監督聯系發現方法.中國管理科學,2008,16:29—32 [25]梁敏君,倪志偉,倪麗萍,楊葛鍾嘯.基於網格與分形維數聚類演算法.計算機應用,2009,29(3):830-833 [26]倪麗萍,倪志偉,吳昊,葉紅雲.基於分形維數和蟻群演算法的屬性選擇方法.模式識別與人工智慧, 2009,22(2):293—298(EI收錄) [27]倪志偉,倪麗萍,楊葛鍾嘯.分形技術在案例庫維護中的應用.計算機應用,2009,29(6):1598—1604 [28]倪志偉,吳姍,胡湯磊.聯系發現在證券客戶劃分中的應用研究.計算機工程與應用, 2009, 45(18):201--204 [29]Dan Han, Zhiwei Ni, Gongrang Zhang, Hongyu Wang, Jun Yan. Research and Design the Extension Case BaseBased on CBR. BIFE International meeting, 2009,:210—214 (EI收錄) [30]鄭盈盈,倪志偉,吳姍,王麗紅.基於移動網格和密度的數據流聚類演算法.計算機工程與應用,2009,45(8):129--131 [31]王園園,倪志偉,趙裕嘯,伍章俊.基於決策樹的模糊聚類評價演算法及其應用.計算機技術與發展, 2009,19(9):232-235 [32]嚴軍,倪志偉,王宏宇,韓丹.案例推理在汽車診斷中的應用.計算機應用研究. 2009,26(10):3846-3848 [33]劉慧婷,倪志偉.基於EMD與交叉覆蓋演算法的個人信用的評估.計算機工程與設計,2009,10:4472—4491 [34]劉慧婷,倪志偉.基於EMD與K-means演算法的時間序列聚類.模式識別與人工智慧,2009.10 :803—808 [35]倪志偉,李建洋,李鋒剛, 楊善林.案例決策技術及案例決策支持系統研究綜述.計算機科學,2009,36(11):18—23 [36]郭峻峰, 倪志偉, 高雅卓, 伍章俊.一種提高數據倉庫查詢效率的有效方法.計算機集成製造系統, 2009,15(12):2451-2457 (EI收錄) [37]高雅卓,倪志偉,郭峻峰,胡湯磊.用戶興趣驅動的冰山數據立方體構建及更新方法研究.計算機科學, 2009,36(12):179-182 [38]趙裕嘯,倪志偉,王園園,伍章俊.SQL Server 2005數據挖掘技術在證券客戶忠誠度的應用.計算機技術與發展, 2010,20(2):229-232 [39]李鋒剛,倪志偉, 郜巒.案例推理和多策略相似性檢索的中醫處方自動生成.計算機應用研究,2010, 27(2):544—547 [40]李建洋,倪志偉,鄭金彬,謝秀珍.案例知識維護技術的研究進展.武漢工程大學學報,2010,32(3):96-99 [41]趙敏,倪志偉,劉斌.K-means與樸素貝葉斯在商務智能中的應用.計算機技術與發展, 2010,20(4):179-182 [42]王宏宇,倪志偉,嚴軍,韓丹.灰度關聯理論在CBR中的應用研究.計算機技術與發展, 2010,20(5):96-100 [43]羅義欽,倪志偉,楊葛鍾嘯.一種新的數據流分形聚類演算法.計算機工程與應用, 2010,46 (6): 136-13 [44]查春生,倪志偉,倪麗萍,公維峰.基於相空間重構的股指時間序列相關性分析,計算機技術與發展,計劃在2010年第8期刊載 [45]姜苗,倪志偉,王超,戴奇波.在線挖掘數據流混合窗口中閉頻繁項集,系統模擬學報, [46]辜麗川,倪志偉,張友華.一種基於核矩陣迭代學習的範例相似度演算法,模式識別與人工智慧。 [47] Case base maintenance based on outlier data mining,Proc. 4th Intl. Conf. on Machine Learning and Cybernetics,IEEE Press, China, 2005.8 ,2861-2864 [48] 基於相似粗糙集的案例特徵項的約簡維護, 計算機科學,Vol.32,No.8.A , 2005,93-96 [49] 數據流管理與挖掘研究, 合肥工業大學學報(自然科學版), Vol.28, No.9 , 2005,1157-1162 [50] Case-Based Reasoning Framework Based On Data Mining Technique. Proceedings of the Third International Conference on Machine Learning and Cybernetics, Shanghai, August,2004,2511-2514 [51] 基於案例和規則相結合的推理技術,小型微型計算機系統,2004,Vol.25,No.7,1155-1158 [52] 集成範例推理系統的研究,系統模擬學報,2004,Vol.16,No.4, 803-806 [53] 範例推理中範例自動獲取的數據挖掘技術,天津大學學報,2003年,Vol.36,No.1,82-86 [54] 基於知識發現的範例推理系統,計算機科學,Vol.30,No.5,2003年,26-29 [55] 範例推理系統中的範例庫維護,小型微型計算機系統,Vol.24, No.10,2003年10月,1825-1828 [56] Integrated case-based reasoning,Proceedings of 2003 International Conference on Machine Learning and Cybernetics ,Xi』an,2003,1845-1849 [57]範例推理中的知識發現技術,小型微型計算機系統,Vol.23,No.2,2002年2月,159-162 [58]範例庫中特徵項權重的發現技術,廈門大學學報, Vol.41,No.2,2002年3月,168-172 [59]用神經網路來實現基於範例的推理系統,計算機工程,2002年7月,Vol.28,No.7 [60]A neural network case-based reasoning and its application , Proceedings of 2002 International Conference on Machine Learning and Cybernetics ,Beijing, 2002.11,529-532 [61]範例庫上的知識發現,南開大學學報,2002年12月,Vol.35,No.4 [62]神經網路專家系統及其數據挖掘技術的探討,系統工程學報,2001年,Vol.16, No.1, 61-65
⑦ 編譯原理課程設計-詞法分析器設計(C語言)
#include"stdio.h"/*定義I/O庫所用的某些宏和變數*/
#include"string.h"/*定義字元串庫函數*/
#include"conio.h"/*提供有關屏幕窗口操作函數*/
#include"ctype.h"/*分類函數*/
charprog[80]={'