《c程式设计与应用》ppt课件

上传人:tia****nde 文档编号:69554773 上传时间:2019-01-14 格式:PPT 页数:56 大小:434.90KB
返回 下载 相关 举报
《c程式设计与应用》ppt课件_第1页
第1页 / 共56页
《c程式设计与应用》ppt课件_第2页
第2页 / 共56页
《c程式设计与应用》ppt课件_第3页
第3页 / 共56页
《c程式设计与应用》ppt课件_第4页
第4页 / 共56页
《c程式设计与应用》ppt课件_第5页
第5页 / 共56页
点击查看更多>>
资源描述

《《c程式设计与应用》ppt课件》由会员分享,可在线阅读,更多相关《《c程式设计与应用》ppt课件(56页珍藏版)》请在金锄头文库上搜索。

1、Visual C+程式設計與應用,Ch6Ch8,條件式流程控制,if(條件式) 單行程式敘述; if(條件式) 多行程式敘述 ,if(test_score = 60) cout= 60) cout“You Pass!”endl; cout“Your score is”test_scoreendl; ,使用if敘述再撰寫程式時,請注意程式的縮排以及善用,if(x3) y=2; z+=8; a=y+x;,if(x3) y=2; z+=8; a=y+x;,條件式的值 布林值:true或false 整數:0表示false、其他為true a = -2; if(a) cout “here” endl;

2、,if巢狀是敘述 判斷A是否為2的倍數也是3的倍數 int a = 126; if(a % 2) = 0) if(a%3) = 0) cout “A是2的倍數也是3的倍數” endl; ,if(條件式) /條件成立時 程式敘述句一; else /條件不成立時 程式敘述句二; ,if(條件1) /條件1成立時執行此段 else if(條件2) /條件2成立時執行此段 else if(條件3) /條件3成立時執行此段 else /都不成立時執行此段,switch敘述 switch(條件式) case 回傳值1(符合數字或字元): break; case 回傳值2(符合數字或字元): break;

3、default: break; ,if(a = 1) / else if(a = 2) / else if(a = 3) /,switch(a) case 1: / break; case 2: / break; case 3: / break; default: / ,三元條件運算子 (條件式)?(程式1):(程式2) 當條件式為true時,會執行程式1,反之執行程式2,if(ab) c=a; else c=b; c = (ab)?a:b;,重覆式流程控制,for迴圈敘述 for(設定控制變數的初始值;迴圈條件;運算式) 需重覆執行的敘述 for(int i = 1 ; i3 ; i+) c

4、out “迴圈執行第” i “次” endl; ,for(int x=1 ; x2 ; x+) cout x endl; cout x endl; 最後一行中,x沒有被定義,while迴圈敘述 while(條件式) /重覆執行的敘述,do-while迴圈敘述 do 需要重覆執行的敘述 while(條件式); 可讓迴圈下的程式至少執行一次,巢狀迴圈 迴圈中包含另一迴圈,控制迴圈流程的技巧,若欲在迴圈流程或是條件式程式區段裡強迫終止程式的執行,又或者要離開此區段程式執行另一段程式,類似這樣的流程控制,可以使用goto、continue或是break,goto 不建議使用 goto 目的地標籤;,c

5、ontinue int a; for(a=0;a=9;a+) if(a=3) continue; cout a endl; ,break 可以離開目前switch、for、while、do while的程式區塊,練習,6-31 第3題 6-35 第19,20題,函式介紹,當你的程式越來越大、越來越複雜時,會發現到有某些程式碼經常被使用,而由於撰寫在同一個主函式中的關係,這些程式碼會一再被重覆地撰寫。 使用函式就可將程式碼組織成為一個小的、獨立的運行單元,並且可在程式中的各個地方重覆執行多次。這樣的方式可以省去了重覆撰寫相同程式碼的時間與空間。,函式的組成主要包括四個部份:傳回值型態、函式名稱、

6、參數列與函式主體 int addint(int i,int j) int sum; sum = i + j; return sum; ,函式宣告,任何函式被呼叫之前,必須先作宣告動作,除非函式與欲呼叫函式的程式是在同一個檔案,而且函式的定義位置在被呼叫的程式之前,否則會出現編譯錯誤。 要解決此問題就必須要使用函式原型來宣告函式。 函式原型的架構: 傳回值型態 函式原型名稱(參數列); ex: int func(int,int);,錯誤範例 int main() int i; i = func1(2); return 0; int func1(int var) return var +1; ,i

7、nt func1(int var) return var +1; int main() int i; i = func1(2); return 0; ,int func1(int); int main() int i; i = func1(2); return 0; int func1(int var) return var +1; ,將要使用的函式拿到前面宣告,使用函式原型來宣告函式,函式參數傳遞,在C+中傳遞參數的方法可以分為兩類;傳值給函式(pass by value)和傳參考值給函式(pass by reference) 傳值給函式 在傳遞的過程中作為參數的變數或是常數在實際上並未真正

8、的傳遞給函式,而是先將參數的值複製下來,供函式使用。,函數回傳值,函式的傳回值一般而言都是經過處理後的數值,但是有時因為考慮到程式碼的簡潔性也可將運算式放在傳回值內,處理後回傳給呼叫者。,int add(int a,int b) int sum = 0; sum = a + b; return sum; 也可簡寫成 int add(int a,int b) return a+b; ,行內函式,在呼叫函式時會產生記憶體空間來存放參數而導致需要額外的資源負擔,像前面的add()這種小函式,就可以使用行內函式(inline function) 使用行內函式方式直接寫進呼叫程式內,原始程式一遇到行內函

9、式呼叫,函式的程式碼會立即插入程式中,而非產品呼叫函式的指令。 寫法: inline int add(int a,int b) /在最前頭加inline ,遞迴,一個可以反覆執行的過程 一個跳出反覆執行過程中的缺口,練習,輸入一個整數n,請用遞迴寫出1加到n的值,巨集的定義與使用,在程式設計的過程中,有些數值或字串會經常使用到,如果這些值或字串沒有事先定義成常數,當需要更改這些數值或字串的內容時,就必須將整個程式與此值相關的程式片段進行修改。 在修改的過程中,也容易因為疏忽而漏改一些數值或字串,造成程式的錯誤。,在C+中,程式設計師可以透過使用#define指令來改善這類問題。 #define

10、 巨集名稱 數值、字串、程式敘述或函式 Ex:數學上一英吋為2.54公分,因此我們可以定義常數INCH,其值為2.54,其中INCH就是巨集的名稱,2.54就是指INCH常數的內容。也就是寫成: #define INCH 2.54 也可以寫成 const float INCH = 2.54;,const與#define的差別,使用const來宣告常數時,由於它本身是屬於一種資料型別,因此當使用const來宣告常數時會佔用記憶體空間,而使用#define指令定義常數時會不會佔用任何空間。,使用巨集取代函式,#define Sum a+b 當我們建立巨集Sum之後,在編譯程式碼時,就會以a+b來取

11、代Sum。如果要建立的替代文字內容過長時,必須使用” ”轉到下一行繼續建立替代文字。,除了單純地使用#define巨集指令來取代簡單的程式敘述外,我們也可以傳入適當的參數列及函式運算式,來取代簡單的函式功能。 #define 巨集函式名稱(參數列) (函式運算式) Ex:三角型面積 #define AREA(base,height) ( (base) * (height) / 2.0),取消常數或巨集的定義,當使用#define指令來建立常數或巨集後,想要取消常數或巨集的定義時,就可以使用#undef指令來取消。 當我們使用#define建立常數或巨集後,它可適用範圍是從定義開始,直到使用#undef指令取消或檔案結束為止。 使用#undef指令取消常數或巨集的定義之後,又想重新使用時,可以再使用#define指令重新定義。,#include using namespace std; /定義常數 #define Name “Andy“ /主程式 void main() cout “我的名字為:“ Name endl; / 取消定義 #undef Name / 重新定義 #define Name “Michael“ cout “我的名字為:“ Name endl; ,練習,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号