C語言項目化教程(基于智能制造軟件)教案 項目4 車輛電池數據監(jiān)測(循環(huán)結構)_第1頁
C語言項目化教程(基于智能制造軟件)教案 項目4 車輛電池數據監(jiān)測(循環(huán)結構)_第2頁
C語言項目化教程(基于智能制造軟件)教案 項目4 車輛電池數據監(jiān)測(循環(huán)結構)_第3頁
C語言項目化教程(基于智能制造軟件)教案 項目4 車輛電池數據監(jiān)測(循環(huán)結構)_第4頁
C語言項目化教程(基于智能制造軟件)教案 項目4 車輛電池數據監(jiān)測(循環(huán)結構)_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

PAGE課題項目四車輛電池數據監(jiān)測(循環(huán)結構)課型講練授課班級授課時數2教學目標1.掌握循環(huán)語句的知識體系,能運用循環(huán)語句解決實際問題。2.運用for循環(huán)語句解決實際問題教學重點for語句的具體應用。軟件開發(fā)方法的運用。教學難點使用for語句對具體問題的算法描述。運用關系運算符和邏輯運算符描述循環(huán)條件學情分析學生基礎差異較大,個別學生分支結構掌握的還不熟練,因而重點是語法知識的理解掌握(如選擇條件的描述,循環(huán)條件的描述及其作用,for語句的運用),接受能力較快的學生,重點加強學生算法的訓練,培養(yǎng)良好的編程習慣及編程規(guī)范。教學效果教后記項目四車輛電池數據監(jiān)測(循環(huán)結構)[學習目標]知識目標理解for循環(huán)、while循環(huán)、dowhile循環(huán)語句。熟悉嵌套的循環(huán)。熟悉break語句的使用。能力目標能準確運用C語言循環(huán)的三種格式。能基本利用C語言流程控制語句設計循環(huán)結構程序。能熟練運用循環(huán)嵌套編寫程序。能準確運用循環(huán)語句編寫簡單程序。情景設置車載設備采集車輛運行數據并且持續(xù)發(fā)出,接收端能夠正確及時接收并加以處理,由于數據源源不斷發(fā)送,因此接收端采用循環(huán)結構處理。任務4.1車輛電池充電狀態(tài)顯示(for循環(huán))4.1.1任務目標某電池需要充電,當電池充電時間少于8小時時,顯示充電多少小時,繼續(xù)充,當8小時顯示充滿,請停止充電。任務目標運行截圖如圖4-1-1所示:圖4-SEQ圖4-\*ARABIC1-1任務目標運行截圖4.1.2知識儲備我們將反復執(zhí)行相同的操作稱之為循環(huán)。在C語言中有三種循環(huán),for循環(huán),do-while循環(huán),while循環(huán)。for循環(huán)循環(huán)一般由循環(huán)語句和判斷條件組成,一般我們在表達式1處放置初值,表達2處放置判斷語句,表達3處放置步長增量,循環(huán)體當由兩條及以上的語句組成是必須加{}。當循環(huán)明確范圍或者運行次數時,一般采用for循環(huán)。其具體的格式如下:for(表達式1;表達式2;表達式3)語句(循環(huán)體)for循環(huán)的流程圖如圖4-2所示,(a)是流程圖方式,(b)是N-S方式。圖4-1-2for循環(huán)流程圖注意:“表達式1”一般是是一個賦值表達式,它用來給循環(huán)控制變量賦初值;“表達式2”一般是一個關系表達式或邏輯表達式,它決定什么時候退出循環(huán);“表達式3”一般是個算術表達式,定義循環(huán)控制變量每循環(huán)一次后按什么方式變化。這三個部分之間用“;”間隔。2.示例輸出下列語句我是最棒的!我是最棒的!我是最棒的!我是最棒的!#include<stdio.h>voidmain(){inti;for(i=1;i<=4;i++)printf("我是最棒的\n");}4.1.3典型案例典型案例1:顯示某車輛白天12小時電池狀態(tài),程序運行截圖如圖4-1-3所示圖4-1-SEQ圖4-\*ARABIC3典型案例1運行截圖分析過程:首先看看是否有內容相同,發(fā)現有相同的地方第*小時,正常執(zhí)行12遍,剛好數字范圍為112循環(huán)體:第*小時,正常-初值count=1判斷條件count<=12步長增量count++算法分析:定義變量i根據上述分析可得循環(huán)四要素的位置循環(huán)次數為12次,可以確定初值,判斷條件,步長增量0<=12++循環(huán)體為第***小時,正常典型案例1流程圖如圖4-1-4所示:圖4-1-SEQ圖4-\*ARABIC4典型案例1流程圖程序代碼:#include"stdio.h"voidmain(){inti;for(i=1;i<=12;i++)printf("第%d小時,正常\n",i);}典型案例2:某集團對于駕駛員的工資是根據是否出現交通事故而定,如果不出事故,駕駛員下一月的工資會加50元,一個駕駛員去年12個月的基本工資為3000元,那么這一年都開車都沒有出事故,則這名駕駛員第12月的工資為多少?(變量:工資:salary,12月份工資)分析過程初值salary=3000;一月份salary1=salary+50;二月份salary2=salary1+50;三月份salary3=salary2+50;四月份salary4=salary3+50;十二月份salary12=salary11+50;查找循環(huán)四要素,得出循環(huán)體:salary=salary+50范圍1—12初值salary1=3000,month=1判斷條件month<=12步長增量month++算法分析:1.定義變量2.根據for循環(huán)格式圖4-1-SEQ圖4-\*ARABIC5典型案例2流程圖for(初值;判斷條件;步長增量){循環(huán)體}3.輸出第12月份工資典型案例2流程圖如圖4-1-5所示:程序代碼:#include"stdio.h"voidmain(){intsalary=3000;intmonth;for(month=1;month<=12;month++){ salary=salary+50;}printf("這名駕駛員12月份的工資為:%d",salary);}運行典型案例運行截圖如圖4-1-6所示:圖4-1-SEQ圖4-\*ARABIC6典型案例2運行截圖典型案例3:某集團對于駕駛員的工資是根據是否出現交通事故而定,如果不出事故,駕駛員下一月的工資會增加上月工資的10%,一個駕駛員1月份的工資為3000元,這一年都開車都沒有出事故,則這名駕駛員第12月的工資為多少,本年一共領取了多少工資?(變量:基本工資salary,12月份工資,總工資sum_salary)分析過程初值salary=3000;sum=0;1月份salary=salary+salary*0.1;sum1=sum+salary;2月份salary2=salary1+salary*0.1;sum2=sum1+salary2;……12月份salary12=salary11+salary*0.1;sum12=sum11+salary12;查找循環(huán)四要素:初值month=1判斷條件month<=12步長增量month++循環(huán)體salary=salary+salary*0.1sum=sum+salary算法分析:1.定義變量月份,工資,工資總額2.循環(huán)四要素考慮for(初值;判斷條件;步長增量){循環(huán)體;}輸出第12月份工資和一年的總工資流程圖:典型案例3流程圖如圖4-1-7所示:圖4-1-SEQ圖4-\*ARABIC7典型案例3流程圖任務代碼:#include"stdio.h"voidmain(){intmonth;intsalary=3000;intsum_salary=0;for(month=1;month<=12;month++){ salary=salary+(salary*0.1); sum_salary=sum_salary+salary;}printf("該名駕駛員12月份的工資為:%d\n",salary);printf("該駕駛員一共領取的工資為:%d",sum_salary);}典型案例運行截圖如圖4-8所示:圖4-1-SEQ圖4-\*ARABIC8典型案例3運行截圖4.1.4任務分析與實踐分析過程:1.循環(huán)7次確定初值、判斷條件、步長增量2.循環(huán)體:充電%d小時,繼續(xù)充3.充滿,請停止充電有條件的顯示一次任務目標流程圖如圖4-1-9所示:圖4-1-SEQ圖4-\*ARABIC9任務目標流程圖程序代碼:#include"stdio.h"voidmain(){inti;for(i=1;i<=7;i++)printf("充電%d小時,繼續(xù)充\n",i);if(i==8)printf("充滿,請停止充電");}4.1.5動手練習1.將“關注自己一言一行創(chuàng)建你我美好校園”顯示10遍。2.用循環(huán)求1+2+3+…+100的和。課題任務4.2固定時間內車輛電池狀態(tài)實時監(jiān)測(while循環(huán))課型講練授課班級授課時數2教學目標1.掌握循環(huán)語句的知識體系,能運用循環(huán)語句解決實際問題。2.運用while循環(huán)語句解決實際問題教學重點While語句的具體應用。軟件開發(fā)方法的運用。教學難點使用while語句對具體問題的算法描述。運用關系運算符和邏輯運算符描述循環(huán)條件學情分析學生基礎差異較大,個別學生分支結構掌握的還不熟練,因而重點是語法知識的理解掌握(如選擇條件的描述,循環(huán)條件的描述及其作用,while語句的運用),接受能力較快的學生,重點加強學生算法的訓練,培養(yǎng)良好的編程習慣及編程規(guī)范。教學效果教后記任務4.2固定時間內車輛電池狀態(tài)實時監(jiān)測(while循環(huán))4.2.1任務目標某電池需要充電,當電池充電時間少于等于8小時時,顯示充電多少小時,繼續(xù)充,當8小時顯示充滿,請停止充電。運行截圖如圖4-2-1所示。圖4-2-1任務目標運行截圖4.2.2知識儲備While循環(huán)需要的循環(huán)四要素和for循環(huán)一致,一般不是很明確范圍,但是明確停止條件時我們采用while循環(huán)。1.while語句格式:while(表達式){語句組}while語句的流程圖如圖4-2-2所示,其中(1)是流程圖,(2)是N-S圖。圖4-2-2SEQ圖4-\*ARABICwhile循環(huán)流程圖2.使用說明在明確四要素的情況下,根據下面的位置放置循環(huán)變量初始化While(判斷表達式){循環(huán)語句;變量增值;}3.While語句特點和說明特點:先判斷表達式,后執(zhí)行循環(huán)體說明:循環(huán)體有可能一次也不執(zhí)行循環(huán)體可為任意類型語句下列情況,退出while循環(huán)(1)條件表達式不成立(為零)(2)循環(huán)體內遇break,return,goto4.無限循環(huán)格式無限循環(huán)就是可以一直循環(huán),有時我們也稱死循環(huán),在底層運用比較多,我們一般把條件直接寫成1。格式如下。while(1){循環(huán)體;}5.Whiile循環(huán)示例,愿我們的友誼地久天長顯示10遍#include<stdio.h>voidmain(){inti=1;while(i<=10){printf("愿我們的友誼地久天長\n");i++;}}4.2.3典型案例典型案例1:用while循環(huán)顯示車輛一天24小時電池狀態(tài),運行截圖如圖4-2-3所示。圖4-2-3典型案例1運行截圖分析過程:1.首先看看是否有內容相同,發(fā)現有相同的地方第*小時,正常執(zhí)行24遍,剛好數字范圍為1242.得出循環(huán)四要素循環(huán)體:第*小時,正常-初值count=1判斷條件count<=24步長增量count++算法分析:1.定義變量count2.根據上述分析可得循環(huán)四要素的位置count=1while(count<=24){輸出第*小時,正常count++}典型案例1流程圖如圖4-2-4所示圖4-2-4典型案例1流程圖程序代碼:#include"stdio.h"voidmain(){inti=0;while(i<24){ i++; printf("第%d小時,正常\n",i);}}典型案例2:某集團對于駕駛員的工資是根據是否出現交通事故而定,如果不出事故,駕駛員下一月的工資會加50元,一個駕駛員去年12月份的工資為3000元,這一年都開車都沒有出事故,則這名駕駛員第12月的工資為多少,本年一共領取了多少工資?(用while顯示)分析過程:初值salary=3000;sum_salary=0;month=1;1月份salary=salary+50;sum_salary1=sum_salary+salary;2月份salary2=salary1+50;sum_salary2=sum_salary1+salary2;……12月份salary12=salary11+50;sum_salary12=sum_salary11+salary12;查找循環(huán)四要素:初值salary=3000;sum_salary=0;month=1;判斷條件month<=12步長增量month++循環(huán)體salary=salary+50;sum_salary=sum_salary+salary;算法分析:定義變量2.根據while循環(huán)格式初值while(判斷條件){循環(huán)體步長增量}3.輸出第12月份工資和一年的總工資典型案例2流程圖如圖4-2-5所示:圖4-2-5典型案例2流程圖程序代碼#include"stdio.h"voidmain(){intmonth=1;intsalary=3000;intsum_salary=0;while(month<=12){ salary=salary+50; sum_salary=sum_salary+salary;month++;}printf("這名駕駛員第12月份的工資為:%d\n",salary);printf("這名駕駛員一共領取的工資為:%d",sum_salary);}典型案例2運行截圖如圖4-2-6所示:圖4-2-6典型案例運行截圖典型案例3:某集團對于駕駛員的工資是根據是否出現交通事故而定,如果不出事故,駕駛員下一月的工資會增加上月工資的10%,一個駕駛員1月份的工資為3000元,這一年都開車都沒有出事故,則這名駕駛員第12月的工資為多少,本年一共領取了多少工資?(用while顯示)分析過程:參考任務4.1典型案例3分析過程算法過程:1.定義變量月份,工資,工資總額2.根據while循環(huán)格式,得出循環(huán)格式為intsalary=3000;intsum=0;intmonth=1;while(month<=12){ salary=salary+(salary*0.1); sum=sum+salary;month++;}輸出第12月份工資和一年的總工資。流程圖:典型案例3流程圖和任務4.1典型案例3流程圖一樣,如圖4-1-4所示:程序代碼#include"stdio.h"voidmain(){intmonth=1;intsalary=3000;intsum=0;while(month<=12){ salary=salary+(salary*0.1); sum=sum+salary;month++;}printf("這名駕駛員第12月份的工資為:%d\n",salary);printf("這名駕駛員一共領取的工資為:%d",sum);}典型案例3運行截圖如圖4-2-7所示:圖4-2-7典型案例運行截圖典型案例4:已知汽車的電池隨著使用年限的增加電池的容量會下降,假設開始電池的容量為1,每年下降10%,當電池的容量低于0.5時,此電池需要更換,求電池的使用年限?(變量:電池容量Battery_capacity,電池年限Battery_life)分析過程:初值Battery_capacity=1;一年后:Battery_capacity1=Battery_capacity*0.9二年后Battery_capacity2=Battery_capacity1*0.9……..n年后Battery_capacityn=Battery_capacity(n-1)*0.9停止條件Battery_capacityn<0.5查找循環(huán)四要素:初值Battery_capacity=1;Battery_life=0;判斷條件Battery_capacity>=0.5與停止條件相反步長增量Battery_life++循環(huán)體Battery_capacity=Battery_capacity*0.9算法分析:1.定義變量2.根據while循環(huán)格式Battery_capacity=1;Battery_life=0;while(Battery_capacity>=0.5){Battery_capacity=Battery_capacity*0.9Battery_life++}輸出電池年限流程圖:典型案例4流程圖如圖4-2-8所示圖4-2-8典型案例4流程圖程序代碼#include"stdio.h"voidmain(){doubleBattery_capacity=1;intBattery_life=0;while(Battery_capacity>=0.5){ Battery_capacity=Battery_capacity*0.9; Battery_life++;}printf("電池的使用年限為:%d",Battery_life);}典型案例4運行截圖如圖4-2-9所示:圖4-2-SEQ圖4-\*ARABIC9典型案例運行截圖典型案例5:某新能源大客車集團需要招收一名駕駛員,要求是駕駛員必須駕照為A級并且3年內沒有出現任何交通事故,從鍵盤輸入駕駛員的等級和駕駛安全年限,當不滿足要求時,顯示條件不滿足,請繼續(xù)招聘,請輸入應聘駕駛員的駕照等級和安全年限。當滿足條件時,顯示應聘條件合格,招聘結束。(變量:駕照類型type,安全年限years)典型案例5運行截圖如4-2-10所示圖4-2-10典型案例5運行截圖分析過程:初值無循環(huán)體:輸入駕駛員的等級輸入駕駛員的安全年限當條件合格時,輸出招聘結束當條件不合格時,輸出繼續(xù)招聘停止條件當等級為A并且安全年限>=3循環(huán)四要素不完全滿足:算法分析:1.定義變量駕駛員的等級,駕駛員的安全年限。2.考慮四要素不足,但是有明確的停止條件,采用死循環(huán)格式while(1){輸入駕照類型輸入安全年限if(type=='A'&&years>=3){printf("應聘條件合格,招聘結束"); break;} elseprintf("應聘條件不合格,請繼續(xù)招聘\n");}}流程圖:典型案例5流程圖如圖4-2-11所示圖4-2-11典型案例5流程圖程序代碼#include"stdio.h"voidmain(){chartype;intyears;while(1){printf("請從鍵盤輸入駕駛員的駕照類型:");scanf("%c",&type);printf("請從鍵盤輸入駕駛員駕駛安全年限:"); scanf("%d",&years);if(type=='A'&&years>=3){printf("應聘條件合格,招聘結束"); break;} elseprintf("應聘條件不合格,請繼續(xù)招聘\n");}}4.2.4任務分析與實踐算法分析:1.循環(huán)8次確定初值、判斷條件、步長增量2.循環(huán)體:充電%d小時,繼續(xù)充3.充滿,請停止充電有條件的顯示一次任務目標流程圖如圖4-2-12所示圖4-2-SEQ圖4-\*ARABIC12任務目標流程圖程序代碼:#include"stdio.h"voidmain(){inti=0;while(i<=8){ printf("充電%d小時,繼續(xù)充\n",i);i++;} printf("充滿,請停止充電");}4.2.4動手練習1.改寫下面的程序用循環(huán)結構#include"stdio.h"voidmain(){ intmonth,costofgas,sum=0;/*month月份,costofgas煤氣費,sum總金額*/ printf("請輸入1月份煤氣費用:"); scanf("%d",&costofgas); sum=sum+costofgas; printf("請輸入2月份煤氣費用:"); scanf("%d",&costofgas); sum=sum+costofgas; printf("請輸入3月份煤氣費用:"); scanf("%d",&costofgas); sum=sum+costofgas; printf("請輸入4月份煤氣費用:"); scanf("%d",&costofgas); sum=sum+costofgas; printf("請輸入5月份煤氣費用:"); scanf("%d",&costofgas); sum=sum+costofgas; printf("請輸入6月份煤氣費用:"); scanf("%d",&costofgas); sum=sum+costofgas; printf("請輸入7月份煤氣費用:"); scanf("%d",&costofgas); sum=sum+costofgas; printf("請輸入8月份煤氣費用:"); scanf("%d",&costofgas); sum=sum+costofgas; printf("請輸入9月份煤氣費用:"); scanf("%d",&costofgas); sum=sum+costofgas; printf("請輸入10月份煤氣費用:"); scanf("%d",&costofgas); sum=sum+costofgas; printf("請輸入11月份煤氣費用:"); scanf("%d",&costofgas); sum=sum+costofgas; printf("請輸入12月份煤氣費用:"); scanf("%d",&costofgas); sum=sum+costofgas; printf("改住戶一年的煤氣總費用是%d",sum);} 2.求1+1/2+1/3+。。。+1/11的和。3.求200到300之間的奇數和。課題任務4.3固定時間內車輛電池狀態(tài)實時監(jiān)測(dowhile循環(huán))課型講練授課班級授課時數2教學目標1.靈活運用關系與邏輯運算符,正確描述循環(huán)條件;2.掌握do-while語句的格式及靈活運用;3.理解while語句和do-while語句的區(qū)別。教學重點1.do-while語句的具體應用及與while語句的相互轉換。2.for語句的結構及與當型、直到型循環(huán)的轉換。教學難點使用do-while語句/for語句對具體問題的算法描述。三種循環(huán)語句的具體應用。學情分析學生對循環(huán)結構的含義不是很明了,因而重點是語法知識的理解掌握(如do-while語句/for語句的簡單運用),掌握較好的學生逐步過渡到良好的編程習慣及編程規(guī)范的培養(yǎng)。教學效果教后記任務4.3固定時間內車輛電池狀態(tài)實時監(jiān)測(dowhile循環(huán))4.3.1任務目標某電池需要充電,當電池充電時間少于8小時時,顯示充電多少小時,繼續(xù)充,當8小時顯示充滿,請停止充電。運行截圖參考任務4.2任務目標的運行截圖,如圖4-2-1所示。4.3.2知識儲備do-while循環(huán)一般也是不確定循環(huán)次數時使用,和while循環(huán),for循環(huán)最大的區(qū)別是它是先執(zhí)行再判斷,一般至少執(zhí)行循環(huán)體一次。1.do-while語句的一般形式為:do{循環(huán)體語句;}while(表達式);dowhile語句的流程如圖4-3-1所示,(a)是流程圖,(b)是N-S圖圖4-3-1do-while循環(huán)流程圖注意:while(表達式);后面的分號“;”不能丟掉。do-while循環(huán)一般四要素的位置為初值do{循環(huán)體語句;步長增量}while(判斷條件);2.示例一張厚度0.5mm的面積足夠大的紙,將它不斷對折,問對折多少次后,其厚度可達到珠峰的高度(8848M)?#include"stdio.h"voidmain(){floath;intcount;h=0.5/1000;count=0;while(h<=8848){h=h*2;count=count+1;}printf(“一個要折疊%d次”,count);}4.3.3典型案例典型案例1:用do-while循環(huán)顯示車輛一天24小時電池狀態(tài),運行截圖參考任務4.2典型案例1運行截圖,如圖4-2-3所示:分析過程:參考任務4.2典型案例1分析過程。算法分析:1.定義變量count2.根據上述分析可得do-while四要素的位置count=1do{輸出第*小時,正常count++}while(count<=24);典型案例1流程圖如圖4-3-1所示圖4-SEQ圖4-\*ARABIC3-1典型案例1流程圖程序代碼:#include"stdio.h"voidmain(){intcount=0;do{ printf("第%d個小時,正常\n",i);count++;}while(count<=24);}典型案例2:某集團對于駕駛員的工資是根據是否出現交通事故而定,如果不出事故,駕駛員下一月的工資會加50元,一個駕駛員去年12月份的工資為3000元,這一年都開車都沒有出事故,則這名駕駛員第12月的工資為多少,本年一共領取了多少工資?(用do-while顯示)任務分析:參考任務4.2典型案例2分析過程。算法分析:1.定義變量2.根據do-while循環(huán)格式初值do{循環(huán)體步長增量}while(判斷條件)輸出第12月份工資和一年的總工資流程圖:典型案例2流程圖如圖4-3-2所示圖4-3-2典型案例2流程圖程序代碼:#include"stdio.h"voidmain(){intmonth=1;intsalary=3000;intsum_salary=0;do{ salary=salary+50; sum_salary=sum_salary+salary; month++;}while(month<=12);printf("這名駕駛員12月份的工資為:%d\n",salary);printf("這名駕駛員一共領取工資為:%d",sum_salary);}典型案例3:某集團對于駕駛員的工資是根據是否出現交通事故而定,如果不出事故,駕駛員下一月的工資會增加上月工資的10%,一個駕駛員1月份的工資為3000元,這一年都開車都沒有出事故,則這名駕駛員第12月的工資為多少,本年一共領取了多少工資?(用do-while顯示)分析過程:參考任務4.1典型案例3分析過程。算法分析:1.定義變量月份,工資,工資總和2.根據上述分析可得do-while四要素的位置intsalary=3000;intsum=0;intmonth=1;do{salary=salary+(salary*0.1); sum=sum+salary;month++;}while(month<=12);典型案例3流程圖如圖4-3-3所示圖4-SEQ圖4-\*ARABIC3-3典型案例3流程圖#include"stdio.h"voidmain(){intmonth=1;intsalary=3000;intsum=0;do{salary=salary+(salary*0.1); sum=sum+salary;month++;}while(month<=12);printf("這名駕駛員12月份的工資為:%d\n",salary);printf("這名駕駛員一共領取工資為:%d",sum);}典型案例4:已知汽車的電池隨著使用年限的增加電池的容量會下降,假設開始電池的容量為1,每年下降10%,當電池的容量低于0.5時,此電池需要更換,求電池的使用年限?(用do-while顯示)任務分析:參考任務4.2典型案例4任務分析。算法分析:1.定義變量2.根據do-while循環(huán)格式Battery_capacity=1;Battery_life=0;do{Battery_capacity=Battery_capacity*0.9Battery_life++}while(Battery_capacity>=0.5)輸出電池年限流程圖:典型案例4流程圖如圖4-3-4所示圖4-3-4典型案例4流程圖程序代碼:#include"stdio.h"voidmain(){doubleBattery_capacity=1;intBattery_life=0;do{ Battery_capacity=Battery_capacity*0.9; Battery_life++;}while(Battery_capacity>=0.5);printf("電池的使用年限為:%d",Battery_life);}典型案例5:某新能源大客車集團需要招收一名駕駛員,要求是駕駛員必須駕照為A級并且3年內沒有出現任何交通事故,從鍵盤輸入駕駛員的等級和駕駛安全年限,當不滿足要求時,顯示條件不滿足,請繼續(xù)招聘,請輸入應聘駕駛員的駕照等級和安全年限。當滿足條件時,顯示應聘條件合格,招聘結束。(do-while顯示)任務分析:參考任務4.2典型案例5任務分析算法分析:1.定義變量駕駛員的等級,駕駛員的安全年限。2.考慮四要素不足,但是有明確的停止條件,采用死循環(huán)格式do{輸入駕照類型輸入安全年限if(type=='A'&&years>=3){printf("應聘條件合格,招聘結束"); break;} elseprintf("應聘條件不合格,請繼續(xù)招聘\n");}}while(1);流程圖:典型案例5流程圖如圖4-3-5所示圖4-3-5典型案例5流程圖程序代碼:#include"stdio.h"voidmain(){chartype;intyears;do{ printf("請從鍵盤輸入駕駛員的等級:");scanf("%c",&type);printf("請從鍵盤輸入駕駛員的安全年限:");scanf("%d",&years);if(type=='A'&&years>=3){ printf("應聘條件合格,招聘結束\n"); break;}}while(1);}4.3.4任務分析與實踐算法分析:1.循環(huán)7次確定初值、判斷條件、步長增量2.循環(huán)體:充電%d小時,繼續(xù)充3.充滿,請停止充電有條件的顯示一次流程圖:任務分析流程圖如圖4-3-6所示圖4-3-6任務分析流程圖程序代碼:#include"stdio.h"voidmain(){inti=1;do{ printf("充電%d個小時,請繼續(xù)充電\n",times); }while(i<=8);printf("充滿,請停止充電");}4.3.4動手練習1.使用do-while語句計算1+3+5+7+。。。。+101的和。2.使用do-while語句計算1+2+3+。。。+n的和,其中n的值從鍵盤輸入。3.使用do-while語句計算1+1/3+1/5+1/7+….+1/21的和。課題任務4.4固定時間內車輛電池故障數判別(循環(huán)+選擇)課型講練授課班級授課時數2教學目標1.靈活運用關系與邏輯運算符,正確描述循環(huán)條件;2.掌握循環(huán)語句的格式及靈活運用;3.掌握循環(huán)中帶有選擇結構教學重點循環(huán)中帶有選擇的靈活應用教學難點循環(huán)中帶有選擇的靈活應用學情分析三種循環(huán)結構已經基本掌握,但是靈活應用還有很大一段距離。掌握較好的學生逐步過渡到良好的編程習慣及編程規(guī)范的培養(yǎng)。教學效果教后記任務4.4固定時間內車輛電池故障數判別(循環(huán)+選擇)4.4.1任務目標某新能源汽車電池當使用1-3小時時,顯示車輛使用小時,電量充足,請繼續(xù)行駛,當使用4-7小時時,顯示電量正常,請繼續(xù)行駛,當行駛7-8小時時,顯示電池電量不足,請盡快充電。任務目標運行截圖如圖4-4-1所示。圖4-4-1任務目標運行截圖4.4.2知識儲備1.break語句的一般形式為:break;其語句功能:break語句可以用來從循環(huán)體內跳出循環(huán)體,即提前結束循環(huán),接著執(zhí)行循環(huán)語句下面的一個語句。break在循環(huán)中其流程顯示如圖4-4-2所示。圖4-4-2break在循環(huán)中其流程顯示2.從鍵盤輸入一個整數,判斷此數是否為素數。#include<stdio.h>voidmain(){inti,m;printf("請輸入一個整數:");scanf("%d",&m);for(i=2;i<m;i++)if(m%i==0)break;if(i<m)printf("%d不是素數\n",m);elseprintf("%d是素數\n",m);}4.4.3典型案例典型案例1:某車輛裝載的貨物箱數在100-200之間,數量滿足對5求余為3,對6求余4,求貨物的數量是多是。(參考變量quantity)分析過程:數據范圍在100-200之間,可以確定初值,判斷條件,步長增量循環(huán)體if對5求余為3,對6求余4,顯示貨物數量算法過程:1.定義變量quantity。2.有明確的范圍考慮使用for循環(huán)。流程圖:典型案例1流程圖如圖4-4-3所示圖4-SEQ圖4-\*ARABIC4-3典型案例1流程圖程序代碼#include"stdio.h"voidmain(){intquantity;for(quantity=100;quantity<=200;quantity++){ if(quantity%5==3&&quantity%6==4) printf("貨物的數量可能為%d\n",quantity);}}典型案例1運行截圖4-4-4如圖所示圖4-4-4典型案例1運行截圖典型案例2:某居民家庭買了一部新能源汽車,此汽車可以行使的最高里程為280KM,假定它離單位的距離為180KM,每周六需要出去游玩距離為50KM,當電池行駛到250以上時,需要充電一次充滿,假設周一到周五需要充電時在單位充電,顯示3月份充電的次數。(變量:最高里程,單位距離,游玩距離,充電次數)(1號為周一)分析過程1.使用時間為3月份1-31號,可以確定循環(huán)的三要素,初值,判斷條件,步長增量2.循環(huán)體分情況考慮當周一到周五時如果電池可以行駛的距離<30,那么充電,統(tǒng)計次數行駛距離-20.當周六時如果電池可以行駛的距離<100,那么充電,統(tǒng)計次數行駛距離-100.3.輸出充電次數流程圖:典型案例2流程圖如圖4-4-5所示圖4-SEQ圖4-\*ARABIC4-5典型案例2流程圖程序代碼:#include"stdio.h"intmain(){intmax=280,distance1=10,distance2=50,count=0,day;//最高里程max,離單位的距離為distance1,游玩距離distance2,充電次數chargefor(day=1;day<=31;day++){if(day%7!=0&&day%7!=6){ if(max<30) { printf("%d號需要充電\n",day); count++; max=280; } max=max-(distance1*2);}if(day%7==6){ if(max<100) { printf("%d號需要充電\n",day); count++; max=280; } max=max-(distance2)*2; }}printf("共充電%d次\n",count);}典型案例2運行截圖如圖4-4-6所示:圖4-4-6典型案例2運行截圖4.4.4任務分析與實踐算法分析:根據范圍1-8可以確定三要素循環(huán)體分析當1<=i<=3時,顯示請繼續(xù)使用當4<=i<=6時,顯示正常當7<=i<=8時,顯示請盡快充電流程圖:任務目標流程圖如4-4-7所示圖4-4-7任務目標流程圖程序代碼:#include"stdio.h"voidmain(){inti;for(i=1;i<=8;i++)if(i<=3)printf("車輛已經使用%d小時,請繼續(xù)使用\n",i);elseif(i<=6)printf("車輛已經使用%d小時,正常\n",i);elseif(i<=8)printf("車輛已經使用%d小時,請盡快充電\n",i);}4.4.5動手練習1.輸出100以內能被3整除且個位數為6的所有整數。2.編程計算200至300之間的偶數和,并將和打印輸出。3.編程輸出1000以內所有“水仙花數”:所謂水仙花數是指一個三位十進制數,該數的各位數字立方之和,等于該數本身。(舉例153)課題任務4.5新能源多種汽車一年銷售數據顯示(循環(huán)嵌套)課型講練授課班級授課時數2教學目標掌握雙循環(huán)程序的結構,學會雙重循環(huán)的使用教學重點雙重循環(huán)的結構教學難點辨別什么時候使用單循環(huán)、什么時候使用雙循環(huán)學情分析循環(huán)的三種方式已經學過,對于雙重循環(huán)是個新的知識點,同學們不容易把握重難點。教學效果教后記任務4.5新能源多種汽車一年銷售數據顯示(循環(huán)嵌套)4.5.1任務目標已知某個集團車輛停放位置是個三角形,運行結果如圖4-5-1所示:圖4-5-1任務目標運行截圖4.5.2知識儲備1.一個循環(huán)體內又包含另一個完整的循環(huán)結構,稱為循環(huán)的嵌套。三種循環(huán)(for循環(huán)、while循環(huán)、dowhile循環(huán))可以互相嵌套。以下是循環(huán)嵌套幾種常見的形式:(1)while()(4)while(){…{…while()do{…}{…}}while();…}(2)do(5)for(;;){…{…dowhile(){…}{…}while();…}}while();(3)for(;;)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論