資源簡(jiǎn)介 (共24張PPT)第三章算法的程序?qū)崿F(xiàn)1、用計(jì)算機(jī)編程解決的一般過程2、Python語(yǔ)言程序設(shè)計(jì)3、簡(jiǎn)單的算法及其程序設(shè)計(jì)學(xué)習(xí)目標(biāo):分支結(jié)構(gòu)的算法設(shè)計(jì)情境導(dǎo)入問題:在第二章的學(xué)習(xí)中,同學(xué)們已經(jīng)理解了分支結(jié)構(gòu)的流程,接下來請(qǐng)大家看下面的兩塊偽代碼:偽代碼1:if今晚不下雨: 去體育館打籃球else: 去健身房健身偽代碼2: if 車牌記錄在小區(qū)住戶汽車記錄能夠查詢到: 解鎖門禁,允許汽車駛?cè)? else: 提示警告音,禁止通行請(qǐng)大家思考,“如果”和“否則”的代碼是否會(huì)都運(yùn)行? ·定義選擇結(jié)構(gòu)也稱分支結(jié)構(gòu),就是讓程序“拐彎”,有選擇性的執(zhí)行代碼;換句話說,可以跳過沒用的代碼,只執(zhí)行有用的代碼。在Python語(yǔ)言中,if else 語(yǔ)句可以實(shí)現(xiàn)這種選擇功能。if else 語(yǔ)句if 語(yǔ)句 --單分支結(jié)構(gòu)if-else 語(yǔ)句 --雙分支結(jié)構(gòu)if-elif-else 語(yǔ)句 --多分支結(jié)構(gòu)分支結(jié)構(gòu)(選擇結(jié)構(gòu))分支結(jié)構(gòu)——單分支結(jié)構(gòu)else語(yǔ)句塊也可省略,if語(yǔ)句變?yōu)椋骸?”必須添加,代表后面的語(yǔ)句都是if語(yǔ)句內(nèi)代碼塊的標(biāo)志縮進(jìn):若代碼塊內(nèi)都是相同的縮進(jìn)格式,則說明此代碼塊都是if條件成立時(shí)需執(zhí)行的語(yǔ)句塊。表達(dá)式:表示if語(yǔ)句的條件,若表達(dá)式的值為True,則執(zhí)行下面的代碼塊;若值為False則不執(zhí)行代碼塊 ·if 語(yǔ)句執(zhí)行流程:輸入n代碼塊表達(dá)式結(jié)束TrueFalse分支結(jié)構(gòu)——單分支結(jié)構(gòu)輸入一個(gè)整數(shù),如果該數(shù)既是3的倍數(shù)又是7的倍數(shù)則輸出“ok”n = int(input("請(qǐng)輸入整數(shù):"))if n % 3 == 0 and n % 7 == 0: print("ok")條件是一個(gè)表達(dá)式,它的值是布爾類型的數(shù)據(jù)條件為真(true)時(shí)執(zhí)行條件為假(false)時(shí)執(zhí)行分支結(jié)構(gòu)——雙分支結(jié)構(gòu)注意!語(yǔ)句塊1和語(yǔ)句塊2都縮進(jìn)了4格。同一個(gè)if語(yǔ)句中,if、else下方的語(yǔ)句塊必須采用相同的縮進(jìn)。else后面也必須添加“:”語(yǔ)句塊縮進(jìn):在python中,行尾冒號(hào)的作用是告訴python接下來要?jiǎng)?chuàng)建一個(gè)新的語(yǔ)句塊。因此,只要某一行以冒號(hào)結(jié)尾,它接下來的內(nèi)容就應(yīng)該有縮進(jìn)。python中有一個(gè)慣例:總是將語(yǔ)句塊縮進(jìn)4個(gè)空格。 ·if else 語(yǔ)句執(zhí)行流程:fgdsdsgfd代碼塊1表達(dá)式結(jié)束TrueFalse代碼塊2分支結(jié)構(gòu)——雙分支結(jié)構(gòu)if 今晚不下雨: 去體育館打籃球 else: 去健身房健身學(xué)生任務(wù)——“區(qū)間測(cè)速”問題目前,國(guó)內(nèi)很多高速公路都啟用了區(qū)間測(cè)速。所謂區(qū)間測(cè)速,是在同一路段上布設(shè)兩個(gè)監(jiān)測(cè)點(diǎn),基于車輛通過前后兩個(gè)監(jiān)測(cè)點(diǎn)的時(shí)間來計(jì)算車輛在該路段上的平均行駛速度,并依據(jù)該路段上的限速標(biāo)準(zhǔn)判定車輛是否超速。現(xiàn)有一段長(zhǎng)為25千米的測(cè)速區(qū)間,小車的限速是100千米/小時(shí)。數(shù)據(jù)中心需要編寫一 段程序,用來判斷某輛小車在此測(cè)速路段是否超速。對(duì)該任務(wù)進(jìn)行抽象建模,隨后設(shè)計(jì)算法,最終編寫程序用于判斷小車是否在此測(cè)速路段超速。圖3.2.7區(qū)間測(cè)速示意圖(1)抽象與建模判斷結(jié)果={“正常”(v≤100)“超速”(v>100)其中v=s×3600/ta.區(qū)間測(cè)速需要測(cè)量哪些數(shù)據(jù)?b.該問題計(jì)算數(shù)據(jù)模型是怎樣的?(2)設(shè)計(jì)算法圖3.2.8 超速判斷算法流程圖(3)編寫程序elif子句僅當(dāng)其if語(yǔ)句中的條件為假時(shí)才執(zhí)行。如果if語(yǔ)句和elif子句中的條件都不為真時(shí),末尾的else子句的語(yǔ)句塊才會(huì)被執(zhí)行。特性:只要某個(gè)條件為真,計(jì)算機(jī)就會(huì)執(zhí)行其所對(duì)應(yīng)的語(yǔ)句塊,然后退出該語(yǔ)句。一個(gè)if語(yǔ)句可以包含多個(gè)elif子句,最后一個(gè)else語(yǔ)句是可選的。分支結(jié)構(gòu)——多分支結(jié)構(gòu) ·if elif else 語(yǔ)句執(zhí)行流程:分支結(jié)構(gòu)——多分支結(jié)構(gòu)if 今晚下雨 and 朋友有空: 和朋友一起看電影elif 今晚下雨 and 朋友沒空: 獨(dú)自一個(gè)人健身房健身elif 今晚不下雨 and 朋友有空: 和朋友一起打籃球else: 獨(dú)自一個(gè)人戶外長(zhǎng)跑現(xiàn)有一段長(zhǎng)為25千米的測(cè)速區(qū)間,小車的限速是100千米/小時(shí)。數(shù)據(jù)中心需要編寫一 段程序,用來判斷某輛小車在此測(cè)速路段是否超速。在上述“區(qū)間測(cè)速”的基礎(chǔ)上,如果某輛小車超速,數(shù)據(jù)中心能同步顯示超速的程度, 如“超過規(guī)定時(shí)速且不足20%”、“超過規(guī)定時(shí)速20%以上且不足50%”、“超過規(guī)定時(shí)速50%以上且不足70%”、“超過規(guī)定時(shí)速70%以上”。如何用程序來實(shí)現(xiàn)這個(gè)目標(biāo)?對(duì)該任務(wù)進(jìn)行抽象建模,隨后設(shè)計(jì)算法,最終編寫程序用于判斷小車是否在此測(cè)速路段超速。學(xué)生任務(wù)——“區(qū)間測(cè)速”問題(1)抽象與建模表3.2.7超速標(biāo)準(zhǔn)及其判斷條件對(duì)應(yīng)表(2) 設(shè)計(jì)算法圖3.2.9 超速程度判斷算法流程圖(3)編寫程序注意:選擇結(jié)構(gòu)中,不管有多少分支,都只會(huì)執(zhí)行一個(gè)分支或一個(gè)也不執(zhí)行,不會(huì)同時(shí)執(zhí)行多個(gè)分支。例如:a = int(input(“請(qǐng)輸入數(shù)”))if a > 0 :b = a + 1print( b )a = int(input(“請(qǐng)輸入數(shù)”))if a > 0 :b = a + 1else :b = a + 2print( b )a = int(input(“請(qǐng)輸入數(shù)”))if a > 0 :b = a + 1elif a > 5 :b = a + 3else :b = a + 2print( b )分支結(jié)構(gòu)——小結(jié)·if 語(yǔ)句的嵌套三種選擇結(jié)構(gòu)都可以相互嵌套例如:if 表達(dá)式 1:if 表示式 2:代碼塊 1else:代碼塊 2if 表示式 1:if 表達(dá)式 2:代碼塊 1else:代碼塊 2else:if 表達(dá)式 3:代碼塊 3if 表示式 1:if 表達(dá)式 2:代碼塊 1else:代碼塊 2elif:if 表達(dá)式 3:代碼塊 3elif 表達(dá)式4:代碼塊 4else:代碼塊 5else:if 表達(dá)式 5:代碼塊 6分支結(jié)構(gòu)——嵌套多分支TrueFalseAACBx=7x=12res=142res=142-5=137CDa**3+b**3+c**3 == int(num)902000.8if x< = 3:elif x< = 10:else:y=10y=10+(x-3)*1.8y=22.6+(x-10)*2.4Thanks 展開更多...... 收起↑ 資源預(yù)覽 縮略圖、資源來源于二一教育資源庫(kù)