當前位置:首頁 » 編程軟體 » 結構化編程書

結構化編程書

發布時間: 2023-08-19 11:22:32

① 學習函數式編程的推薦書籍

1、關於書籍的選擇

1)、選擇好學習的函數式編程語言後,可以根據自己的情況去一些書店、網上商城(比京東、當當)選擇相應編程語言的書籍資料。

2)、如果從思想入手,並且希望學的更深入,個人建議從SICP(《計算機程序的構造和解釋》)入手,Scheme語言是思想的錘煉。
3)、如果用戶是java程序員,建議看看clojure,這是個極具生產力的語言工具,它運行於java平台上的lisp。twitter的storm就是用它寫的。clojure現在已經是黑客領域最耀眼的明星了。最重要的是clojure已經出版了很多本中文教材,可以入手學習了。順帶加上SICP可以加快學習進度。以項目為中心可以選擇《Clojure經典實例 功能性編程全面指南》、沒有基礎的可以選擇《LivingClojure》(中文版)、老程序員可以參考《Clojure編程樂趣》中文版 。

4)、如果不為作項目,只是為了提升個人的能力或者編程思想,可以選擇haskell語言,這個資料也比較多,無論書籍還是視頻、文檔等等 。


2、簡單說,"函數式編程"是一種"編程範式"(programming paradigm),也就是如何編寫程序的方法論。


它屬於"結構化編程"的一種,主要思想是把運算過程盡量寫成一系列嵌套的函數調用。舉例來說,現在有這樣一個數學表達式:

(1+2)*3-4

傳統的過程式編程,可能這樣寫:

vara=1+2;
varb=a*3;
varc=b-4;

函數式編程要求使用函數,我們可以把運算過程定義為不同的函數,然後寫成下面這樣:

varresult=subtract(multiply(add(1,2),3),4);

這就是函數式編程。


3、函數編程的特點:

函數式編程具有五個鮮明的特點。

1)、 函數是"第一等公民"

所謂"第一等公民"(first class),指的是函數與其他數據類型一樣,處於平等地位,可以賦值給其他變數,也可以作為參數,傳入另一個函數,或者作為別的函數的返回值。

舉例來說,下面代碼中的print變數就是一個函數,可以作為另一個函數的參數。

varprint=function(i){console.log(i);};
[1,2,3].forEach(print);

2)、只用"表達式",不用"語句"

"表達式"(expression)是一個單純的運算過程,總是有返回值;"語句"(statement)是執行某種操作,沒有返回值。函數式編程要求,只使用表達式,不使用語句。也就是說,每一步都是單純的運算,而且都有返回值。

原因是函數式編程的開發動機,一開始就是為了處理運算(computation),不考慮系統的讀寫(I/O)。"語句"屬於對系統的讀寫操作,所以就被排斥在外。

當然,實際應用中,不做I/O是不可能的。因此,編程過程中,函數式編程只要求把I/O限制到最小,不要有不必要的讀寫行為,保持計算過程的單純性。

3)、沒有"副作用"

所謂"副作用"(side effect),指的是函數內部與外部互動(最典型的情況,就是修改全局變數的值),產生運算以外的其他結果。

函數式編程強調沒有"副作用",意味著函數要保持獨立,所有功能就是返回一個新的值,沒有其他行為,尤其是不得修改外部變數的值。

4)、不修改狀態

上一點已經提到,函數式編程只是返回新的值,不修改系統變數。因此,不修改變數,也是它的一個重要特點。

在其他類型的語言中,變數往往用來保存"狀態"(state)。不修改變數,意味著狀態不能保存在變數中。函數式編程使用參數保存狀態,最好的例子就是遞歸。下面的代碼是一個將字元串逆序排列的函數,它演示了不同的參數如何決定了運算所處的"狀態"。

functionreverse(string){
if(string.length==0){
returnstring;
}else{
returnreverse(string.substring(1,string.length))+string.substring(0,1);
}
}

由於使用了遞歸,函數式語言的運行速度比較慢,這是它長期不能在業界推廣的主要原因。

5)、引用透明

引用透明(Referential transparency),指的是函數的運行不依賴於外部變數或"狀態",只依賴於輸入的參數,任何時候只要參數相同,引用函數所得到的返回值總是相同的。

有了前面的第三點和第四點,這點是很顯然的。其他類型的語言,函數的返回值往往與系統狀態有關,不同的狀態之下,返回值是不一樣的。這就叫"引用不透明",很不利於觀察和理解程序的行為。

② 譚浩強c語言入門書籍

C程序設計(第四版)
【作 者】:譚浩強
【出 版 社】:清華大學出版社
【出版日期】:2012-5-1
【 ISBN 號】:9787302224464
C程序設計(第四版)學習輔導
【圖書定價】:28元
【作者】: 譚浩強
【叢書名】: 中國高等院校計算機基礎教育課程體系規劃教材
【出版社】:清華大學出版社
【ISBN】:9787302226727
【出版日期】:2013 年1月
【開本】:16開
【頁碼】:268
《c程序設計(第四版)》
第1章程序設計和c語言1
1.1什麼是計算機程序1
1.2什麼是計算機語言1
1.3c語言的發展及其特點3
1.4最簡單的c語言程序5
1.4.1最簡單的c語言程序舉例6
1.4.2c語言程序的結構10
1.5運行c程序的步驟與方法12
1.6程序設計的任務14
習題15
第2章演算法——程序的靈魂16
2.1什麼是演算法16
2.2簡單的演算法舉例17
2.3演算法的特性21
2.4怎樣表示一個演算法22
2.4.1用自然語言表示演算法22
2.4.2用流程圖表示演算法22
2.4.3三種基本結構和改進的流程圖26
2.4.4用ns流程圖表示演算法28
.2.4.5用偽代碼表示演算法31
2.4.6用計算機語言表示演算法32
2.5結構化程序設計方法34
習題36
第3章最簡單的c程序設計——順序程序設計37
3.1順序程序設計舉例37
3.2數據的表現形式及其運算39
3.2.1常量和變數39
3.2.2數據類型42
3.2.3整型數據44
3.2.4字元型數據47
3.2.5浮點型數據49
3.2.6怎樣確定常量的類型51
3.2.7運算符和表達式52
3.3c語句57
3.3.1c語句的作用和分類57
3.3.2最基本的語句——賦值語句59
3.4數據的輸入輸出65
3.4.1輸入輸出舉例65
3.4.2有關數據輸入輸出的概念67
3.4.3用printf函數輸出數據68
3.4.4用scanf函數輸入數據75
3.4.5字元數據的輸入輸出78
習題82
第4章選擇結構程序設計85
4.1選擇結構和條件判斷85
4.2用if語句實現選擇結構87
4.2.1用if語句處理選擇結構舉例87
4.2.2if語句的一般形式 89
4.3關系運算符和關系表達式91
4.3.1關系運算符及其優先次序91
4.3.2關系表達式92
4.4邏輯運算符和邏輯表達式92
4.4.1邏輯運算符及其優先次序93
4.4.2邏輯表達式94
4.4.3邏輯型變數96
4.5條件運算符和條件表達式97
4.6選擇結構的嵌套99
4.7用switch語句實現多分支選擇結構102
4.8選擇結構程序綜合舉例105
習題111
第5章循環結構程序設計114
5.1為什麼需要循環控制114
5.2用while語句實現循環115
5.3用do…while語句實現循環117
5.4用for 語句實現循環120
5.5循環的嵌套124
5.6幾種循環的比較125
5.7改變循環執行的狀態125
5.7.1用break語句提前終止循環126
5.7.2用continue語句提前結束本次循環127
5.7.3break語句和continue語句的區別128
5.8循環程序舉例131
習題140
第6章利用數組處理批量數據142
6.1怎樣定義和引用一維數組142
6.1.1怎樣定義一維數組143
6.1.2怎樣引用一維數組元素144
6.1.3一維數組的初始化145
6.1.4一維數組程序舉例146
6.2怎樣定義和引用二維數組148
6.2.1怎樣定義二維數組149
6.2.2怎樣引用二維數組的元素150
6.2.3二維數組的初始化151
6.2.4二維數組程序舉例152
6.3字元數組154
6.3.1怎樣定義字元數組154
6.3.2字元數組的初始化155
6.3.3怎樣引用字元數組中的元素155
6.3.4字元串和字元串結束標志156
6.3.5字元數組的輸入輸出159
6.3.6使用字元串處理函數161
6.3.7字元數組應用舉例165
習題168
第7章用函數實現模塊化程序設計170
7.1為什麼要用函數170
7.2怎樣定義函數172
7.2.1為什麼要定義函數172
7.2.2定義函數的方法173
7.3調用函數174
7.3.1函數調用的形式174
7.3.2函數調用時的數據傳遞175
7.3.3函數調用的過程177
7.3.4函數的返回值178
7.4對被調用函數的聲明和函數原型179
7.5函數的嵌套調用182
7.6函數的遞歸調用184
7.7數組作為函數參數192
7.7.1數組元素作函數實參193
7.7.2數組名作函數參數194
7.7.3多維數組名作函數參數197
7.8局部變數和全局變數199
7.8.1局部變數199
7.8.2全局變數200
7.9變數的存儲方式和生存期204
7.9.1動態存儲方式與靜態存儲方式204
7.9.2局部變數的存儲類別205
7.9.3全局變數的存儲類別208
7.9.4存儲類別小結212
7.10關於變數的聲明和定義214
7.11內部函數和外部函數215
7.11.1內部函數215
7.11.2外部函數215
習題218
第8章善於利用指針220
8.1指針是什麼220
8.2指針變數222
8.2.1使用指針變數的例子222
8.2.2怎樣定義指針變數223
8.2.3怎樣引用指針變數224
8.2.4指針變數作為函數參數226
8.3通過指針引用數組230
8.3.1數組元素的指針230
8.3.2在引用數組元素時指針的運算231
8.3.3通過指針引用數組元素233
8.3.4用數組名作函數參數237
8.3.5通過指針引用多維數組245
8.4通過指針引用字元串255
8.4.1字元串的引用方式 255
8.4.2字元指針作函數參數259
8.4.3使用字元指針變數和字元數組的比較263
8.5指向函數的指針266
8.5.1什麼是函數指針266
8.5.2用函數指針變數調用函數266
8.5.3怎樣定義和使用指向函數的指針變數268
8.5.4用指向函數的指針作函數參數270
8.6返回指針值的函數274
8.7指針數組和多重指針277
8.7.1什麼是指針數組 277
8.7.2指向指針數據的指針280
8.7.3指針數組作main函數的形參282
8.8動態內存分配與指向它的指針變數285
8.8.1什麼是內存的動態分配285
8.8.2怎樣建立內存的動態分配285
8.8.3void指針類型 287
8.9有關指針的小結288
習題291
第9章用戶自己建立數據類型293
9.1定義和使用結構體變數293
9.1.1自己建立結構體類型293
9.1.2定義結構體類型變數 295
9.1.3結構體變數的初始化和引用297
9.2使用結構體數組300
9.2.1定義結構體數組300
9.2.2結構體數組的應用舉例301
9.3結構體指針303
9.3.1指向結構體變數的指針303
9.3.2指向結構體數組的指針304
9.3.3用結構體變數和結構體變數的指針作函數參數306
9.4用指針處理鏈表309
9.4.1什麼是鏈表 309
9.4.2建立簡單的靜態鏈表310
9.4.3建立動態鏈表311
9.4.4輸出鏈表315
9.5共用體類型317
9.5.1什麼是共用體類型317
9.5.2引用共用體變數的方式318
9.5.3共用體類型數據的特點319
9.6使用枚舉類型323
9.7用typedef聲明新類型名326
習題330
第10章對文件的輸入輸出331
10.1c文件的有關基本知識331
10.1.1什麼是文件331
10.1.2文件名332
10.1.3文件的分類332
10.1.4文件緩沖區333
10.1.5文件類型指針333
10.2打開與關閉文件335
10.2.1用fopen函數打開數據文件335
10.2.2用fclose函數關閉數據文件337
10.3順序讀寫數據文件338
10.3.1怎樣向文件讀寫字元338
10.3.2怎樣向文件讀寫一個字元串341
10.3.3用格式化的方式讀寫文件344
10.3.4用二進制方式向文件讀寫一組數據345
10.4隨機讀寫數據文件349
10.4.1文件位置標記及其定位349
10.4.2隨機讀寫 352
10.5文件讀寫的出錯檢測353
習題354
第11章常見錯誤分析355
附錄370
附錄a在visual c++ 6.0環境下運行c程序的方法370
附錄b常用字元與ascii代碼對照表377
附錄cc語言中的關鍵字378
附錄d運算符和結合性378
附錄ec語言常用語法提要380
附錄fc庫函數384
參考文獻390

③ 《C程序設計》學完了往後想學C++推薦幾本書

沒想到樓主和我的學習路程差不多。。
數據結構推薦你看這本:
http://proct.dangdang.com/proct.aspx?proct_id=9258224
這本書講得之好簡直曠古絕今,前面說了很多c++、c++ STL的歷史,中間說了數據結構的基礎理論,然後用c++實現了各種數據結構,最後還講了該數據結構在STL中的應用,最後還有綜合應用,非常之好,不過推薦有一定c++功底之後再看。

因為你有C語言基礎了,所以推薦你看這本:
http://proct.dangdang.com/proct.aspx?proct_id=9268172
這是非常經典的數據結構教材,缺陷就是理論多,實踐太少,所以最好是配備一本習題集,習題集上面有該數據結構的實現。

學習c++強烈推薦你看這本:
http://proct.dangdang.com/proct.aspx?proct_id=9258259
記得當年我就是看這本書學會的,這本書前面講的c++基礎理論,後半部分講Visual c++ 2005 環境下的Windows編程,涉及面非常之廣,而且你還可以接觸到.net下面的c++:C++/CLI。
這本書不但可以讓你學會c++基礎語法規范,而且還可以學會Visual Studio 2005這一當前第二新的開發平台,最新的是Visual Studio 2008,但是還沒有教材,剛出。

我個人主要攻的是游戲設計,這本書徹底教會了我DirectX 3D游戲編程:
http://proct.dangdang.com/proct.aspx?proct_id=9297813
我對這本書的評價:現在其貌不揚,但是多年之後會有國人稱之為經典,因為它的內容之廣泛,內容之詳盡無人可出其左右,但是這本書主要涉及到游戲編程,已經不是c++的基礎東西了,所以需要較為熟練掌握c++和VIsual c++開發平台之後才能看懂。。
再推薦一本游戲編程入門書:
Visual C++游戲編程基礎(附CD-ROM光碟一張)——游戲學院經典書叢

http://proct.dangdang.com/proct.aspx?proct_id=8991383
這本書從Window GDI開始講到了DX游戲編程,是游戲編程的入門好書,非常好。。
另外Windows游戲編程大師技巧也不錯,但是內容太多,怕你看不過來,而且這本書的內容也太老了。。

Visual Basic 2005從入門到精通
如果你要學習.net下面的VB的話我推薦你看這本
http://proct.dangdang.com/proct.aspx?proct_id=9243118
優勢:最新的平台
內容詳盡,1000多頁,作者寫得非常之好,例子非常之多。。
如果你要學習VB6.0,那麼我推薦你選擇這本:
http://proct.dangdang.com/proct.aspx?proct_id=9266082

因為我看過這本,這簡直就是VB6.0的網路全書,而且實例非常多,特別適合新手,講得也很通俗易懂。

你選擇學c++是對的,c++真的很好哈,另外再推薦兩本於c++有關的書:
http://proct.dangdang.com/proct.aspx?proct_id=9157098
C++ Primer中文第四版,這本書非常出名,頁非常經典,但是第四版加入了不少STL的內容,反倒不適合初學者了,第三版適合初學者,非常只好。

C++STL開發技術導引
http://proct.dangdang.com/proct.aspx?proct_id=9316375

這本書詳細介紹了c++ STL方方面面的應用,非常之經典,而且還分析了STL的部分源碼,對提高編程能力有質的提升。

最後推薦一本不能不看的書:
Effective C++改善程序與設計的55個具體做法(中文第三版)
http://proct.dangdang.com/proct.aspx?proct_id=9190688

這本書在c++的歷史上的地位我都不用多說了,如果你想成為一個真正的c++程序員,一定不要忘了看這本書。

④ 自學c語言 零基礎 看什麼書 該怎麼學

現在,市面上的
C語言書籍多的數不過來,但是很多不適合你這種初學者使用,作為一名老程序員,我給你推薦幾本我看過認為還不錯的書:
1)
《C語言小白變怪獸》:既適合對計算機一竅不通的小白,也適合有編程基礎的讀者,還可以用來進階。同時,最重要的是,這本書的作者還在不斷地更新這本書,我認為最大的特點是通俗易懂,深入淺出,只要認真看,就一定能看懂,我認為這是C語言入門的首選教材,吐血推薦,經典中的經典!!!
2)
《啊哈C語言》:適合對計算機一竅不通的純小白,有編程基礎的讀者請忽略。這本書語言幽默,生動形象,通俗易懂,給人耳目一新的感覺,但是這本書非常淺顯,並不深入,所以適合純小白入門,找到門以後也就扔了。這本書著重於語言藝術,針對純小白下足了功夫,小學生坐在馬桶上都能學會編程。說實話,我非常欣賞作者的創意和用心,國內像這樣寫書的少之又少,入門的書就應該是這個樣子。
上邊這兩本書是我推薦給你用於C語言入門的,我不建議你使用譚浩強的《C語言程序設計》這本書入門,雖然這本書的知名度很高,因為很多大學把它作為C語言的授課教材,然而,這本書被吐槽最多,不但代碼不標准,而且有很多錯誤,據說可以找出幾十個錯誤,這樣很容易誤導你這種小白。
等你有一定的C語言基礎了,可以看下面的這幾本書,進一步提升你的編程水平:
1)
《C
Primer
Plus》:暢銷
30
余年的C語言入門經典書籍,至今無人能撼動它的地位,它是最符合C語言標準的書籍,作為一名C語言程序員,不收藏一本都覺得自己很水。
2)
《C程序設計語言,The
C
Programming
Language》:C語言創始人丹尼斯·里奇(Dennis
MacAlistair
Ritchie)的著作,和《C
Primer
Plus》並駕齊驅,很難分出伯仲,這兩本書都是一樣的優秀,都是C語言程序員必須收藏的。
3)
《C專家編程》:適合已經具備C語言基礎、想進階的讀者。這貌似是一本吐槽C語言的書,基本上介紹了大多數C語言的坑,有不少精髓,在C語言界久負盛名,進階時一定要看。
4)
《C陷阱與缺陷》:和《C專家編程》類似,也是給C語言挑刺的,闡述了很多容易讓人誤解的語法細節,重在幫助C程序員繞過編程過程中的陷阱和障礙。
5)
《程序員的自我修養
--
鏈接、裝載與庫》:這真是一本深入骨髓的書,讓你徹底明白程序的編譯、鏈接、裝載和運行的全過程,你會從此上天,拉開和別人的差距,看任何問題都有了深度和高度。重點推薦!
所有的這些書我都有電子版,需要可以找我要!

⑤ c++的入門書籍介紹幾本..

一般來說,清華大學出版社的計算機書是最好的,主要有
1.《C++語言基礎教程(第2版)》
出版社:清華大學出版社
作者:呂鳳翥
書中全面、系統地講述了 C++語言的基本概念、基本語法和編程方法,較詳盡地講述了 C++語言面向對象的重要特徵: 類和對象、繼承和派生類、多態性、虛函數、函數模塊和類模板等內容。本書具有豐富的例題,每章後面均備有相當數量的練習題和作業題。 全書通俗易懂,由淺入深,突出重點,偏重應用。本書不僅可作為高等學校 C++語言課程的教材,還可作為 C++語言的自學教材
2.《面向對象程序設計與C++語言(第二版)》
出版社:人民郵電出版社
作者:楊庚/王汝傳/葉曉國
本書系統地介紹了面向對象技術及C++語言的相關知識。內容包括面向對象技術的概念和特徵、C++語言基礎、類和對象、派生與繼承、虛函數與多態性、模板、運算符重載、輸入/輸出流庫、異常處理等。 本書注重基本概念,從實際應用出發,突出重點,敘述清楚,深入淺出,論述詳盡,使讀者既能深刻領會面向對象程序設計的思想,了解面向對象程序設計的特徵,又能掌握C++語言的...
3.《C++語言程序設計教程》
出版社:清華大學出版社
作者:楊進才/沈顯君/劉蓉
C++語言是目前最為流行的程序設計語言,它既支持面向過程的結構化程序設計,也支持基於對象的面向對象程序設計。本書依據ANSI C++標准,從面向過程的編程到面向對象的編程方法展開,形成一條自然流暢的主線,同時兩個部分又自成體系,以滿足不同基礎與需求的學習者。內容包括:C++編程簡介、數據類型與表達式、控制結構、函數、構造數據類型、C++程序的結構、類與對象、繼承
4.《C/C++程序設計教程》
出版社:機械工業出版社
作者:秦維佳/傘宏力/侯春光/孟艷紅
本書是《C/C++程序設計教程》的配套學習輔導用書。. 全書共分12章,內容包括C/C++語言程序設計初步,C語言的數據類型及表達式,結構化程序設計,數組、函數與指針的概念和實例,結構體與共用體,位運算與文件的概念,面向對象程序設計,類的繼承與多態,C++的I/O流。每章包括知識體系、學習要點、上機實訓、習題和參考答案。.. 本書可供初學者學習C語言,也可供...
5.《C++程序設計基礎導學》
出版社:科學出版社
作者:趙海廷/嚴運國
本書為是實踐訓練環節必不可少的輔助教材。本書按照《C++程序設計基礎》的順序組織編撰,由基本要求、內容小結、典型例題分析、習題、實驗及習題參考答案組成。本書的目的是通過典型例題剖析、習題和實驗環節來鞏固所學的理論知識,提高學生的實踐操作水平。 本書適用高職高專的理工科學生,也適合於C++語言的初學者,還可供普通高校理...

⑥ 0基礎自學python,有入門書籍推薦下么

AlphaGo 都在使用的 Python 語言,是最接近 AI 的編程語言。

教育部考試中心近日發布了「關於全國計算機等級(NCRE)體系調整」的通知,決定自2018年3月起,在全國計算機二級考試中加入了「Python語言程序設計」科目。

9個月前,浙江省信息技術課程改革方案已經出台,Python確定進入浙江省信息技術教材,從2018年起浙江省信息技術教材編程語言將會從vb更換為Python。

小學生都開始學Python了,天吶擼,學習Python看完這些准沒錯。

安利一波書單

Python入門

Python數據分析》

作者: 【印尼】Ivan Idris

Python是一種多范型編程語言,既適用於面向對象的應用開發,又適合函數式設計模式。Python已經成為數據科學家進行數據分析、可視化以及機器學習的一種理想編程語言,它能幫助你快速提升工作效率。

本書將會帶領新手熟悉Python數據分析相關領域的方方面面,從數據檢索、清洗、操作、可視化、存儲到高級分析和建模。同時,本書著重講解一系列開源的Python模塊,諸如NumPy、SciPy、matplotlib、pandas、IPython、 Cython、scikit-learn和NLTK等。此外,本書還介紹了數據可視化、信號處理、時間序列分析、資料庫、預測性分析和機器學習等主題。通過閱讀本書,你將華麗變身數據分析高手。

熱點內容
哪些車有配置前後防撞鋼梁 發布:2025-03-16 22:55:35 瀏覽:727
伺服器怎麼設置外網訪問 發布:2025-03-16 22:53:03 瀏覽:184
安卓手機如何繞過緩存軟體 發布:2025-03-16 22:35:16 瀏覽:241
c語言求職 發布:2025-03-16 22:34:23 瀏覽:429
在線教育培訓源碼 發布:2025-03-16 22:31:57 瀏覽:233
反編譯vb工具 發布:2025-03-16 22:27:04 瀏覽:353
安卓流程為什麼越來越多 發布:2025-03-16 22:26:50 瀏覽:933
五軸編程模型 發布:2025-03-16 22:17:48 瀏覽:181
linuxc函數庫 發布:2025-03-16 22:03:33 瀏覽:921
iphone最新版系統從哪裡改密碼 發布:2025-03-16 21:56:19 瀏覽:596