![上海交大PPT學(xué)習(xí)教案_第1頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-7/16/bb87d0c2-a23c-4140-bf9f-882d778fde27/bb87d0c2-a23c-4140-bf9f-882d778fde271.gif)
![上海交大PPT學(xué)習(xí)教案_第2頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-7/16/bb87d0c2-a23c-4140-bf9f-882d778fde27/bb87d0c2-a23c-4140-bf9f-882d778fde272.gif)
![上海交大PPT學(xué)習(xí)教案_第3頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-7/16/bb87d0c2-a23c-4140-bf9f-882d778fde27/bb87d0c2-a23c-4140-bf9f-882d778fde273.gif)
![上海交大PPT學(xué)習(xí)教案_第4頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-7/16/bb87d0c2-a23c-4140-bf9f-882d778fde27/bb87d0c2-a23c-4140-bf9f-882d778fde274.gif)
![上海交大PPT學(xué)習(xí)教案_第5頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-7/16/bb87d0c2-a23c-4140-bf9f-882d778fde27/bb87d0c2-a23c-4140-bf9f-882d778fde275.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、會(huì)計(jì)學(xué)1上海交大上海交大第1頁(yè)/共591頁(yè)第2頁(yè)/共591頁(yè)第3頁(yè)/共591頁(yè)第4頁(yè)/共591頁(yè)第5頁(yè)/共591頁(yè)第6頁(yè)/共591頁(yè)賦值表達(dá)式賦值表達(dá)式自增自減運(yùn)算符自增自減運(yùn)算符強(qiáng)制類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換數(shù)據(jù)的輸入輸出數(shù)據(jù)的輸入輸出第7頁(yè)/共591頁(yè)/ File: hello.cpp/ this program prints the message/ “hello everyone” on the screen#include int main() std:cout “hello everyone” std:endl; return 0;程序注釋程序注釋預(yù)處理命令預(yù)處理命令主程序主程序第8頁(yè)/
2、共591頁(yè)第9頁(yè)/共591頁(yè)/ File: hello.cpp/ this program prints the message/ “hello everyone” on the screen#include int main() std:cout “hello everyone” std:endl; return 0;程序注釋程序注釋預(yù)處理命令預(yù)處理命令主程序主程序第10頁(yè)/共591頁(yè)第11頁(yè)/共591頁(yè)第12頁(yè)/共591頁(yè)第13頁(yè)/共591頁(yè)第14頁(yè)/共591頁(yè)/ File: hello.cpp/ this program prints the message/ “hello everyo
3、ne” on the screen#include int main() std:cout “hello everyone” std:endl; return 0;程序注釋程序注釋預(yù)處理命令預(yù)處理命令主程序主程序第15頁(yè)/共591頁(yè)第16頁(yè)/共591頁(yè)函數(shù)體與與PYTHONPYTHON不同,不同,C+C+的函數(shù)體必須用一對(duì)花括號(hào)括起來(lái)。的函數(shù)體必須用一對(duì)花括號(hào)括起來(lái)。事實(shí)上,事實(shí)上,PYTHONPYTHON中所有必須縮進(jìn)的語(yǔ)句,在中所有必須縮進(jìn)的語(yǔ)句,在C+C+中都必須中都必須用花括號(hào)括起來(lái)。用花括號(hào)括起來(lái)。第17頁(yè)/共591頁(yè)nstd:cout “hello, everyone” std:e
4、ndlnstd:endl表示換行第18頁(yè)/共591頁(yè)第19頁(yè)/共591頁(yè)第20頁(yè)/共591頁(yè)第21頁(yè)/共591頁(yè)賦值表達(dá)式賦值表達(dá)式自增自減運(yùn)算符自增自減運(yùn)算符強(qiáng)制類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換數(shù)據(jù)的輸入輸出數(shù)據(jù)的輸入輸出第22頁(yè)/共591頁(yè)/ file: circle.cpp/ 該程序用于計(jì)算園的面積和周長(zhǎng)該程序用于計(jì)算園的面積和周長(zhǎng)#define PI 3.14159 /定義符號(hào)常量定義符號(hào)常量#include using namespace std;int main() double radius, area, circum; cout radius; area = PI * radius * r
5、adius; circum = 2 * PI * radius; cout endl; cout 園的面積為:園的面積為: area endl; cout 園的周長(zhǎng)為:園的周長(zhǎng)為: circum endl; return 0;變量定義變量定義輸入階段輸入階段計(jì)算階段計(jì)算階段輸出階段輸出階段第23頁(yè)/共591頁(yè)第24頁(yè)/共591頁(yè)賦值表達(dá)式賦值表達(dá)式自增自減運(yùn)算符自增自減運(yùn)算符強(qiáng)制類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換數(shù)據(jù)的輸入輸出數(shù)據(jù)的輸入輸出第25頁(yè)/共591頁(yè)第26頁(yè)/共591頁(yè)第27頁(yè)/共591頁(yè)賦值表達(dá)式賦值表達(dá)式自增自減運(yùn)算符自增自減運(yùn)算符強(qiáng)制類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換數(shù)據(jù)的輸入輸出數(shù)據(jù)的輸入輸出第28頁(yè)/
6、共591頁(yè)枚舉類型枚舉類型變量賦初值變量賦初值了解占用的內(nèi)存量了解占用的內(nèi)存量第29頁(yè)/共591頁(yè)程序設(shè)計(jì) - 31第30頁(yè)/共591頁(yè)第31頁(yè)/共591頁(yè)第32頁(yè)/共591頁(yè)第33頁(yè)/共591頁(yè)第34頁(yè)/共591頁(yè)第35頁(yè)/共591頁(yè)程序設(shè)計(jì) - 37unsigned int0232-1unsigned short065535unsigned long0232-1第36頁(yè)/共591頁(yè)第37頁(yè)/共591頁(yè)枚舉類型枚舉類型變量賦初值變量賦初值了解占用的內(nèi)存量了解占用的內(nèi)存量第38頁(yè)/共591頁(yè)第39頁(yè)/共591頁(yè)第40頁(yè)/共591頁(yè)枚舉類型枚舉類型變量賦初值變量賦初值了解占用的內(nèi)存量了解占用的內(nèi)
7、存量第41頁(yè)/共591頁(yè)第42頁(yè)/共591頁(yè)第43頁(yè)/共591頁(yè)第44頁(yè)/共591頁(yè)第45頁(yè)/共591頁(yè)第46頁(yè)/共591頁(yè)第47頁(yè)/共591頁(yè)字符形式字符形式含義含義n換行換行t水平制表水平制表b退一格退一格r回車回車f換頁(yè)換頁(yè)”“ddd1到到3位八進(jìn)制數(shù)代表的字符位八進(jìn)制數(shù)代表的字符xhh1到到2位十六進(jìn)制數(shù)代表的字符位十六進(jìn)制數(shù)代表的字符第48頁(yè)/共591頁(yè)枚舉類型枚舉類型變量賦初值變量賦初值了解占用的內(nèi)存量了解占用的內(nèi)存量第49頁(yè)/共591頁(yè)第50頁(yè)/共591頁(yè)枚舉類型枚舉類型變量賦初值變量賦初值了解占用的內(nèi)存量了解占用的內(nèi)存量第51頁(yè)/共591頁(yè)第52頁(yè)/共591頁(yè)第53頁(yè)/共591
8、頁(yè)第54頁(yè)/共591頁(yè)枚舉類型枚舉類型變量賦初值變量賦初值了解占用的內(nèi)存量了解占用的內(nèi)存量第55頁(yè)/共591頁(yè)定義變量時(shí)沒(méi)有賦初值,然后直接引用該變量是危險(xiǎn)的!定義變量時(shí)沒(méi)有賦初值,然后直接引用該變量是危險(xiǎn)的! 第56頁(yè)/共591頁(yè)枚舉類型枚舉類型變量賦初值變量賦初值了解占用的內(nèi)存量了解占用的內(nèi)存量第57頁(yè)/共591頁(yè)第58頁(yè)/共591頁(yè)賦值表達(dá)式賦值表達(dá)式自增自減運(yùn)算符自增自減運(yùn)算符強(qiáng)制類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換數(shù)據(jù)的輸入輸出數(shù)據(jù)的輸入輸出第59頁(yè)/共591頁(yè)const = ; 如:const double PI = 3.1415926;第60頁(yè)/共591頁(yè)賦值表達(dá)式賦值表達(dá)式自增自減運(yùn)算符自增自
9、減運(yùn)算符強(qiáng)制類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換數(shù)據(jù)的輸入輸出數(shù)據(jù)的輸入輸出第61頁(yè)/共591頁(yè)第62頁(yè)/共591頁(yè)double。nfloat和double運(yùn)算時(shí),將float轉(zhuǎn)換成double。第63頁(yè)/共591頁(yè)第64頁(yè)/共591頁(yè)絕對(duì)值函數(shù)絕對(duì)值函數(shù) int abs(int x) ; double fabs(double x) ex double exp(double x) xy double pow(double x, double y) double sqrt(double x) ln x double log(double x)log10 x double log10(double x)三角函數(shù)三
10、角函數(shù) double sin(double x) double cos(double x) double tan(double x)反三角函數(shù)反三角函數(shù) double asin(double x) double acos(double x) double atan(double x)x第65頁(yè)/共591頁(yè)賦值表達(dá)式賦值表達(dá)式自增自減運(yùn)算符自增自減運(yùn)算符強(qiáng)制類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換數(shù)據(jù)的輸入輸出數(shù)據(jù)的輸入輸出第66頁(yè)/共591頁(yè)第67頁(yè)/共591頁(yè)第68頁(yè)/共591頁(yè)第69頁(yè)/共591頁(yè)a = b = c = 5 給給a, b, c均賦值均賦值5 當(dāng)用到多重賦值時(shí),要保證所有的變量都是同類當(dāng)用到多重
11、賦值時(shí),要保證所有的變量都是同類型的,以避免在自動(dòng)類型轉(zhuǎn)換時(shí)出現(xiàn)與預(yù)期不相型的,以避免在自動(dòng)類型轉(zhuǎn)換時(shí)出現(xiàn)與預(yù)期不相符的結(jié)果的可能性。如變量符的結(jié)果的可能性。如變量d d定義為定義為double,double,變量變量i i定義為定義為intint,語(yǔ)句,語(yǔ)句 d = i = 1.5;d = i = 1.5;的結(jié)果是:的結(jié)果是:i i等于等于1 1,d d等于等于1.01.0 第70頁(yè)/共591頁(yè)第71頁(yè)/共591頁(yè)賦值表達(dá)式賦值表達(dá)式自增自減運(yùn)算符自增自減運(yùn)算符強(qiáng)制類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換數(shù)據(jù)的輸入輸出數(shù)據(jù)的輸入輸出第72頁(yè)/共591頁(yè)j=i+ i=4 j=3 j=+i i=4 j=4 j=i-
12、 i=2 j=3 j=-i i=2 j=2 第73頁(yè)/共591頁(yè)賦值表達(dá)式賦值表達(dá)式自增自減運(yùn)算符自增自減運(yùn)算符強(qiáng)制類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換數(shù)據(jù)的輸入輸出數(shù)據(jù)的輸入輸出第74頁(yè)/共591頁(yè)n答案是:用強(qiáng)制類型轉(zhuǎn)換第75頁(yè)/共591頁(yè)double z;z = (double)x / y; 第76頁(yè)/共591頁(yè)第77頁(yè)/共591頁(yè)賦值表達(dá)式賦值表達(dá)式自增自減運(yùn)算符自增自減運(yùn)算符強(qiáng)制類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換數(shù)據(jù)的輸入輸出數(shù)據(jù)的輸入輸出第78頁(yè)/共591頁(yè)第79頁(yè)/共591頁(yè)第80頁(yè)/共591頁(yè)符。第81頁(yè)/共591頁(yè)如如a,b,c為字符型變量,對(duì)應(yīng)語(yǔ)句為字符型變量,對(duì)應(yīng)語(yǔ)句a = cin.get();b =
13、 cin.get(); c = cin.get();如果輸入如果輸入a b c ,則,則a的值是的值是a,b的值是空格,的值是空格,c的值是的值是b。如果將這個(gè)輸入用于語(yǔ)句:如果將這個(gè)輸入用于語(yǔ)句:cin a b c ,那么變量那么變量a、b、c的內(nèi)容分別為的內(nèi)容分別為a、b、c,因?yàn)榭崭瘢驗(yàn)榭崭癖蛔鳛檩斎胫抵g的分隔符。被作為輸入值之間的分隔符。 第82頁(yè)/共591頁(yè)n上述情況的組合:cout a + b = a+b endl; 第83頁(yè)/共591頁(yè)第84頁(yè)/共591頁(yè)第85頁(yè)/共591頁(yè)eg. x y a b = c d a b = c d 都是合法的關(guān)系表達(dá)式都是合法的關(guān)系表達(dá)式注意:
14、注意:-2 -1 0 -2 -1 6 - 2 (5 + 3) (6 2) 第87頁(yè)/共591頁(yè)第88頁(yè)/共591頁(yè)第89頁(yè)/共591頁(yè)第90頁(yè)/共591頁(yè)eg. (m = a b) & (n = c d) a = 1, b = 2, c = 2, d = 4, m = 1, n = 1. 問(wèn)執(zhí)行后問(wèn)執(zhí)行后m,n的值分別為多少?的值分別為多少? m=0, n=1 第91頁(yè)/共591頁(yè)第92頁(yè)/共591頁(yè) 第93頁(yè)/共591頁(yè)第94頁(yè)/共591頁(yè)第95頁(yè)/共591頁(yè)的if語(yǔ)句配對(duì)。第96頁(yè)/共591頁(yè)if (x 100) if (x 90) 語(yǔ)句1 else if (x=90 A90score=8
15、0 B80score=70 C70score=60 Dscore= 90: cout = 80: cout = 70: cout = 60: cout D; break; default: cout =90 A90score=80 B80score=70 C70score=60 Dscore60 E表達(dá)式表達(dá)式=成績(jī)成績(jī)/10 switch(score / 10) case 10: case 9: cout A; break; case 8: cout B; break; case 7: cout C; break; case 6: cout D; break; default: cout E
16、; 第105頁(yè)/共591頁(yè)生成題目生成題目switch(題目類型題目類型) case 加法:顯示題目,輸入和的值,判斷正確與否加法:顯示題目,輸入和的值,判斷正確與否 case 減法:顯示題目,輸入差的值,判斷正確與否減法:顯示題目,輸入差的值,判斷正確與否 case 乘法:顯示題目,輸入積的值,判斷正確與否乘法:顯示題目,輸入積的值,判斷正確與否 case 除法:顯示題目,輸入商和余數(shù)的值,判斷正確與否除法:顯示題目,輸入商和余數(shù)的值,判斷正確與否要求自動(dòng)出要求自動(dòng)出0 - 90 - 9之間的四則運(yùn)算題,并批改結(jié)果之間的四則運(yùn)算題,并批改結(jié)果第106頁(yè)/共591頁(yè)第107頁(yè)/共591頁(yè)ran
17、d()種子種子1234812348第108頁(yè)/共591頁(yè)第109頁(yè)/共591頁(yè)#include /包含偽隨機(jī)數(shù)生成函數(shù)包含偽隨機(jī)數(shù)生成函數(shù)#include /包含取系統(tǒng)時(shí)間的函數(shù)包含取系統(tǒng)時(shí)間的函數(shù)#include using namespace std;int main() int num1, num2, op, result1, result2; /num1,num2:操作數(shù),操作數(shù),op:運(yùn)算符,運(yùn)算符,result1,result2: 結(jié)果結(jié)果 srand(time(NULL); /隨機(jī)數(shù)種子初始化隨機(jī)數(shù)種子初始化 num1=rand() * 10 / (RAND_MAX + 1);
18、/ 生成運(yùn)算數(shù)生成運(yùn)算數(shù) num2=rand() * 10 / (RAND_MAX + 1); /生成運(yùn)算數(shù)生成運(yùn)算數(shù) op=rand() * 4 / (RAND_MAX + 1); / 生成運(yùn)算符生成運(yùn)算符 0-+, 1- -, 2-*,3- / 自動(dòng)出題程序第110頁(yè)/共591頁(yè)switch (op) case 0: cout num1 + num2 result1; if (num1 + num2 = result1) cout you are rightn; else cout you are wrongn; break; case 1: cout num1 - num2 result
19、1; if (num1 - num2 = result1) cout you are rightn; else cout you are wrongn; break; case 2: cout num1 * num2 result1; if (num1 * num2 = result1) cout you are rightn;else cout you are wrongn; break; 第111頁(yè)/共591頁(yè)case 3: cout num1 / num2 result1; cout result2; if (num1 / num2 = result1) & (num1 % num2 =
20、 result2) cout you are rightn; else cout 0.000001) while (p0.000001) ex += p; ex += p; 計(jì)算新的計(jì)算新的p p; 問(wèn)題:如何計(jì)算p?計(jì)算第i個(gè)p,需要兩個(gè)i次的循環(huán)。第一個(gè)循環(huán)計(jì)算xi,第二個(gè)循環(huán)計(jì)算i!解決方案:從前一項(xiàng)計(jì)算后一項(xiàng)。如果p是第i項(xiàng)的值,則第i+1項(xiàng)的值為 p*x/(i+1) 第126頁(yè)/共591頁(yè)int main()int main()double ex, x, p;/exdouble ex, x, p;/ex存儲(chǔ)存儲(chǔ)e ex x的值,的值,p p保存當(dāng)前項(xiàng)的值保存當(dāng)前項(xiàng)的值 int i;i
21、nt i; cout cout x; cin x; ex=0; p=1; i=0; ex=0; p=1; i=0; while (p 1e-6) while (p 1e-6) ex += p; ex += p; +i; +i; p = p p = p * * x / i; x / i; cout e cout e的的 x x 次方等于次方等于: ex endl; ex endl; return 0;return 0;第127頁(yè)/共591頁(yè)第128頁(yè)/共591頁(yè)第129頁(yè)/共591頁(yè)015223xxx第130頁(yè)/共591頁(yè)程序設(shè)計(jì) - 132) 1()2() 1(*2)2(*1xfxfxfxxf
22、xx第131頁(yè)/共591頁(yè)第132頁(yè)/共591頁(yè)第133頁(yè)/共591頁(yè)第134頁(yè)/共591頁(yè)第135頁(yè)/共591頁(yè)周期第136頁(yè)/共591頁(yè)第137頁(yè)/共591頁(yè)第138頁(yè)/共591頁(yè)第139頁(yè)/共591頁(yè)#include using namespace std;int main() int mellon, apple, orange; /分別表示西瓜數(shù)、蘋果數(shù)和桔子數(shù)分別表示西瓜數(shù)、蘋果數(shù)和桔子數(shù) for (mellon=1; mellon10; +mellon) / 對(duì)每種可能的西瓜數(shù)對(duì)每種可能的西瓜數(shù) for ( apple=1; apple 50 - 5 * mellon; +appl
23、e) /當(dāng)西瓜數(shù)給定后可能的蘋果數(shù)當(dāng)西瓜數(shù)給定后可能的蘋果數(shù) orange = 3*(50-5*mellon-apple); / 剩下的錢全買了桔子剩下的錢全買了桔子 if (mellon+apple+orange = 100) / 三種水果數(shù)之和是否為三種水果數(shù)之和是否為100 cout mellon: mellon ; cout apple: apple ; cout orange: orange endl; return 0; 第140頁(yè)/共591頁(yè)Mellon:1 apple:18 orange:81Mellon:2 apple:11 orange:87Mellon:3 apple:4
24、 orange:93第141頁(yè)/共591頁(yè)第142頁(yè)/共591頁(yè)第143頁(yè)/共591頁(yè)第144頁(yè)/共591頁(yè)main() int a, b, c, d; for (a=1; a=4; +a) for (b=1; b=4; +b) if ( a = b) continue; else for (c=1; c=4; +c) if (c=a|c=b) continue; else d=10 a b - c; if (a=1)+(b=4)+(c=3)=1 &(b=1)+(a=4)+(c=2)+(d=3)=1 &(b=4)+(a=3)=1 &(c=1)+(d=4)+(b=2)+(a=3)=1) cout
25、 a b c d;問(wèn)題:效率差解決方法:一旦找到答案就應(yīng)該結(jié)束第145頁(yè)/共591頁(yè)main() int a, b, c, d; bool flag = false; for (a=1; a=4; +a) for (b=1; b=4; +b) if ( a = b) continue; else for (c=1; c=4; +c) if (c=a|c=b) continue; else d=10 a b - c; if (a=1)+(b=4)+(c=3)=1 &(b=1)+(a=4)+(c=2)+(d=3)=1 &(b=4)+(a=3)=1 &(c=1)+(d=4)+(b=2)+(a=3)=
26、1) cout a b c d; flag = true; break; if (flag) break; if (flag) break;改進(jìn)版1:程序不夠簡(jiǎn)練第146頁(yè)/共591頁(yè)main() int a, b, c, d; bool flag = false; for (a=1; a=4 & !flag; +a) for (b=1; b=4 & !flag; +b) if ( a = b) continue; else for (c=1; c=4 ; +c) if (c=a|c=b) continue; else d=10 a b - c; if (a=1)+(b=4)+(c=3)=1
27、&(b=1)+(a=4)+(c=2)+(d=3)=1 &(b=4)+(a=3)=1 &(c=1)+(d=4)+(b=2)+(a=3)=1) cout a b c d; flag = true; break; 改進(jìn)版2第147頁(yè)/共591頁(yè)第148頁(yè)/共591頁(yè)第149頁(yè)/共591頁(yè)第150頁(yè)/共591頁(yè)n將所有解綜合起來(lái)第151頁(yè)/共591頁(yè)第152頁(yè)/共591頁(yè)第153頁(yè)/共591頁(yè)#includeusing namespace std;#define ONEFEN 1#define TWOFEN 2#define FIVEFEN 5#define ONEJIAO 10int main()
28、int money; int onefen = 0, twofen = 0, fivefen = 0, onejiao = 0; cout money; 第154頁(yè)/共591頁(yè)/不斷嘗試每一種硬幣不斷嘗試每一種硬幣 while (money = ONEJIAO) onejiao+; money -= ONEJIAO; while (money = FIVEFEN) fivefen+; money -= FIVEFEN; while (money = TWOFEN) twofen+; money -= TWOFEN; while (money = ONEFEN) onefen+; money -
29、= ONEFEN;/輸出結(jié)果輸出結(jié)果 cout 1角硬幣數(shù):角硬幣數(shù): onejiao endl; cout 5分硬幣數(shù):分硬幣數(shù): fivefen endl; cout 2分硬幣數(shù):分硬幣數(shù): twofen endl; cout 1分硬幣數(shù):分硬幣數(shù): onefen endl; return 0;第155頁(yè)/共591頁(yè)第156頁(yè)/共591頁(yè)第157頁(yè)/共591頁(yè)n程序只能用順序結(jié)構(gòu)n如果羊群規(guī)模發(fā)生變化,程序就得重寫第158頁(yè)/共591頁(yè)第159頁(yè)/共591頁(yè)第160頁(yè)/共591頁(yè)個(gè)數(shù)決定數(shù)組的大小int a=1,2,3,4,5; 則默認(rèn)數(shù)組大小為5初始化表初始化表第161頁(yè)/共591頁(yè)這一
30、特性,使得數(shù)組的應(yīng)用非常靈活。第162頁(yè)/共591頁(yè)第163頁(yè)/共591頁(yè)隨機(jī)值隨機(jī)值隨機(jī)值隨機(jī)值隨機(jī)值隨機(jī)值3隨機(jī)值隨機(jī)值100 103104 107108 111112 115116 119第164頁(yè)/共591頁(yè)第165頁(yè)/共591頁(yè)int main() int intarray10, idx; for (idx = 0; idx intarrayidx ; cout endl; for ( idx = 0; idx = 9; +idx) cout intarrayidx; 第166頁(yè)/共591頁(yè)int main()double sheep10, max=0; int i, maxNum;
31、 for (i=0; i10; +i) cout “請(qǐng)輸入第請(qǐng)輸入第” i sheepi; for (i=0; imax) max = sheepi; maxNum = i; cout “最重的羊是第最重的羊是第” maxNum “只只” endl; cout “它的重量是它的重量是” max endl; return 0;第167頁(yè)/共591頁(yè)第168頁(yè)/共591頁(yè)第169頁(yè)/共591頁(yè)第170頁(yè)/共591頁(yè)#include #include using namespace std;int main() int count26 = 0, i; char ch; ch = toupper(ci
32、n.get(); while (ch=A & ch =Z) +countch-A; ch = toupper( cin.get(); for (i=0; i 26; +i) cout counti t; return 0;第171頁(yè)/共591頁(yè)第172頁(yè)/共591頁(yè)第173頁(yè)/共591頁(yè)第174頁(yè)/共591頁(yè)int main() int k, x; int array = 2, 3, 1, 7, 5, 8, 9, 0, 4, 6; cout x; for (k = 0; k 10; +k) if (x = arrayk) cout k; break; if (k = 10) cout not
33、found; return 0;第175頁(yè)/共591頁(yè)第176頁(yè)/共591頁(yè)第177頁(yè)/共591頁(yè)0Atlanta1Boston2Chicago3Denver4Detroit5Houston6Los Angeles7Miami8New York9Philadelphia10 San Francisco11 Seattle Seattle 11San Francisco10Philadelphia9New York8Miami7Los Angeles6Houston5Detroit4Denver3Chicago2Boston1Atlanta0Seattle 11San Francisco10Ph
34、iladelphia9New York8Miami7Los Angeles6Houston5Detroit4Denver3Chicago2Boston1Atlanta0第178頁(yè)/共591頁(yè)int main()int lh, rh, mid, x; int array =0,1,2,3,4,5,6,7,8,9; cout x; lh = 0; rh = 9; while ( lh = rh ) mid = ( lh + rh ) / 2; if ( x= arraymid ) cout x 的位置是:的位置是: mid endl; break; if ( x rh) cout 沒(méi)有找到?jīng)]有找到
35、 endl; return 0;第179頁(yè)/共591頁(yè)K次次第180頁(yè)/共591頁(yè)Nlog2N10310071000101,000,000201,000,000,00030第181頁(yè)/共591頁(yè)第182頁(yè)/共591頁(yè) int lh, rh, array; 輸入要排序的元素,存入輸入要排序的元素,存入array; for (lh = 0; lh n; lh+) 在在array的從的從lh到到n 1的元素之間找出最小的放入的元素之間找出最小的放入rh; 交換下標(biāo)交換下標(biāo) lh和和 rh中的值中的值; 輸出排好序的元素輸出排好序的元素;第183頁(yè)/共591頁(yè)314159265358979393975
36、85331594126已正確定位已正確定位9397585341593126已正確定位已正確定位9397585359413126已正確定位已正確定位第184頁(yè)/共591頁(yè)int main( ) int lh, rh, k, tmp; int array = 2, 5, 1, 9, 10, 0, 4, 8, 7, 6; for (lh = 0; lh 10; lh+) rh = lh; for (k = lh; k 10; +k) if ( arrayk arrayrh ) rh = k; tmp = arraylh; arraylh = arrayrh; arrayrh = tmp; for (
37、lh =0; lh10; +lh) cout arraylh ; return 0;第185頁(yè)/共591頁(yè)第186頁(yè)/共591頁(yè)第187頁(yè)/共591頁(yè)For (i=1; in; +i) 從元素0到元素n-i進(jìn)行冒泡,最大的泡放入元素n-i;第188頁(yè)/共591頁(yè)第189頁(yè)/共591頁(yè)第190頁(yè)/共591頁(yè)5730421968待冒泡的元素待冒泡的元素5304217689待冒泡的元素待冒泡的元素3042156789待冒泡的元素待冒泡的元素0321456789待冒泡的元素待冒泡的元素0213456789待冒泡的元素待冒泡的元素0123456789待冒泡的元素待冒泡的元素第191頁(yè)/共591頁(yè)int
38、main() int a = 0, 3, 5, 1, 8, 7, 9, 4, 2, 10, 6; int i, j, tmp, n = 11; bool flag; for (i=1; in; +i) flag = false; for (j=0; jn-i; +j) if (aj+1 aj) tmp = aj; aj = aj+1; aj+1 = tmp; flag = true; if (!flag) break;/* 一趟冒泡中沒(méi)有發(fā)生交換,排序結(jié)束一趟冒泡中沒(méi)有發(fā)生交換,排序結(jié)束*/ cout endl; for (i=0; in; +i) cout ai ; return 0; 第1
39、92頁(yè)/共591頁(yè)第193頁(yè)/共591頁(yè)eg. int a45; 相當(dāng)于定義了相當(dāng)于定義了20 個(gè)變量:個(gè)變量: a00, a01, ., a04,. a30, a31, ., a34 第194頁(yè)/共591頁(yè)col0col1col2col3col4row0row1row2row3a23第195頁(yè)/共591頁(yè)a00a01a04a10a34按行序排列第196頁(yè)/共591頁(yè)121110987654321第197頁(yè)/共591頁(yè)000000054321000000054321第198頁(yè)/共591頁(yè)000500430021第199頁(yè)/共591頁(yè)程序舉例程序舉例-矩陣乘法矩陣乘法 矩陣乘法矩陣乘法 C=A*
40、B ALM,BMN CLN Mkjkbkiajic1*輸入輸入A,B 相乘相乘 輸出輸出C 第200頁(yè)/共591頁(yè)#define MAX_SIZE 10 /矩陣的最大規(guī)模矩陣的最大規(guī)模int main()int aMAX_SIZEMAX_SIZE; int bMAX_SIZEMAX_SIZE int cMAX_SIZEMAX_SIZE; int i, j, k; int NumOfRowA, NumOfColA, NumOfColB; /輸入輸入A,B的大小的大小 cout NumOfRowA NumOfColA NumOfColB; 第201頁(yè)/共591頁(yè)/輸入數(shù)組輸入數(shù)組A cout n輸
41、入數(shù)組輸入數(shù)組A:n; for (i=0; i NumOfRowA; +i) for (j=0; j NumOfColA; +j) cout a i j aij; /輸入數(shù)組輸入數(shù)組B cout n輸入數(shù)組輸入數(shù)組B:n; for (i=0; i NumOfColA; +i) for (j=0; j NumOfColB; +j) cout b i j bij;第202頁(yè)/共591頁(yè)/執(zhí)行執(zhí)行A*B for (i=0; i NumOfRowA; +i) for (j=0; j NumOfColB; +j) cij = 0; for (k=0; kNumOfColA; +k) cij += aik
42、 * bkj; 第203頁(yè)/共591頁(yè)/輸出數(shù)組輸出數(shù)組C cout n輸出數(shù)組輸出數(shù)組C:; for (i=0; i NumOfRowA; +i) cout endl; for (j=0; j NumOfColB; +j) cout cij t; return 0; 第204頁(yè)/共591頁(yè)程序舉例程序舉例-打印打印N N階魔陣階魔陣81635749217241815235714164613202210121921311182529第一個(gè)元素:第一行中間一列第一個(gè)元素:第一行中間一列 下一單元:行下一單元:行-1,列,列+1 如行如行-1,列,列+1有內(nèi)容,則下一單元為有內(nèi)容,則下一單元為“行
43、行+1,列不變,列不變” 第205頁(yè)/共591頁(yè)第206頁(yè)/共591頁(yè)n找下一行 row = ( row + 1 ) % scalen找上一行 row = ( row - 1 + scale ) % scale第207頁(yè)/共591頁(yè)#include using namespace std;#define MAX 15 /最高位最高位15階階int main() int magicMAXMAX = 0; int row, col, count,scale; / 輸入階數(shù)輸入階數(shù)scale cout scale;第208頁(yè)/共591頁(yè) /生成魔陣生成魔陣 row=0; col = (scale -
44、 1) / 2; magicrowcol = 1; for (count = 2; count = scale * scale; count+) if (magic(row - 1 + scale) % scale(col + 1) % scale = 0) row = ( row - 1 + scale ) % scale; col = ( col + 1 ) % scale; else row = ( row + 1 ) % scale; magicrowcol = count; / 輸出輸出 for (row=0; rowscale; row+) for (col=0; colscale
45、; col+) cout magicrowcol t; cout s2 返回值為正數(shù),返回值為正數(shù),s1=s1返回值返回值為為0,s1s2返回值為負(fù)數(shù)返回值為負(fù)數(shù)strncmp(s1, s2, n)如如 strcmp,但至多比較,但至多比較n個(gè)字符個(gè)字符strchr(s, ch)返回一個(gè)指向返回一個(gè)指向s中第一次出現(xiàn)中第一次出現(xiàn)ch的地址的地址strrchr(s, ch)返回一個(gè)指向返回一個(gè)指向s中最后一次出現(xiàn)中最后一次出現(xiàn)ch的地址的地址strstr(s1, s2)返回一個(gè)指向返回一個(gè)指向s1中第一次出現(xiàn)中第一次出現(xiàn)s2的地址的地址第222頁(yè)/共591頁(yè)第223頁(yè)/共591頁(yè)第224頁(yè)/共5
46、91頁(yè)int main() char sentence80, prev = ; /prev 表示當(dāng)前字符的前一字符表示當(dāng)前字符的前一字符 int i, num = 0; gets(sentence); for (i = 0; sentencei != 0; +i) if (prev = & sentencei != ) +num; prev = sentencei; cout 單詞個(gè)數(shù)為:?jiǎn)卧~個(gè)數(shù)為: num b) return(a) else return(b); 函數(shù)體函數(shù)體第230頁(yè)/共591頁(yè)第231頁(yè)/共591頁(yè)函數(shù)舉例函數(shù)舉例無(wú)參數(shù)、無(wú)返回值的函數(shù)無(wú)參數(shù)、無(wú)返回值的函數(shù) * * *
47、 * *void printstar() cout “ *n”; cout “ *n”; cout “ *n”; cout “ *n”; cout “*n”;第232頁(yè)/共591頁(yè)函數(shù)舉例函數(shù)舉例有參數(shù)、無(wú)返回值的函數(shù)有參數(shù)、無(wú)返回值的函數(shù)void printstar(int numOfLine) int i , j; for (i = 1; i = numOfLine; +i) cout endl; for (j = 1; j = numOfLine - i; +j) cout ; for (j = 1; j = 2 * i - 1; +j) cout “*”; 第233頁(yè)/共591頁(yè)函數(shù)舉
48、例函數(shù)舉例第234頁(yè)/共591頁(yè)函數(shù)舉例函數(shù)舉例有參數(shù)、有返回值的函數(shù)有參數(shù)、有返回值的函數(shù) int p(int n) int s=1, i; if (n 0) return(0); for (i = 1; i = n; +i) s *= i; return(s); 第235頁(yè)/共591頁(yè)函數(shù)舉例函數(shù)舉例返回布爾量的函數(shù)返回布爾量的函數(shù)bool IsLeapYear(int year) bool leapyear; leapyear = (year %4 = 0) &(year % 100 != 0) | (year % 400 = 0); return (leapyear);第236頁(yè)/共5
49、91頁(yè)v重載函數(shù)重載函數(shù)v函數(shù)模版函數(shù)模版v變量的作用域變量的作用域v變量的存儲(chǔ)類變量的存儲(chǔ)類別別v遞歸函數(shù)遞歸函數(shù)v基于遞歸的算基于遞歸的算法法第237頁(yè)/共591頁(yè)第238頁(yè)/共591頁(yè)第239頁(yè)/共591頁(yè)#include int max(int a, int b); main() int x, y; cin x y; cout b) return(a); else return(b); 函數(shù)原型說(shuō)明函數(shù)原型說(shuō)明函數(shù)調(diào)用函數(shù)調(diào)用函數(shù)實(shí)現(xiàn)函數(shù)實(shí)現(xiàn)第240頁(yè)/共591頁(yè)#include int max(int a, int b) if (a b) return(a); else return
50、(b); main() int x, y; cin x y; cout x y; cout max(x, y);int p( int n ) int s =1, i; if (n 0) return(0); for (i=1;in2? n1: n2); mainx(2)y(3)m a inx(2)y(3)maxa(2)b(3)n1n2 mainx(2)y(3)maxa(2)b(3)n1n2pn(2)si mainx(2)y(3)maxa(2)b(3)n1(2)n2pn(3)simainx(2)y(3)maxa(2)b(3)n1(2)n2(6)mainx(2)y(3)第245頁(yè)/共591頁(yè)v重載
51、函數(shù)重載函數(shù)v函數(shù)模板函數(shù)模板v變量的作用域變量的作用域v變量的存儲(chǔ)類變量的存儲(chǔ)類別別v遞歸函數(shù)遞歸函數(shù)v基于遞歸的算基于遞歸的算法法第246頁(yè)/共591頁(yè)n第二種方法更加簡(jiǎn)練n返回值是平均成績(jī)第247頁(yè)/共591頁(yè)第248頁(yè)/共591頁(yè)注意:形式參數(shù)是數(shù)組,實(shí)際參數(shù)也是一個(gè)數(shù)組注意:形式參數(shù)是數(shù)組,實(shí)際參數(shù)也是一個(gè)數(shù)組第249頁(yè)/共591頁(yè)nn你會(huì)發(fā)現(xiàn)輸出的值90而不是80。第250頁(yè)/共591頁(yè)第251頁(yè)/共591頁(yè)數(shù)組名和數(shù)組規(guī)模第252頁(yè)/共591頁(yè)v重載函數(shù)重載函數(shù)v函數(shù)模版函數(shù)模版v變量的作用域變量的作用域v變量的存儲(chǔ)類變量的存儲(chǔ)類別別v遞歸函數(shù)遞歸函數(shù)v基于遞歸的算基于遞歸的算法
52、法第253頁(yè)/共591頁(yè)第254頁(yè)/共591頁(yè)special(5,3.2) /x=5; y=3.2 special(6) /x=6; y=1.5 special( ) /x=2; y=1.5第255頁(yè)/共591頁(yè)省值第256頁(yè)/共591頁(yè)第257頁(yè)/共591頁(yè)v重載函數(shù)重載函數(shù)v函數(shù)模版函數(shù)模版v變量的作用域變量的作用域v變量的存儲(chǔ)類變量的存儲(chǔ)類別別v遞歸函數(shù)遞歸函數(shù)v基于遞歸的算基于遞歸的算法法第258頁(yè)/共591頁(yè)第259頁(yè)/共591頁(yè)#includeinline float cube(float s) return s*s*s; int main()float side;cin side
53、;cout cube(side) endls;return 0; 第260頁(yè)/共591頁(yè)第261頁(yè)/共591頁(yè)v重載函數(shù)重載函數(shù)v函數(shù)模版函數(shù)模版v變量的作用域變量的作用域v變量的存儲(chǔ)類變量的存儲(chǔ)類別別v遞歸函數(shù)遞歸函數(shù)v基于遞歸的算基于遞歸的算法法第262頁(yè)/共591頁(yè)第263頁(yè)/共591頁(yè)int max(int a1, int a2, int a3, int a4, int a5); 第264頁(yè)/共591頁(yè)第265頁(yè)/共591頁(yè)v重載函數(shù)重載函數(shù)v函數(shù)模版函數(shù)模版v變量的作用域變量的作用域v變量的存儲(chǔ)類變量的存儲(chǔ)類別別v遞歸函數(shù)遞歸函數(shù)v基于遞歸的算基于遞歸的算法法第266頁(yè)/共591頁(yè)第
54、267頁(yè)/共591頁(yè)第268頁(yè)/共591頁(yè)第269頁(yè)/共591頁(yè)v重載函數(shù)重載函數(shù)v函數(shù)模版函數(shù)模版v變量的作用域變量的作用域v變量的存儲(chǔ)類變量的存儲(chǔ)類別別v遞歸函數(shù)遞歸函數(shù)v基于遞歸的算基于遞歸的算法法第270頁(yè)/共591頁(yè)Int main(void) int a = 2, b = 3; cout a b; int a = 4; cout a b; cout a b;第271頁(yè)/共591頁(yè)第272頁(yè)/共591頁(yè)第273頁(yè)/共591頁(yè)int p = 1, q = 5, r=3;int f1() int p = 3, r = 2; q=p+q+r; cout “f1: p,q,r=“ p q r
55、; int f2() p=p+q+r; cout “f2: p,q,r=“ p q r p q r; int f3() int q; r = 2*r; q=r+p; cout “f3: p,q,r=“ p q r; main()f3(); cout “after f3: p,q,r=” p q r p q r; f1(); cout “after f1: p,q,r=“ p q r; f2(); cout “after f2: p,q,r=” p q r p q r; 結(jié)果:結(jié)果: f3: p,q,r=1 7 6 after f3: p,q,r=1 5 6 f1: p,q,r=3 10 2 a
56、fter f1:p,q,r=1 10 6 f2: p,q,r=17 10 6 after f2: p,q,r=17 10 6 第274頁(yè)/共591頁(yè)第275頁(yè)/共591頁(yè)v重載函數(shù)重載函數(shù)v函數(shù)模版函數(shù)模版v變量的作用域變量的作用域v變量的存儲(chǔ)類變量的存儲(chǔ)類別別v遞歸函數(shù)遞歸函數(shù)v基于遞歸的算基于遞歸的算法法第276頁(yè)/共591頁(yè)n靜態(tài)變量:static第277頁(yè)/共591頁(yè)第278頁(yè)/共591頁(yè)第279頁(yè)/共591頁(yè)第280頁(yè)/共591頁(yè)/file1.cpp#include using namespace std;void f();extern int x; /外部變量的聲明外部變量的聲明i
57、nt main() f(); cout in main(): x= “ x endl; return 0;/file2.cpp#include using namespace std;int x; /全局變量的定義全局變量的定義void f() cout in f(): x= “ x endl; 第281頁(yè)/共591頁(yè)第282頁(yè)/共591頁(yè)塊時(shí)還可以使用此值。eg. int f(int a) int b=0; static int c=3; b=b+1; c=c+1; return(a+b+c); void main() int a=2,i; for (i=0; i3; +i) cout f(
58、a); 運(yùn)行結(jié)果為:運(yùn)行結(jié)果為:7 8 9 第283頁(yè)/共591頁(yè)第284頁(yè)/共591頁(yè)第285頁(yè)/共591頁(yè)void a();void b();void c();void d();main() int x=6; cout “x in main is “ x endl; a(); b(); c(); d(x); x+; a(); b(); c(); d(x); cout “x in main is ” x endl; void a()int x=25; cout “x in a is ” x endl; void b()static int x=50; cout “x in b is ” x+
59、 endl; void c() extern int x; x*=10; cout “x in c is ” x endl; int x=2; void d(int x) cout “x in d is ” +x endl; 結(jié)果:結(jié)果: x in main is 6 x in a is 25 x in b is 50 x in c is 20 x in d is 7 x in a is 25 x in b is 51 x in c 200 x in d is 8 x in main is 7 第286頁(yè)/共591頁(yè)v重載函數(shù)重載函數(shù)v函數(shù)模版函數(shù)模版v變量的作用域變量的作用域v變量的存儲(chǔ)類變
60、量的存儲(chǔ)類別別v遞歸函數(shù)遞歸函數(shù)v基于遞歸的算基于遞歸的算法法第287頁(yè)/共591頁(yè)間接地調(diào)用函數(shù)本身第288頁(yè)/共591頁(yè)第289頁(yè)/共591頁(yè)基本情況基本情況第290頁(yè)/共591頁(yè)n!=1*2*3*4*(n-1)*n(n-1)!遞歸形式:遞歸形式:其他)!1(*01!nnnn遞歸終止條件遞歸終止條件long p(int n) if (n = 0) return 1; else return n * p(n-1); 第291頁(yè)/共591頁(yè)第292頁(yè)/共591頁(yè)Fibonacci函數(shù)函數(shù)00112132435568其他)2() 1(1100)(nFnFnnnFint f(int n)if (n
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 住房屋租賃合同范例
- 2025年度智慧園區(qū)視頻監(jiān)控系統(tǒng)集成合同
- 農(nóng)田機(jī)器維修合同范本
- 業(yè)主物業(yè)合同范本
- 別墅石材裝修合同范本
- 凍庫(kù)合同范本
- 交通疏解合同范本
- 業(yè)務(wù)咨詢合同范本
- epc工程總承包合同范例
- 住房包工合同范本
- 光伏電站生產(chǎn)準(zhǔn)備大綱全套
- 工業(yè)控制安全
- 媽祖重離子醫(yī)院硼中子俘獲治療系統(tǒng)環(huán)境影響報(bào)告
- 海洋工程裝備制造職業(yè)發(fā)展研究報(bào)告
- 供應(yīng)商現(xiàn)場(chǎng)審核評(píng)估表
- 20XX年吉林省事業(yè)單位公開(kāi)招聘人員審核備案表
- 產(chǎn)科危重癥識(shí)別與處理及危重癥管理培訓(xùn)課件
- 韻達(dá)快遞員工勞務(wù)合同范本
- 中能億安煤礦地質(zhì)環(huán)境保護(hù)與土地復(fù)墾方案
- 血液透析水處理系統(tǒng)演示
評(píng)論
0/150
提交評(píng)論