资源描述
按一下以編輯母片標題樣式,按一下以編輯母片文字樣式,第二層,第三層,第四層,第五層,*,*,按一下以編輯母片標題樣式,按一下以編輯母片文字樣式,第二層,第三層,第四層,第五層,*,*,按一下以編輯母片標題樣式,按一下以編輯母片文字樣式,第二層,第三層,第四層,第五層,*,*,按一下以編輯母片標題樣式,按一下以編輯母片文字樣式,第二層,第三層,第四層,第五層,*,*,按一下以編輯母片標題樣式,按一下以編輯母片文字樣式,第二層,第三層,第四層,第五層,*,*,按一下以編輯母片標題樣式,按一下以編輯母片文字樣式,第二層,第三層,第四層,第五層,*,*,按一下以編輯母片標題樣式,按一下以編輯母片文字樣式,第二層,第三層,第四層,第五層,*,*,按一下以編輯母片標題樣式,按一下以編輯母片文字樣式,第二層,第三層,第四層,第五層,*,*,按一下以編輯母片標題樣式,按一下以編輯母片文字樣式,第二層,第三層,第四層,第五層,*,*,程式設計(二),參考書目:,1.,洪維恩,,C+,教學手冊 第三版,旗標出版圖書公司。,2.Walter Savitch,Absolute C+(4th Edition),Pearson Education,Inc.,2010.3.Paul J.Deitel and Harvey M.Deitel,C+How to Program,7rd Edition,Prentice Hall,2009.(,中文版,C+,程式設計藝術 第五版 全華書局,),1.C+,導論,Chih-Hung Wang,1,程式設計(二)參考書目:1.洪維恩,C+教學手冊 第,2,緣起 C/C+,C,語言是於,1972,年所發展出來的語言,C+,於,1980,年開始發展,將物件導向(,object oriented,)加入,C,語言中,稱為,C with classes,程式語言,2緣起 C/C+C語言是於1972年所發展出來的語言,3,C+,具有下列的幾項特色:,向下相容,C,語言,C+的特色(1/3),3C+具有下列的幾項特色:C+的特色(1/3),4,C+的特色(2/3),具物件導向技術的語言,物件導向程式設計(,OOP,)具有的相關技術,封裝,繼承,多型,靈活的程式流程控制,4C+的特色(2/3)具物件導向技術的語言,5,C+的特色(3/3),高效率且可攜性佳的語言,C+,在執行前必須先經過編譯,執行效率遠高於直譯式語言,可在修改少許程式碼的情況下,便能在不同的作業系統執行,程式碼的再利用,可依據原有類別所提供的功能,再加上新的需求,進而設計出新的類別,便是程式碼的再利用,程式碼的再利用可減少程式碼的開發時間與費用,5C+的特色(3/3)高效率且可攜性佳的語言,6,規劃與實作(1/2),1.,規劃程式,常用的流程圖符號,繪製流程圖的範例,6規劃與實作(1/2)1.規劃程式繪製流程圖的範例,7,規劃與實作(2/2),2.,撰寫程式碼及註解,3.,編譯程式,4.,連結程式,5.,偵錯與測試,語意錯誤(,semantic error,),語法錯誤(,syntax error,),6.,程式碼的修飾與儲存,7規劃與實作(2/2)2.撰寫程式碼及註解,8,第一個,C+,程式,程式碼的編輯到執行(1/2),8第一個C+程式 程式碼的編輯到執行(1/2),9,程式碼的編輯到執行(2/2),下面的視窗為鍵入程式碼之後的情形:,程式碼經過編譯與執行後的執行結果,9程式碼的編輯到執行(2/2)下面的視窗為鍵入程式碼之後的,10,簡單的C+程式(1/2),10簡單的C+程式(1/2),11,main(),函數的傳回值型態及引數型態的設定,簡單的C+程式(2/2),11main()函數的傳回值型態及引數型態的設定簡單的C+,12,關於ANSI/ISO C+的標準,C+,標頭檔可能有下面四種型態,C,語言的標頭檔:以,.h,結尾,C+,語言的標頭檔:以,.h,結尾,ANSI/ISO C+,新標準的標頭檔:沒有副檔名,從,C,移植過來的標頭檔,沒有副檔名,字首加小寫的,c,新版的,ANSI/ISO C+,必須利用,using namespace,來設定名稱空間為,std,12關於ANSI/ISO C+的標準 C+標頭檔可能有下,13,#include指令及標頭檔(1/2),標頭檔(,header file,)永遠被含括在程式碼的起頭處,右圖為含括動作前後的比較,13#include指令及標頭檔(1/2)標頭檔(hea,14,#include指令及標頭檔(2/2),標頭檔的內容,14#include指令及標頭檔(2/2)標頭檔的內容,15,編譯與執行過程的解說,原始程式編譯及連結的過程,15編譯與執行過程的解說 原始程式編譯及連結的過程,16,主函數、大括號、區塊與主體(1/2),主函數,main(),main(),是程式執行的開端,每個,C+,程式必須有一個,main(),,而且只能有一個,大括號、區塊及主體,區塊從左大括號(,)開始,到右大括號(,)結束,指令敘述結束時,以分號,;,做結尾,16主函數、大括號、區塊與主體(1/2)主函數main(),17,下面的範例說明什麼是程式區塊,主函數、大括號、區塊與主體(2/2),17下面的範例說明什麼是程式區塊 主函數、大括號、區塊與主體,18,變數(1/2),變數的宣告,變數的資料型態,資料型態有,char,int,bool,long,short,float,與,double,等,數值型態變數可分為有號(,sign,)或是無號(,unsigned,),18變數(1/2)變數的宣告,19,變數(2/2),變數名稱與限制,通常會以變數所代表的意義來取名。,自訂變數的名稱不能使用到關鍵字。,變數名稱的字元可以是英文字母、數字或底線。,名稱中不能有空白字元,且第一個字元不能是數字,19變數(2/2)變數名稱與限制,20,變數的設值,方法,1,在宣告的時候設值,方法,2,宣告後再設值,方法,3,在程式中的任何位置宣告並設值,20變數的設值 方法1 在宣告的時候設值,21,為什麼要宣告變數,直譯式語言不需要宣告變數,編譯程式可找到錯誤的變數名稱,避免變數名稱誤用,將變數集中宣告時,在系統維護上也就容易得多,21為什麼要宣告變數 直譯式語言不需要宣告變數,名稱空間,04 using namespace std;,是用來設定名稱空間為,std,。在,ANSI/ISO C+,最新規範中,,C+,標準函數庫裡所包含的函數、類別及物件均是定義在,std,這個名稱空間內,所以必須指名其使用之名稱空間為,std,,以便使用,C+,所提供之標準程式庫。(以後會詳述),如,endl,cin,及,cout,之使用,09 std:cout“I have”num “apples.”std:endl;,22,名稱空間04 using namespace std;22,23,cout與串接運算子,C+是採cout與串接運算子來輸出,以cout顯示字串:,23cout與串接運算子 C+是採cout與串接運算,24,換行輸出的範例,下面是把字串換行輸出的範例,24換行輸出的範例 下面是把字串換行輸出的範例,25,識別字(1/2),識別字是使用者用來命名變數或者是函數的文字,變數與函數的名稱均是識別字(identifier),為識別字命名時,只要能代表變數的意義即可,25識別字(1/2)識別字是使用者用來命名變數或者是函數的,26,識別字(2/2),識別字的習慣命名原則,26識別字(2/2)識別字的習慣命名原則,27,關鍵字,關鍵字(keyword)是編譯程式本身所使用的識別字,C+使用的關鍵字:,27關鍵字 關鍵字(keyword)是編譯程式本身所使用的識,28,錯誤的分類,錯誤分為,語法錯誤(,syntax error,),語法錯誤就是語法不符合,C+,的規定,語意錯誤(,semantic error,)。,語法正確,但執行結果不符合要求,28錯誤的分類錯誤分為,29,語法錯誤,下面是有語法錯誤的程式,29語法錯誤 下面是有語法錯誤的程式,30,語意錯誤,執行結果不符合要求,可能犯了語意錯誤,30語意錯誤 執行結果不符合要求,可能犯了語意錯誤,31,程式碼請用固定字距(1/2),下面的程式碼是用固定字距,31程式碼請用固定字距(1/2)下面的程式碼是用固定字距,32,程式碼請用固定字距(2/2),下面的程式碼是用比例字距,32程式碼請用固定字距(2/2)下面的程式碼是用比例字距,33,將程式碼縮排(1/2),有縮排的程式碼可提高可讀性,33將程式碼縮排(1/2)有縮排的程式碼可提高可讀性,34,將程式碼縮排(2/2),下面的例子因為撰寫風格的關係,閱讀起來較為困難,34將程式碼縮排(2/2)下面的例子因為撰寫風格的關係,閱,35,註解,註解有助於程式的閱讀與偵錯。,以/*開始,*/結尾,將欲註解的文字括起來,35註解註解有助於程式的閱讀與偵錯。,36,使用註解的目的,在程式碼起始處加入一段說明文字,將變數、函數、類別或是程式碼的作用寫出,在除錯的過程中,避免重複輸入,浪費時間,36使用註解的目的 在程式碼起始處加入一段說明文字,另一個,C+,例子,37,另一個 C+例子37,Arithmetic Operators,(,更多範例,),Display 1.4,Named Constant(1 of 2),Standard Arithmetic Operators,Precedence rules standard rules,38,Arithmetic Operators(更多範例)Di,Arithmetic Operators:,Display 1.4,Named Constant(2 of 2),1-,39,Arithmetic Operators:Display,補充教材,Code:Blocks,使用介紹,40,Code:Blocks,為,open source,的,IDE,。,跨平台,Windows,、,Mac OS X,、,Linux,等 之,IDE,。,支援多種編譯器,GCC/MinGW,、,Microsoft,Visual C+,Intel ICC,下載網站,http:/www.codeblocks.org/,補充教材 Code:Blocks 使用介紹40Code:,
展开阅读全文