智能小車C語(yǔ)言程序控制 課件 第六章 制作小夜燈_第1頁(yè)
智能小車C語(yǔ)言程序控制 課件 第六章 制作小夜燈_第2頁(yè)
智能小車C語(yǔ)言程序控制 課件 第六章 制作小夜燈_第3頁(yè)
智能小車C語(yǔ)言程序控制 課件 第六章 制作小夜燈_第4頁(yè)
智能小車C語(yǔ)言程序控制 課件 第六章 制作小夜燈_第5頁(yè)
已閱讀5頁(yè),還剩55頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

智能小車C語(yǔ)言程序控制秦磊

梁爽

主編第六章

制作小夜燈目錄CONTENTS1選擇語(yǔ)句2相關(guān)案例介紹6.1PARTONE選擇語(yǔ)句6.1.1基本if語(yǔ)句

基本if語(yǔ)句的格式如下:if(表達(dá)式){語(yǔ)句1;語(yǔ)句2;…語(yǔ)句n;}基本if語(yǔ)句的執(zhí)行過(guò)程。(1)首先對(duì)if后面括號(hào)里的表達(dá)式進(jìn)行判斷。(2)如果表達(dá)式的值為真或者非0,則執(zhí)行表達(dá)式后面的語(yǔ)句1至語(yǔ)句n。(3)如果表達(dá)式的值為假或者0,則跳過(guò)if語(yǔ)句執(zhí)行下一條語(yǔ)句。行業(yè)PPT模板/hangye/(1)“if(表達(dá)式)”后面沒(méi)有分號(hào)。(2)if語(yǔ)句中的表達(dá)式可以是關(guān)系表達(dá)式、邏輯表達(dá)式或數(shù)值表達(dá)式。(3)如果大括號(hào)中只有一條語(yǔ)句,那么大括號(hào)可以省略,本書建議不要省略大括號(hào)。小貼士【例6-1-1】打開C語(yǔ)言編譯器,輸入下列代碼。行業(yè)PPT模板/hangye/程序運(yùn)行結(jié)果【例6-1-2】從鍵盤輸入兩個(gè)整數(shù),按照由大到小的順序輸出這兩個(gè)數(shù)。行業(yè)PPT模板/hangye/程序運(yùn)行結(jié)果【例6-1-3】輸入三個(gè)數(shù)a、b、c,要求按由小到大的順序輸出這三個(gè)數(shù)。行業(yè)PPT模板/hangye/程序運(yùn)行結(jié)果行業(yè)PPT模板/hangye/

輸入一個(gè)字符,判斷它是否為大寫字母,若是則將其轉(zhuǎn)換成小寫字母,若不是則不轉(zhuǎn)換,然后輸出最后得到的字符。練一練6.1.2if-else語(yǔ)句基本if語(yǔ)句是單分支選擇結(jié)構(gòu),if-else語(yǔ)句是雙分支選擇結(jié)構(gòu)。在雙分支選擇結(jié)構(gòu)中,if語(yǔ)句對(duì)表達(dá)式進(jìn)行判斷,當(dāng)表達(dá)式的值為真時(shí)執(zhí)行if后面的語(yǔ)句1至語(yǔ)句n,為假則執(zhí)行else后面的語(yǔ)句1至語(yǔ)句n,格式如右邊所示:if(表達(dá)式){ 語(yǔ)句1; 語(yǔ)句2; … 語(yǔ)句n;}else{ 語(yǔ)句1; 語(yǔ)句2; … 語(yǔ)句n;}行業(yè)PPT模板/hangye/(1)在if-else語(yǔ)句中,如果if或else后面只有一條語(yǔ)句,那么可以省略大括號(hào)。(2)在C語(yǔ)言中“==”是關(guān)系運(yùn)算符,而“=”表示賦值,如a=0表示將0賦給a,而a==0表示a的值是否為0的布爾運(yùn)算。小貼士【例6-1-4】用鍵盤輸入一個(gè)數(shù)字,如果輸入的數(shù)字為0,就顯示“你好”,否則顯示“hello”。行業(yè)PPT模板/hangye/程序運(yùn)行結(jié)果【例6-1-5】用鍵盤輸入當(dāng)前溫度,如果大于或等于30℃就提示開啟空調(diào),如果小于30℃則提示不開啟空調(diào)。行業(yè)PPT模板/hangye/程序運(yùn)行結(jié)果【例6-1-6】小明跟著媽媽去逛超市,總共花費(fèi)m元,小明給了超市收銀員n元,請(qǐng)問(wèn)超市收銀員需要給小明找多少零錢,請(qǐng)?jiān)O(shè)計(jì)一個(gè)程序幫助小明。行業(yè)PPT模板/hangye/程序運(yùn)行結(jié)果拓展行業(yè)PPT模板/hangye/通過(guò)鍵盤輸入兩個(gè)數(shù)a和b,輸出兩個(gè)數(shù)中較大的數(shù)。程序如下:拓展行業(yè)PPT模板/hangye/能不能用條件表達(dá)式將上述程序簡(jiǎn)化一下呢?簡(jiǎn)化后的程序如下:拓展行業(yè)PPT模板/hangye/下面的語(yǔ)句和語(yǔ)句max=(a>b)?a:b;等效。if(a>b){ max=a;}else{max=b;}條件表達(dá)式的一般形式如下:表達(dá)式1?表達(dá)式2:表達(dá)式3如果表達(dá)式1成立就執(zhí)行表達(dá)式2,否則執(zhí)行表達(dá)式3。行業(yè)PPT模板/hangye/

請(qǐng)編寫一個(gè)程序,從鍵盤輸入一個(gè)整數(shù),判斷該數(shù)是否為偶數(shù)。練一練6.1.3嵌套if語(yǔ)句如果程序的邏輯判斷關(guān)系比較復(fù)雜,可以采用嵌套if語(yǔ)句,即在if語(yǔ)句中又包含一個(gè)或多個(gè)if語(yǔ)句,其一般形式如右所示:if(表達(dá)式){ if(表達(dá)式){ 語(yǔ)句塊} else{ 語(yǔ)句塊}}else{ if(表達(dá)式){ 語(yǔ)句塊} else{ 語(yǔ)句塊}}【例6-1-7】有一個(gè)函數(shù)y=

,要求編寫一個(gè)程序,輸入一個(gè)自變量整數(shù)x,程序輸出一個(gè)因變量y。行業(yè)PPT模板/hangye/程序運(yùn)行結(jié)果【例6-1-8】在一個(gè)房間中如果傳感器采集到的溫度大于或等于30℃,并且房間內(nèi)有人,則提示空調(diào)打開,否則提示空調(diào)關(guān)閉。注意:在程序中輸入0表示無(wú)人,輸入其他數(shù)字表示有人,采集的溫度為人工模擬輸入溫度。行業(yè)PPT模板/hangye/程序運(yùn)行結(jié)果拓展行業(yè)PPT模板/hangye/圖2-6-10和圖2-6-11中的兩個(gè)程序功能相同,都是實(shí)現(xiàn)對(duì)輸入的三個(gè)數(shù)進(jìn)行升序排列。在編寫程序時(shí)應(yīng)盡量實(shí)現(xiàn)單出口,以便后續(xù)程序調(diào)用其中的變量。行業(yè)PPT模板/hangye/

小貼士

在嵌套if語(yǔ)句中,每個(gè)else與離它最近且沒(méi)有其他else與之對(duì)應(yīng)的if相配對(duì),如果if與else的數(shù)目不一樣,可以加大括號(hào)來(lái)確定配對(duì)關(guān)系。建議在if或else后面使用大括號(hào),即使只有一條語(yǔ)句。

練一練

從鍵盤輸入兩個(gè)數(shù)a和b,編寫一個(gè)程序判斷a與b的關(guān)系(大于、小于、等于)。

6.1.4if-else-if語(yǔ)句采用嵌套if語(yǔ)句是為了實(shí)現(xiàn)多分支選擇,但程序結(jié)構(gòu)不夠清晰,所以一般情況下較少使用if語(yǔ)句的嵌套結(jié)構(gòu),而使用if-else-if語(yǔ)句來(lái)實(shí)現(xiàn)多分支選擇?!纠?-1-9】有一個(gè)函數(shù)y=

,要求編寫一個(gè)程序,輸入一個(gè)自變量整數(shù)x,程序輸出一個(gè)因變量y。行業(yè)PPT模板/hangye/程序運(yùn)行結(jié)果【例6-1-10】根據(jù)溫度判斷天氣舒適度。行業(yè)PPT模板/hangye/程序運(yùn)行結(jié)果拓展行業(yè)PPT模板/hangye/if-else-if語(yǔ)句解決了if嵌套語(yǔ)句中代碼編排的問(wèn)題和多出口問(wèn)題。為了保證程序結(jié)構(gòu)清晰,通常提倡將程序?qū)懗射忼X形式,復(fù)雜的if嵌套語(yǔ)句會(huì)導(dǎo)致代碼往右縮進(jìn)嚴(yán)重,不便于屏幕顯示,而級(jí)聯(lián)if語(yǔ)句可以讓代碼更好地適應(yīng)屏幕要求,讓程序更便于閱讀。拓展行業(yè)PPT模板/hangye/if-else-if的級(jí)聯(lián)if語(yǔ)句和并列if語(yǔ)句的結(jié)果不同。如圖2-6-14和圖2-6-15所示,這兩個(gè)程序的運(yùn)行結(jié)果不一樣。兩個(gè)程序的不同之處就是圖2-6-15所示程序把第二次和第三次的if判斷換成了else-if判斷。這兩個(gè)程序都沒(méi)有編譯錯(cuò)誤,但是圖2-6-14所示程序能正確輸出排列結(jié)果,而圖2-6-15所示程序輸出結(jié)果如圖2-6-16所示,這是因?yàn)樗牡诙闻袛嗍窃诘谝淮闻袛嗟幕A(chǔ)上進(jìn)行的,第二次判斷的條件是a<=b且a>c,執(zhí)行完此次判斷后a<=b且a<=c,第三次判斷是在a<=b且a<=c的基礎(chǔ)上比較b和c的大小,執(zhí)行完結(jié)果是a<=b、a<=c且b<=c,但是這個(gè)程序?qū)>b這種情況沒(méi)有進(jìn)行判斷,所以會(huì)出現(xiàn)圖2-6-16所示的情況,即只比較了a和b的大小。拓展行業(yè)PPT模板/hangye/行業(yè)PPT模板/hangye/

小貼士

級(jí)聯(lián)if語(yǔ)句中else-if中的else也是if語(yǔ)句的一部分,它與離它最近且沒(méi)有其他else與之對(duì)應(yīng)的if相配對(duì)。

練一練

編寫一個(gè)程序?qū)崿F(xiàn)從鍵盤輸入一個(gè)整數(shù),判斷輸入的整數(shù)是正整數(shù)、負(fù)整數(shù)還是零。

6.1.5switch語(yǔ)句多分支選擇結(jié)構(gòu)使用if-else-if語(yǔ)句時(shí),程序顯得復(fù)雜冗長(zhǎng),可讀性較差,所以C語(yǔ)言提供了另外一種用于多分支選擇的語(yǔ)句—switch語(yǔ)句,它能使程序變得簡(jiǎn)潔。switch語(yǔ)句的一般形式如下:switch(表達(dá)式){ case常量1:語(yǔ)句1;break; case常量2:語(yǔ)句2;break; … case常量n:語(yǔ)句n;break; default:語(yǔ)句n+1;}6.1.5switch語(yǔ)句switch后面的表達(dá)式是選擇條件,可以是單個(gè)變量,也可以是變量組合成的表達(dá)式,其最終的結(jié)果必須是一個(gè)整數(shù)。大括號(hào)內(nèi)的所有內(nèi)容是switch語(yǔ)句的主體,包含多個(gè)case分支,判斷值必須是常量,case分支根據(jù)判斷值標(biāo)識(shí)條件的入口??梢詫witch語(yǔ)句看成一種基于計(jì)算的跳轉(zhuǎn),計(jì)算控制表達(dá)式的值后,程序會(huì)跳轉(zhuǎn)到相匹配的case分支。在執(zhí)行完分支中的最后一條語(yǔ)句后,如果后面沒(méi)有break,就會(huì)順序執(zhí)行下面的case分支,直至遇到break,或者switch語(yǔ)句結(jié)束為止。【例6-1-11】根據(jù)輸入的月份顯示該月份對(duì)應(yīng)的英文。行業(yè)PPT模板/hangye/程序運(yùn)行結(jié)果【例6-1-12】請(qǐng)編寫程序,由鍵盤輸入成績(jī)的等級(jí),該程序能夠根據(jù)成績(jī)的等級(jí)輸出百分制分?jǐn)?shù)段,A等為90分以上,B等為80~89分,C等為70~79分,D等為60~69分,E等為60分以下。行業(yè)PPT模板/hangye/程序運(yùn)行結(jié)果行業(yè)PPT模板/hangye/

小貼士

(1)switch后面表達(dá)式的結(jié)果只能是整數(shù)。case后面的常量可以是常數(shù),也可以是常數(shù)計(jì)算的表達(dá)式。(2)在每個(gè)case后面帶一個(gè)break才能跳出switch選擇結(jié)構(gòu),否則會(huì)執(zhí)行下一條case語(yǔ)句。

行業(yè)PPT模板/hangye/

小貼士

switch語(yǔ)句的執(zhí)行過(guò)程如下。(1)首先計(jì)算“表達(dá)式”的值,假設(shè)為a。(2)從第一個(gè)case開始,比較“常量1”和a,如果“常量1”和a不相等,就跳過(guò)冒號(hào)后面的“語(yǔ)句1”,繼續(xù)比較第二個(gè)case、第三個(gè)case等。如果它們相等,就執(zhí)行冒號(hào)后面的語(yǔ)句,一旦遇到break,就跳出switch語(yǔ)句。假設(shè)a和“常量5”相等,那么就會(huì)從“語(yǔ)句5”一直執(zhí)行到“語(yǔ)句n+1”。(3)如果直到“常量n”都沒(méi)有找到相等的數(shù)值,那么就執(zhí)行default后的“語(yǔ)句n+1”。

練一練

請(qǐng)用switch語(yǔ)句編寫一個(gè)程序,根據(jù)用戶輸入的駕照類型,輸出他可以駕駛的車輛類型。

6.1.6選擇結(jié)構(gòu)的應(yīng)用項(xiàng)目案例數(shù)字猜猜猜小游戲是一個(gè)經(jīng)典小游戲,在本文中,猜數(shù)字小游戲主要的功能如下所示:1、登入猜數(shù)字小游戲系統(tǒng),顯示小時(shí)歡迎界面。2、用戶猜的數(shù)字有系統(tǒng)隨機(jī)在1-30之間生成。3、用戶可以有5次機(jī)會(huì)猜這個(gè)隨機(jī)生成的數(shù)字。4、若用戶猜大了,則系統(tǒng)會(huì)顯示猜大了,并提示還有多少猜數(shù)字的機(jī)會(huì)。5、若5次都沒(méi)有猜中系統(tǒng)隨機(jī)生成的數(shù)字,則游戲結(jié)束。該游戲首先定義select變量,根據(jù)用戶輸入的值,給變量select賦值,根據(jù)輸入的select值,進(jìn)入switch分支語(yǔ)句進(jìn)行判斷實(shí)現(xiàn)開始游戲或退出游戲選擇。使用if-else-if語(yǔ)句實(shí)現(xiàn)游戲猜測(cè)判斷以及剩余次數(shù)提醒。}6.2PARTTWO相關(guān)案例介紹6.2.1用計(jì)算機(jī)指令控制LED本案例通過(guò)控制計(jì)算機(jī)輸入的指令來(lái)控制LED的亮滅。硬件清單如下:(1)Arduino開發(fā)板1塊。(2)發(fā)光二極管1個(gè)。(3)限流電阻1個(gè)。本案例的實(shí)物連接圖如圖2-6-19所示。6.2.1用計(jì)算機(jī)指令控制LED6.2.2用按鍵控制LED本案例用一個(gè)按鍵控制一個(gè)LED,用選擇語(yǔ)句編寫程序。按鍵屬于開關(guān)量(數(shù)字量)元件,按下時(shí)為閉合(導(dǎo)通)狀態(tài)。本案例要用到的硬件清單如下:(1)Arduino開發(fā)板1塊。(2)按鍵1個(gè)。(3)發(fā)光二極管1個(gè)。(4)限流電阻1個(gè)(配合發(fā)光二極管使用,本案例使用330Ω電阻)。(5)限流電阻1個(gè)(配合按鍵使用,本案例使用10kΩ電阻)。(6)面包板1塊。(7)面包板導(dǎo)線若干。將按鍵接到開發(fā)板7號(hào)引腳,LED接到開發(fā)板11號(hào)引腳,按圖2-6-23連接好電路。6.2.2用按鍵控制LED6.2.2用按鍵控制LED6.2.2用按鍵控制LED6.2.3制作神奇小夜燈本案例主要介紹如何利用Arduino開發(fā)板制作神奇小夜燈。這個(gè)小夜燈神奇在何處呢?它能自動(dòng)感應(yīng)光線,只有光線暗淡時(shí)才會(huì)亮起。本案例中用LED模擬小夜燈。如圖2-6-27所示,光線充足時(shí)LED不亮。如圖2-6-28所示,用筆帽對(duì)光敏電阻進(jìn)行遮擋,模擬光線暗淡的情況,這時(shí)LED點(diǎn)亮。6.2.3制作神奇小夜燈本案例需要的硬件清單如下:(1)Arduino開發(fā)板1塊。(2)發(fā)光二極管1個(gè)。(3)限流電阻1個(gè)(配合LED使用,本案例使用330電阻)。(4)面包板1塊。(5)面包板導(dǎo)線若干。(6)5528光敏電阻1個(gè)。(7)分壓電阻1個(gè)(10k,配合5528光敏電阻使用)。6.2.3制作神奇小夜燈6.2.3制作神奇小夜燈行業(yè)PPT模板/hangye/

串口通信屬于異步串行通信,串行通信是將數(shù)據(jù)按位在一條傳輸線上依次傳輸,每一位為1或0。在本章Arduino案例中使用USB線建立串口連接。波特率是指一個(gè)設(shè)備在一秒鐘內(nèi)發(fā)送(或接收)了多少比特的數(shù)據(jù),它反映了設(shè)備發(fā)送(或接收)數(shù)據(jù)的快慢。為了保證串行通信順利進(jìn)行,數(shù)據(jù)發(fā)送方發(fā)送數(shù)據(jù)的速率與數(shù)據(jù)接收方接收數(shù)據(jù)的速率要保持一致。串口通信的常用函數(shù)如下:(1)Serial.begin(speed)用于開啟通信接口并設(shè)置波特率,比如Serial.begin(9600)是指將通信接口波特率設(shè)置為9600。speed表示波特率,一般選擇9600。(2)Serial.available(void)用于判斷串口緩沖器是否有數(shù)據(jù)輸入。(3)Serial.read(void)用于讀取串口數(shù)據(jù)。(4)Serial.print(val)用于寫入字符串?dāng)?shù)據(jù)到串口,val表示要打印的數(shù)據(jù)。(5)Serial.println(val)用于寫入字符串?dāng)?shù)據(jù)+換行到串口,val表示要打印的數(shù)據(jù)。

拓展行業(yè)PPT模板/hangye/

(1)在本章的三個(gè)案例中,數(shù)字接口和模擬接口可以根據(jù)需要進(jìn)行更改。(2)案例中的按鍵有四個(gè)引腳,兩兩相通,安裝時(shí)應(yīng)注意方向問(wèn)題。

小貼士1.器材準(zhǔn)備(1)首先識(shí)讀電路,選擇所需的電路元件,記錄其型號(hào)、規(guī)格、數(shù)量。逐個(gè)檢驗(yàn)各個(gè)元件規(guī)格和質(zhì)量是否正確合格。填寫表2-6-1。(2)把檢測(cè)好的器材整齊地放在工作臺(tái)上,準(zhǔn)備下一步安裝接線。

6.2.4任務(wù)實(shí)施及效果2.職業(yè)素養(yǎng)在任務(wù)實(shí)施過(guò)程中能夠按照操作規(guī)范進(jìn)行文明生產(chǎn),任務(wù)實(shí)施過(guò)程中的,填寫表2-6-2。

6.2.4任務(wù)實(shí)施及效果3.電路的安裝按照實(shí)例中的電路原理圖和實(shí)物接線圖在接線板上布置元件并安裝接線。并填寫表2-6-3。

6.2.4任務(wù)實(shí)施

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論