![《小學(xué)生C++創(chuàng)意編程》第8單元課件 函數(shù)_第1頁](http://file4.renrendoc.com/view10/M00/1E/09/wKhkGWWF36OAZ-SZAAGqGpVaqfc923.jpg)
![《小學(xué)生C++創(chuàng)意編程》第8單元課件 函數(shù)_第2頁](http://file4.renrendoc.com/view10/M00/1E/09/wKhkGWWF36OAZ-SZAAGqGpVaqfc9232.jpg)
![《小學(xué)生C++創(chuàng)意編程》第8單元課件 函數(shù)_第3頁](http://file4.renrendoc.com/view10/M00/1E/09/wKhkGWWF36OAZ-SZAAGqGpVaqfc9233.jpg)
![《小學(xué)生C++創(chuàng)意編程》第8單元課件 函數(shù)_第4頁](http://file4.renrendoc.com/view10/M00/1E/09/wKhkGWWF36OAZ-SZAAGqGpVaqfc9234.jpg)
![《小學(xué)生C++創(chuàng)意編程》第8單元課件 函數(shù)_第5頁](http://file4.renrendoc.com/view10/M00/1E/09/wKhkGWWF36OAZ-SZAAGqGpVaqfc9235.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
英第8單元C++快樂編程——小學(xué)C++創(chuàng)意編程實(shí)例(課件)堂課Hi,Pythonlist,tuple,dictionary語復(fù)雜問題,函數(shù)上陣——函數(shù)目錄目錄第27課老鷹捉小雞游戲――庫(kù)函數(shù)第28課剪刀石頭布游戲——自定義函數(shù)第29課古老漢諾塔游戲——函數(shù)的聲明和調(diào)用老鷹捉小雞游戲――庫(kù)函數(shù)第27課
體育課上,皮皮魯與小伙伴玩老鷹捉小雞的游。皮皮魯?shù)男』锇?,一共?位小朋友,按1至6號(hào)進(jìn)行編號(hào),從中隨機(jī)選擇一位當(dāng)老鷹。皮皮魯準(zhǔn)備編程調(diào)用隨機(jī)函數(shù)rand(),產(chǎn)生一個(gè)機(jī)隨數(shù),隨機(jī)數(shù)是幾,就讓幾號(hào)小朋友來當(dāng)老鷹。讀故事理思路C++函數(shù)有兩種,一種是庫(kù)函數(shù),一種是自己編寫的函數(shù)。常見的庫(kù)函數(shù)有隨機(jī)函數(shù)rand()、時(shí)間函數(shù)time()等。在編程時(shí),這些函數(shù)不需要自己定義和編寫,如果想使用這些庫(kù)函數(shù),必須在文件開頭“包含”有關(guān)頭文件即可,本題中需要添加的頭文件是<stdlib.h>和<time.h>。1.理解題意2.問題思考理思路3.思路分析本題,其思路如下:第一步:使用srand(time(0))函數(shù),獲取當(dāng)前系統(tǒng)時(shí)間,設(shè)置隨機(jī)數(shù)種子;第二步:調(diào)用隨機(jī)函數(shù)rand()產(chǎn)生一個(gè)1~6之間的隨機(jī)數(shù);第三步:輸出隨機(jī)數(shù)n。理思路查秘籍1.英漢字典main[me?n]主要的;重要的
void[v??d]空的;無參數(shù);無返回值;無類型2.庫(kù)函數(shù)的使用在程序設(shè)計(jì)中,常常將一些常用的功能模塊編寫成函數(shù)放在C++庫(kù)中,叫庫(kù)函數(shù)。C++常用庫(kù)中提供了大量的可以調(diào)用的庫(kù)函數(shù),如數(shù)學(xué)運(yùn)算的、文件操作的等,在編寫程序的過程中,可以直接拿來使用。格式如下:求解決1.編寫代碼2.測(cè)試程序運(yùn)行結(jié)果:第1次運(yùn)行產(chǎn)生隨機(jī)數(shù)為:第2次運(yùn)行產(chǎn)生隨機(jī)數(shù)為:第3次運(yùn)行產(chǎn)生隨機(jī)數(shù)為:求解決2.程序解決3.易犯錯(cuò)誤一般情況下,rand()和srand()要一起使用,其中srand()用來初始化隨機(jī)數(shù)種子,rand()用來產(chǎn)生隨機(jī)數(shù)。time()函數(shù)用來獲取系統(tǒng)時(shí)間,因?yàn)槊看芜\(yùn)行程序的時(shí)間是不相同的,所以產(chǎn)生的隨機(jī)數(shù)也是不一樣的。一般情況下,rand()和srand()要一起使用,其中srand()用來初始化隨機(jī)數(shù)種子,rand()用來產(chǎn)生隨機(jī)數(shù)。time()函數(shù)用來獲取系統(tǒng)時(shí)間,因?yàn)槊看芜\(yùn)行程序的時(shí)間是不相同的,所以產(chǎn)生的隨機(jī)數(shù)也是不一樣的。求解決4.拓展應(yīng)用默認(rèn)情況下隨機(jī)數(shù)種子為1,而相同的隨機(jī)數(shù)種子產(chǎn)生的隨機(jī)數(shù)是一樣的,失去了隨機(jī)性的意義,所以為使每次得到的隨機(jī)數(shù)不一樣,用函數(shù)srand()初始化隨機(jī)數(shù)種子。srand()的參數(shù)是time函數(shù)的值(即當(dāng)前時(shí)間),因?yàn)閮纱握{(diào)用rand()函數(shù)的時(shí)間通常是不同的,這樣就可以保證隨機(jī)性了。如產(chǎn)生10個(gè)1~100之間的隨機(jī)數(shù)可以這樣寫:#include<iostream>#include<cstdlib>//調(diào)用rand()和srand()函數(shù)
#include<ctime>//調(diào)用time()函數(shù)
usingnamespacestd;intmain(){inti,n;srand(time(0));for(i=0;i<10;i++){ n=rand()%100+1;cout<<n<<endl; }}閱覽室每個(gè)C程序都至少有一個(gè)函數(shù),即主函數(shù)main()。每個(gè)程序可以包含若干個(gè)其他函數(shù),但有且只有一個(gè)main函數(shù)。程序總是從main函數(shù)開始執(zhí)行,在程序執(zhí)行時(shí)main函數(shù)可以調(diào)用其他函數(shù),其他函數(shù)也可以互相調(diào)用,但其他函數(shù)不能調(diào)用main函數(shù)。1.主函數(shù)閱覽室2.常用數(shù)學(xué)函數(shù)
編寫程序時(shí),如果需要解決一些數(shù)學(xué)問題,此時(shí)千萬不要著急先去寫代碼,C++庫(kù)中提供了很多數(shù)學(xué)函數(shù),隨時(shí)可以調(diào)用,這些庫(kù)函數(shù)多包含中<cmath>庫(kù)中。練武功1.閱讀程序?qū)懡Y(jié)果輸入:5輸入:-8輸出:
輸出:
練武功2.修改程序錯(cuò)誤1:
錯(cuò)誤2:
下面這段代碼是求一個(gè)實(shí)數(shù)的平方根,其中有2處錯(cuò)誤,快來改正吧!
練武功3.完善程序傳說古代的敘拉古國(guó)王海倫二世發(fā)現(xiàn)一個(gè)公式,利用三角形的三條邊長(zhǎng)可以用來求取三角形面積。已知△ABC中的三邊長(zhǎng)分別為a,b,c,求△ABC的面積(提示:海倫公式如下,其中p=(a+b+c)/2)。練武功4.編寫程序
班級(jí)聯(lián)歡會(huì)上要舉行抽獎(jiǎng)活動(dòng),全班50名同學(xué)每人都拿到了1個(gè)抽獎(jiǎng)號(hào),試編寫程序?qū)崿F(xiàn)隨機(jī)抽獎(jiǎng)活動(dòng),每次抽出5位幸運(yùn)同學(xué)。剪刀石頭布游戲――自定義函數(shù)第28課
剪刀石頭布,是一種非常簡(jiǎn)單而有趣的小游戲,游戲規(guī)則很簡(jiǎn)單,通過剪刀,石頭,布三種手勢(shì)判斷勝負(fù),即剪刀勝布,布勝石頭,石頭勝剪刀?,F(xiàn)在,需要你編寫一個(gè)程序,判斷人與電腦進(jìn)行剪刀石頭布游戲的結(jié)果。讀故事理思路這是一個(gè)猜拳游戲(剪刀勝布,布勝石頭,石頭勝剪刀),人與電腦對(duì)決。人出的拳由自己決定,電腦則隨機(jī)出拳,最后判斷勝負(fù)。
1.理解題意2.問題思考理思路3.算法分析本題可通過自定義不同的函數(shù)來實(shí)現(xiàn)特定的功能,思路如下:第一步:定義一個(gè)玩家出拳函數(shù)voidplayer(inta);第二步:定義電腦出拳函數(shù)intcomputer();第三步:定義判斷輸贏函數(shù)voidpd(intx,intn)。理思路查秘籍1.函數(shù)的定義當(dāng)C++提供給我們的標(biāo)準(zhǔn)函數(shù)不能滿足需要時(shí),沒關(guān)系,我們也可以自己編寫函數(shù)的。在C++語言中,函數(shù)是由函數(shù)頭和函數(shù)體組成,每個(gè)組成部分都有著不同的作用。函數(shù)定義的一般格式如下:查秘籍2.函數(shù)定義的說明(1)返回值類型函數(shù)的數(shù)據(jù)類型是函數(shù)的返回值類型,可能是int、double、char等,若數(shù)據(jù)類型為void,則無返回值。(2)函數(shù)名函數(shù)名是函數(shù)的實(shí)際名稱。一個(gè)程序中除了主函數(shù)必須為main外,其余函數(shù)的名稱按照變量的取名規(guī)則命名,最好取有助于記憶的名字。(3)形式參數(shù)形式參數(shù)(簡(jiǎn)稱形參)表可以是空的(即無參函數(shù));也可以有多個(gè)形參,形參間用逗號(hào)隔開,不管有無參數(shù),函數(shù)名后的圓括號(hào)都必須有。(4)函數(shù)主體函數(shù)主體包含一組定義函數(shù)執(zhí)行任務(wù)的語句。函數(shù)體內(nèi)的語句決定該函數(shù)功能。函數(shù)體實(shí)際上是一個(gè)復(fù)合語句,它可以沒有任何類型說明,而只有語句,也可以兩者都沒有,即空函數(shù)。求解決1.編寫代碼求解決2.測(cè)試程序
求解決3.程序解決4.易犯錯(cuò)誤首先,我們需要定義3個(gè)函數(shù)來完成玩家出拳(player)、電腦出拳頭(computer)和比較判斷(pd)結(jié)果。然后給出文字提示,讓玩家輸入對(duì)應(yīng)的數(shù)字代表玩家出拳。玩家出拳結(jié)束,電腦開始出拳,電腦通過產(chǎn)生隨機(jī)數(shù)來出拳。剪刀石頭布游戲規(guī)則很簡(jiǎn)單,即剪刀勝布,布勝石頭,石頭勝剪刀。如果x代表人出拳,n代表電腦出拳,1代表剪刀,2代表石頭,3代表布,則通過以下邏輯表達(dá)式,判斷人和電腦對(duì)決輸贏的結(jié)果。求解決5.程序改進(jìn)想一想,為了避免玩一次游戲就退出程序,可以將主程序代碼放在循環(huán)中,while(1)條件一直成立,這樣可以一直不斷在玩,添加如下所示代碼。intmain(){while(1){cout<<"剪刀石頭布開始\n"<<endl;cout<<"請(qǐng)選擇:1.剪刀2.石頭3.布"<<endl;cin>>x;player(x);n=computer();pd(x,n);}}6.拓展應(yīng)用在本程序末尾還可以添加用于統(tǒng)計(jì)整個(gè)戰(zhàn)況的代碼,如cout<<"戰(zhàn)況:贏:"<<y<<"次輸:"<<s<<"次平:"<<p<<"次"<<endl。閱覽室一個(gè)C++程序可由一個(gè)主函數(shù)和若干個(gè)其他函數(shù)構(gòu)成。一個(gè)較大的程序可分為若干個(gè)程序模塊,每一個(gè)模塊用來實(shí)現(xiàn)一個(gè)特定的功能。在C++語言中用子程序?qū)崿F(xiàn)模塊的功能。子程序由函數(shù)來完成。1.主函數(shù)與其他函數(shù)閱覽室2.形式參數(shù)與實(shí)際參數(shù)
函數(shù)的參數(shù)分為形式參數(shù)和實(shí)際參數(shù)。在定義函數(shù)時(shí),函數(shù)名后面圓括號(hào)中的變量名稱為形式參數(shù),簡(jiǎn)稱“形參”。調(diào)用函數(shù)時(shí)函數(shù)名后面圓括號(hào)中的參數(shù)稱為實(shí)際參數(shù),也叫實(shí)參。調(diào)用函數(shù)將實(shí)際參數(shù)傳遞給形式參數(shù),然后執(zhí)行函數(shù)體。練武功1.閱讀程序?qū)懡Y(jié)果練武功2.修改程序下面這段代碼是定義一個(gè)輸出“*”的函數(shù),利用它輸出三角形的“*”號(hào)圖,其中,輸出的行數(shù)在程序運(yùn)行時(shí)輸入。其中有2處錯(cuò)誤,快來改正吧!錯(cuò)誤1:
錯(cuò)誤2:
練武功3.完善程序練武功4.編寫程序
已知1個(gè)六邊形,其六邊形的面積是4個(gè)三角形面積之和,已知4個(gè)三角形各邊的長(zhǎng)度,求六邊形的面積。請(qǐng)利用函數(shù)編程求解此題(提示:六邊形的面積等于四個(gè)三角形的面積)。古老漢諾塔游戲――函數(shù)聲明和調(diào)用第29課
有一個(gè)的古老傳說:在印度北部的一個(gè)圣廟里,大梵天創(chuàng)造世界的時(shí)候做了3根金剛石柱子A、B、C。其中,在A柱子上穿好了由小到大,且編號(hào)為1到n的黃金圓盤,這就是所謂的漢諾塔。有一位僧侶,不論白天黑夜要將所有的圓盤從A柱子移到C柱子,但他同時(shí)要遵守以下規(guī)則:(1)一次只能移動(dòng)1個(gè)圓盤,它必須位于某個(gè)柱子的頂部;(2)圓盤只能在三個(gè)柱子上存放。(3)大圓盤不能放在小圓盤上面。試編程輸出每一步移動(dòng)的方法。并估算下,要將A柱上的64個(gè)圓盤,按規(guī)則要求全部移動(dòng)到C柱上,需要多長(zhǎng)時(shí)間。讀故事理思路
游戲最簡(jiǎn)單的情況是當(dāng)只有1個(gè)圓盤時(shí),只要將圓盤從A柱移到C柱上就可以了。如果有2個(gè)圓盤,則需要通過3個(gè)步驟解決這個(gè)游戲:①將1號(hào)圓盤從A柱移到B柱上;②將2號(hào)圓盤從A柱移到C柱上。③再將1號(hào)圓盤從B柱移C到柱上。以此類推,雖然游戲的目的是將圓盤從A柱移到C柱上,但是有必要使用B柱作為圓盤的臨時(shí)安放位置。可以定義函數(shù)hanoi(n,a,b,c),通過遞歸解決該問題。1.理解題意2.問題思考理思路3.算法分析本題要求用最少的移動(dòng)次數(shù),把1到n號(hào)圓盤從A柱經(jīng)過B柱移動(dòng)到C柱。根據(jù)分析,需要經(jīng)過以下幾步:第一步:用最少移動(dòng)次數(shù)把1到n-1號(hào)圓盤從A柱經(jīng)過C柱移動(dòng)到B柱;第二步:把n號(hào)圓盤直接從A柱移動(dòng)到C柱;第三步:用最少移動(dòng)次數(shù)把1到n-1號(hào)圓盤從B柱經(jīng)過A柱移動(dòng)到C柱。觀察發(fā)現(xiàn),第1步和第3步與原問題的本質(zhì)是一樣的,只是圓盤數(shù)量在減少,源柱、中間柱和目標(biāo)柱的狀態(tài)發(fā)生了變化。至此,遞歸關(guān)系比較明顯,遞歸終止條件就是當(dāng)n=1時(shí),直接從A柱移動(dòng)到C柱即可。理思路查秘籍1.函數(shù)的聲明與調(diào)用編寫程序時(shí),若想調(diào)用函數(shù),必須先告訴計(jì)算機(jī),也就是要先聲明函數(shù)。只有聲明了函數(shù)之后,才可以按規(guī)定格式調(diào)用函數(shù)。具體格式如下:如果在所有函數(shù)定義之前聲明了函數(shù),那么該函數(shù)在本程序文件中任何地方都有效。如果是在某個(gè)主調(diào)函數(shù)內(nèi)部聲明了被調(diào)用函數(shù),那么該函數(shù)就只能在這個(gè)函數(shù)內(nèi)部有效。函數(shù)聲明與函數(shù)定義時(shí)的第一行類似,只多了1個(gè)“;”號(hào)。查秘籍2.函數(shù)的返回值在組成函數(shù)體的各類語句中,在程序的最后要加一個(gè)返回語句return。它的一般形式是:return(表達(dá)式);其功能是把程序流程從被調(diào)函數(shù)轉(zhuǎn)向主調(diào)函數(shù)并把表達(dá)式的值帶回主調(diào)函數(shù),實(shí)現(xiàn)函數(shù)的返回。當(dāng)一個(gè)函數(shù)類型定義為void,或沒有返回值時(shí),函數(shù)中可以沒有return語句;函數(shù)類型定義為int,必須有返回值。求解決1.編寫代碼2.測(cè)試程序輸入:1運(yùn)行結(jié)果:
輸入:2運(yùn)行結(jié)果:
輸入:3運(yùn)行結(jié)果:
求解決3.程序解決4.易犯錯(cuò)誤如果要把64個(gè)圓盤,由一根柱上移到另一根柱上,并且始終保持上小下大的順序。這需要多少次移動(dòng)呢?通過遞歸的方法,假設(shè)有n片,移動(dòng)次數(shù)是f(n),顯然f(1)=1,f(2)=3,f(3)=7,且f(k+1)=2*f(k)+1,且不難證明f(n)=2n-1。n=64時(shí),f(n)=18446744073709551615。這個(gè)數(shù)字非常龐大,如每秒鐘一次,共需多長(zhǎng)時(shí)間呢?假如一個(gè)平年365天,才有60秒×60分×24小時(shí)×365=31536000秒,因此,移完這些圓盤需要5845.54億年以上,而地球存在至今不過45億年。因此,眾僧們即便是耗盡畢生精力也不可能完成64個(gè)圓盤的移動(dòng)。函數(shù)定義與函數(shù)聲明是不同的,定義是寫出函數(shù)的完整形式,而聲明是告訴系統(tǒng)此函數(shù)的返回值類型、參數(shù)的個(gè)數(shù)與類型,便于編譯時(shí)進(jìn)行有效的類型檢查。函數(shù)聲明與函數(shù)定義時(shí)的第一行類似,只多了1個(gè)“;”號(hào)。在函數(shù)定義時(shí),函數(shù)名后沒有分號(hào)。求解決5.程序改進(jìn)在C語言中,除了主函數(shù)外,對(duì)于用戶定義的函數(shù)要遵循“先定義,后使用”的規(guī)則。若把函數(shù)的定義放在調(diào)用之后,應(yīng)該在調(diào)用之前對(duì)函數(shù)進(jìn)行聲明(或稱為函數(shù)說明)。但若被調(diào)函數(shù)的定義出現(xiàn)在主調(diào)函數(shù)之前,也可以不進(jìn)行函數(shù)聲明。程序代碼如下所示。求解決6.拓展應(yīng)用在印度還有一個(gè)傳說,國(guó)王打算獎(jiǎng)賞國(guó)際象棋的發(fā)明人——宰相西達(dá)依爾。就問他想要什么,他對(duì)國(guó)王說:“陛下,請(qǐng)您在這張棋盤的第1個(gè)小格里賞給我一粒麥子,在第2個(gè)小格里給2粒,第3個(gè)小格給4粒,以后每一小格都比前一小格加一倍。請(qǐng)您把這樣擺滿棋盤上所有64格的麥粒,都賞給您的仆人吧!”國(guó)王覺得這個(gè)要求太容易滿足了,就命令給他這
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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年頭孢他啶項(xiàng)目可行性研究報(bào)告
- 農(nóng)網(wǎng)配電營(yíng)業(yè)工習(xí)題(附答案)
- 管理學(xué)原理復(fù)習(xí)題(附答案)
- 2025年新高考藝術(shù)生數(shù)學(xué)突破講義 專題24 立體幾何基礎(chǔ)提分小題
- 贛州師范高等??茖W(xué)?!冻踔薪處煿ぷ鲗?shí)務(wù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 四川國(guó)際標(biāo)榜職業(yè)學(xué)院《房屋建筑學(xué)課程設(shè)討》2023-2024學(xué)年第二學(xué)期期末試卷
- 現(xiàn)代制作藝術(shù)中的科技美學(xué)探討
- 農(nóng)村養(yǎng)殖申請(qǐng)書范文
- 南開大學(xué)《廣告學(xué)概論》2023-2024學(xué)年第二學(xué)期期末試卷
- 吉安職業(yè)技術(shù)學(xué)院《軟件工程和軟件測(cè)試基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- LED大屏技術(shù)方案(適用于簡(jiǎn)單的項(xiàng)目)
- 城市自來水廠課程設(shè)計(jì)
- 重慶市2024年小升初語文模擬考試試卷(含答案)
- 2024智慧城市數(shù)據(jù)采集標(biāo)準(zhǔn)規(guī)范
- Lesson 6 What colour is it(教學(xué)設(shè)計(jì))-2023-2024學(xué)年接力版英語三年級(jí)下冊(cè)
- 歷年國(guó)家二級(jí)(Python)機(jī)試真題匯編(含答案)
- 第五單元任務(wù)二《準(zhǔn)備與排練》教學(xué)設(shè)計(jì) 統(tǒng)編版語文九年級(jí)下冊(cè)
- 虧損企業(yè)減虧專項(xiàng)治理方案
- 《垃圾發(fā)電廠爐渣處理技術(shù)規(guī)范》
- 設(shè)計(jì)質(zhì)量、進(jìn)度、服務(wù)保證措施
- 2024北京海淀高三一模英語試卷(含參考答案)
評(píng)論
0/150
提交評(píng)論