




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
英第5單元C++快樂編程——小學C++創意編程實例(課件)堂課Hi,Pythonlist,tuple,dictionary語先立后破,不立不破
——while循環目錄目錄第17課舒克貝塔獻愛心――while語句第18課我幫老師剪長繩——遞歸調用語句第19課羊羊智斗灰太狼——continue語句第20課小蝸牛與葡萄樹——break語句舒克貝塔獻愛心――while語句第17課
小老鼠舒克和小老鼠貝塔,在皮皮魯的幫助下,創立了舒克貝塔航空公司,它們經常開著飛機和坦克幫助他人,但航空公司的運行也不是一帆風順,強盜總是三番五次來搗亂,機智勇敢的舒克和貝塔最終戰勝了海盜,讓小動物們都過上了快樂平靜的生活。但舒克和貝塔發現,還有不少老弱病殘小動物需要幫助,于是它們打算從今年1月份開始存款,以幫助這些老弱病殘小動物,假如,1月份存入1元錢,2月份存入2元,3月份存入3元錢,……依次類推,編程計算需要經過多少個月,才能讓存入的錢剛好多于300元呢?讀故事理思路通過題目可知,1月份存入1元錢,2月份存入2元,……,如果本題要求兩年共存多少錢,就很易求出。因為,我們知道一年是12個月,兩年就是24個月,即求1+2+3+……+24的和,而本題不知道是多少個月,是要求經過多少個月,才能讓存入的錢剛好多于300元,即求n的值。因此,建議使用while循環,當s<=300時,執行循環體語句。1.理解題意2.問題思考理思路3.思路分析本題的存款數s,月數n都要初始為0,即s=0,n=0,先判斷s是否小于等于300,如果條件成立,執行循環體。理思路查秘籍1.英漢字典while[wa?l]當……時候true[tru:]代表“真,正確的false[f?:ls]代表“假”,錯誤的2.while語句while循環結構有兩種格式,一種是循環體只有一個語句,另一種是循環體由多個語句構成。當循環體有多個語句構成時,應由一對花括號括起來,構成一個語句塊的形式,語法形式如下:查秘籍while語句的執行過程如下所示。如果條件表達式的值為真,即條件成立,就不斷執循環體的語句。否則,將跳出循環,執行循環體后面的語句。求解決1.編寫代碼2.測試程序運行結果:求解決3.程序解讀4.易犯錯誤本程序中,n=0,條件滿足時先執行n++,使n=1,再進行累加s=s+n,結果是正確的。
如果將第5行中的n=0改為n=1,按下列whlie語句執行,輸出n的值是26而不是25,結果是錯誤的,想想為什么?求解決5.拓展應用while語句可以用于循環次數不確定,而只給出循環結束條件的循環。如對于給定的自然數n,求使1+2+3+4+5+……+i>=n成立的最小i值。程序代碼如下:#include<iostream> usingnamespacestd; intmain() { inti=1,n,s=0; cin>>n; while(s<n)//當s小于n時,才執行循環 { s=s+i; i++; } cout<<i-1<<endl;//i多加了1次,還要減去1}閱覽室while語句用來實現“當型”循環結構,其一般形式如下:while(表達式)語句;當表達式的值為真(非0)時,就不斷執行循環體內的語句。2.while語句特點1.while語句結構先判斷表達式,后執行語句。如果條件判斷開始就不成立,則一次循環體也不執行。練武功1.修改程序錯誤1:
錯誤2:
下面這段代碼用于輸出1到100之間的偶數,其中有2處錯誤,快來改正吧!練武功2.閱讀程序寫結果輸出:
練武功3.完善程序編程求5+10+15+……+100的和是多少。練武功4.編寫程序對于任意輸入不大于30000的整數,編程計算各個數位上的數字之和。輸入數據1:3412輸出數據1:10輸入數據2:10輸出數據2:1我幫老師剪長繩――遞歸調用語句第18課
體育課上,王老師拿出一根長度為15米和6米的繩子,王老師想讓你幫他把這2根繩子剪成同樣長的小段用來做跳繩。為了節省繩子,剪的時候不允許有剩余。王老師想到學習編程的你,請你編程計算所剪的每段繩子,最長為幾米。讀故事理思路要把每根繩子剪成同樣長的小段,且在不允許有剩余的情況下,所剪繩子最長。可以轉化為數學中求2個整數的最大公約數問題。1.理解題意2.問題思考理思路3.算法分析假如兩根繩子的長度分別用m和n表示,則采用輾轉相除法求最大公約數,思路如下:第一步:求m除以n的余數r;第二步:當余數r等于0時,則n為最大公約數,輸出n,結束循環;第三步:當余數r不等于0時,將n的值賦給m,r的值賦給n,再求m除以n的余數r。再轉到第2步進行判斷,形成循環判斷。其流程圖如下圖所示。理思路求解決1.編寫代碼2.測試程序求解決3.程序解決最大公約數也稱最大公因數或最大公因子。2個整數中公有的約數,叫做這2個數的公約數;其中最大的一個,叫做這2個數的最大公約數。例如:12、16的公約數有1、2、4,其中最大的一個是4,4就是12與16的最大公約數。求解決4.易犯錯誤在采用輾轉相除法求最大公約數時,當余數r不等于0時,將n的值賦給m,r的值賦給n,再求m除以n的余數r。這時賦值語句不能寫錯,如寫成n=m;r=n;程序結果就完全不一樣了。閱覽室while語句的執行過程如下:(1)首先計算作為循環控制條件表達式的值;(2)若循環控制條件表達式的值為真,則執行一遍循環體,否則離開循環,結束整個while語句的執行。(3)循環體的所有語句執行結束后,則自動轉向第(1)步執行。1.while語句執行過程閱覽室當while語句的循環體由多個語句組成時,則必須將多個語句使用“{}”括起來,組成一個復合語句,如{sum=sum+i;i++;}循環體中應有使循環趨于結束的語句如i++,否則構成死循環。2.while語句中的復合語句練武功1.計算下列各組整數的最大公約數,并上機驗證。練武功2.閱讀程序寫結果(1)輸入:0輸出:
(2)輸入:123輸出:
(3)輸入:1234567890輸出:
練武功3.修改程序
一起來找茬:下面代碼用來計算2個數的最小公倍數。錯誤原因:
練武功4.編寫程序1.五年級一班有35個小朋友,二班有42個小朋友。按班分組,2個班各組的人數一樣多,編程計算每組最多有多少個小朋友。2.將一根長為369cm的鋼管截成長為69cm和39cm兩種規格的短料。在這兩種規格的短料至少各截一根的前提下,如何截才能余料最少?
羊羊智斗灰太狼――
continue語句第19
課
這一天,灰太狼又搶走了羊村的糧食,喜羊羊想奪回糧食,于是混進了灰太狼的城堡里,但不小心被灰太狼給發現了,喜羊羊心想,怎么辦才能既奪回糧食又安全逃脫灰太狼的追趕呢?于是聰明的羊羊準備智斗灰太狼,它準備和灰太狼玩一個報數游戲,通過游戲的勝負決定糧食的歸屬。游戲規則是:羊羊和灰太狼一起從1開始報數,如逢3的倍數或者尾數是3,則不報數,要喊“過”,如果誰報錯了,則誰就輸了,糧食就要歸還給對方。試編一程序,模擬1——20報數游戲。讀故事理思路本題是用循環語句輸出所規定的數,在輸出數前,要判斷每個數是不是3的倍數或者尾數是3,若是,輸出“過”,若不是,就輸出這個數。1.理解題意2.問題思考理思路3.算法分析本例中要判斷一個數是不是3的倍數或者尾數是3,可以使用條件表達式n%3==0或n%10==3即可,流程圖如下。理思路查秘籍1.英漢字典
continue[k?n?t?nju?]繼續;結束本次循環2.continue語句求解決1.編寫代碼2.測試程序
求解決3.程序解讀
本程序中,continuer語句的作用提前結束本次循環,跳過循環體中下面尚未執行的cout<<i語句,進行下一次是否執行循環的判定。作為對比,現將第12行中的continuer語句直接改寫成break語句,查看新程序的運行結果。
break語句直接結束循環,輸出的結果不僅跳過了3,還跳過3之后的所有數字。運行結果:求解決5.程序改進4.易犯錯誤想一想,如果使用for參考代碼循環,則程序結構更清楚,程序代碼如圖所示。要判斷一個數是不是3的倍數或者尾數是3,可以使用條件表達式n%3==0或n%10==3判斷,不能只用n%3==0判斷。另外,n++語句是在cout<<n之前,所以n<=19,而不是n<=20。#include<iostream> usingnamespacestd;intmain() {intn;for(n=1;n<=20;n++){if(n%10==3||n%3==0)//判斷一個數是不是3的倍數或者尾數是3{cout<<"過"<<"";continue; }cout<<n<<"";}return0;}求解決6.拓展應用在使用循環解決很多問題時,有時需要提前結束本次循環,即跳過循環體中尚未執行的語句,接著判定是否執行下一次循環。如輸出1到10之間的奇數,相鄰的2個數用逗號隔開,當遇到偶數時,提前結束本次循環,跳過輸出語句。程序代碼如下:#include<iostream> usingnamespacestd;intmain() {intm,i,k;for(i=10;i>=1;i--){if(i%2==0)continue;//提前結束本次循環,跳過輸出語句cout<<i;if(i==1)continue;cout<<",";}return0;}閱覽室continue語句的作用是結束本次循環,即跳過循環體中下面尚未執行的語句,接著進行下一次是否執行循環的判定。2.continue語句用法1.continue語句功能continue語句只能用在for、while、do-while等循環體中,與if條件語句一起使用,用來加速循環,提高循環的執行效率。練武功1.閱讀程序寫結果輸出:
練武功2.修改程序一起來找茬:下面程序代碼,用來輸出100~200之間的不能被3整除的數。錯誤原因:
練武功3.完善程序使用continue語句,編程輸出100以內所有偶數。練武功4.編寫程序模擬“逢7必過”游戲:循環列出1~20之間的數,判斷每個數是不是“7”的倍數,若是,輸出“過”;若不是,就輸出這個數。小蝸牛與葡萄樹――
break語句第20課
小蝸牛家門前有一棵葡萄樹。春天,葡萄樹發芽了,長出了嫩綠的小葉子。看著這些小葉子,小蝸牛在心里暗暗下了一個決定:今年,葡萄剛發芽我就開始爬。哼!就不信,我還吃不到葡萄!這天,小蝸特意起了個大早,準備開始它的“兩萬五千里長征”。黃鸝見了,趕忙說:“葡萄成熟還早地很哪?你現在爬上來干什么?”小蝸牛沒有理會,繼續往上爬,終于在葡萄成熟時,爬了上去,并吃到了又甜又大的葡萄。已知葡萄樹高為2.4m,假設蝸牛每小時爬0.3米后,要休息一小時,在休息時又要下滑0.1米,編程計算小蝸牛需要多少小時才能爬上去。讀故事理思路蝸牛所用的時間t和向上爬的米數i初始值都為0,每小時向上爬0.3米,可以用i=i+0.3表示,滑下0.1米,可用i=i-0.1表示。1.理解題意2.問題思考理思路3.算法分析用變量t表示蝸牛爬葡萄樹所用的時間,i表示向上爬的米數。理思路查秘籍1.英漢字典
break[bre?k]中斷;停止2.break語句求解決1.編寫代碼2.測試程序
求解決3.程序解讀
當i>=2.4時,表示蝸牛已經爬到葡萄樹枝頭,不需要再滑回了,所以需要使用break語句終止整個循環過程。
4.易犯錯誤在本程序中使用了while(1),條件是1,表示它的值永遠為真,若在循環體中沒有break語句來終止循環,則會形成死循環。一般情況下,編程中盡量避免出現死循環,而且編譯系統不做死循環的檢查。求解決5.拓展應用在循環結構中,可以使用break語句,提前結束循環。如判斷一個整數m是否素數。素數,指在一個大于1的自然數中,除了1和它本身以外,沒法被其他自然數整除的數。算法思想:讓m被2到m-1中的數整除,如果m能被2~m-1之中任何一個整數整除,則提前結束循環,此時i必然小于或等于k;如果m不能被2~k之間的任一整數整除,則在完成最后一次循環后,i還要加1,因此i=k+1,才終止循環。在循環之后判別i的值是否大于或等于k+1,若是,則表明未曾被2~k之間任一整數整除過,因此輸出“是素數”。程序代碼如下:#include<iostream>#include<math.h> usingnamespacestd;intmain() {intm,i,k;cin>>m;k=sqrt(m);for(i=2;i<=k;i++)if(m%i==0)break;//提前結束循環if(i>k+1)cout<<("yes");elsecout<<("no");}閱覽室
while語句執行循環體之前,先判斷循環條件,條件表達式的值必須為真,否則while循環不執行循環體,即循環體可能一次也不執行。而do-while語句,不管循環條件是否成立,循環體都要執行一次,因為循環體是在條件表達式之前執行的。2.break語句1.while與dowhile的區別
break語句通常用在循環語句和開關語句中。當break用于開關語句switch中時,可使程序跳出switch語句,而執行switch以后的語句;如果沒有bre
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 財務政策與公司文化的結合計劃
- 2025-2030中國閃光信標浮標行業市場發展趨勢與前景展望戰略研究報告
- 2025-2030中國長裙行業發展分析及投資前景預測研究報告
- 2025-2030中國鍍飾筆行業市場深度調研及價值評估與投資前景研究報告
- 2025-2030中國銷售支持平臺行業市場發展趨勢與前景展望戰略研究報告
- 2025-2030中國鋁合金桁架行業市場發展趨勢與前景展望戰略研究報告
- 2025-2030中國鐵金屬粉行業市場發展趨勢與前景展望戰略研究報告
- 2025-2030中國鉆井數據管理系統行業市場發展趨勢與前景展望戰略研究報告
- 2025-2030中國鋼封裝活動地板行業市場發展趨勢與前景展望戰略研究報告
- 2025-2030中國金屬鋯行業市場發展趨勢與前景展望戰略研究報告
- 并購重組稅務處理-企業管理
- 四川涼山州人民政府辦公室考調所屬事業單位工作人員2人易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年中國艾草行業市場現狀、發展概況、未來前景分析報告
- 防走失應急預案
- 臨床實驗室管理學學習通超星期末考試答案章節答案2024年
- 中式烹調師理論知識測試題與參考答案
- 低壓電工培訓教案
- 外科護理風險
- 2024年執業助理醫師實踐技能考試體格檢查
- FURUNO 電子海圖 完整題庫
- 2020年全國碩士研究生招生考試《思想政治理論》真題及解析
評論
0/150
提交評論