資源簡(jiǎn)介 (共25張PPT)第3章課時(shí)10 順序結(jié)構(gòu)及分支結(jié)構(gòu)的程序實(shí)現(xiàn)信息技術(shù)課標(biāo)梳理·微知著教材重點(diǎn) 課標(biāo)要求 學(xué)業(yè)質(zhì)量水平順序結(jié)構(gòu) 掌握順序結(jié)構(gòu)的使用方法 2-2分支結(jié)構(gòu) 掌握if語句的使用方法 2-2教材研析·固基礎(chǔ)1順序結(jié)構(gòu)的程序?qū)崿F(xiàn)一、順序結(jié)構(gòu)1.程序?qū)崿F(xiàn):按照算法中的順序逐步實(shí)現(xiàn)。范例:已知初速度、加速度和時(shí)間,求位移。v0=float(input('請(qǐng)輸入初速度(米/s):'))a=float(input('請(qǐng)輸入加速度(米/s2):'))t=float(input('請(qǐng)輸入時(shí)間(s):'))s=v0 t+a t 2/2print('位移了',s,'米')典例1 有如下Python程序段:a=1b=2a=a+bb=a+bprint(a,b)執(zhí)行該程序段后,輸出結(jié)果是________,該程序段的結(jié)構(gòu)類型是_____ (單選,填字母:A.順序結(jié)構(gòu)/B.分支結(jié)構(gòu)/C.循環(huán)結(jié)構(gòu))。 3 5A解析 根據(jù)代碼執(zhí)行順序可知最終結(jié)果是a=3,b=5,該程序段結(jié)構(gòu)是典型的順序結(jié)構(gòu)。典例2 已知a=1;b=2,以下能實(shí)現(xiàn)交換a、b兩個(gè)變量值的程序段是________________。(多選,填序號(hào)) ①t=a;a=b;b=t ②a=a+b;b=a-b;a=a-b ③a,b=b,a ④a=b;b=a ⑤a=a b;b=a/b;a=a/b①②③⑤二、分支結(jié)構(gòu)分支結(jié)構(gòu)可以用if語句來實(shí)現(xiàn)。主要有兩種格式。2簡(jiǎn)單分支語句在Python中,if條件語句的一般格式如下:if<條件>: <語句塊1>else: <語句塊2>if條件語句由if關(guān)鍵字構(gòu)成,后面跟著一個(gè)條件和一個(gè)冒號(hào)。冒號(hào)的作用是告知接下來要?jiǎng)?chuàng)建一個(gè)新的語句塊,同一個(gè)if語句中,if、else下方的語句塊必須采用相同的縮進(jìn)。條件實(shí)際上是一個(gè)表達(dá)式,它的值可以是真(True)或假(False)。當(dāng)條件為真時(shí),執(zhí)行語句塊1中的語句,否則(條件為假時(shí))執(zhí)行語句塊2中的語句。【知識(shí)拓展】☆if條件語句格式中,else分支也可以省略。☆在Python中,代碼的縮進(jìn)非常重要,縮進(jìn)是體現(xiàn)代碼邏輯關(guān)系的重要方式。同一層次的代碼塊必須保證相同的縮進(jìn)量,一般以4個(gè)空格作為1個(gè)縮進(jìn)單位,可以按4次空格鍵或按1次“Tab”鍵。典例3 (2022浙江7月學(xué)考)用Python算法控制結(jié)構(gòu)描述“您所在街道25分鐘后小雨,50分鐘后雨停”,設(shè)t為距離天氣預(yù)報(bào)發(fā)布時(shí)間的間隔(單位:分),下列選項(xiàng)正確的是( )A.if t>50: print(″雨停″)elif t>25: print(″小雨″)B.if t>50:print(″雨停″)else:print(″小雨″)AC.if t>25 and t<=50:print(″小雨″)else:print(″雨停″)D.if t>25:print(″小雨″)elif t>50:print(″雨停″)解析 本題考查分支語句。B選項(xiàng),else分支表示的條件是t<=50時(shí)“小雨”,不符合題意,B錯(cuò)誤;C選項(xiàng),else分支表示的條件是t<=25 or t>50時(shí)“雨停”,但題干并沒有給出t<=25時(shí)的狀態(tài),故C錯(cuò)誤;D選項(xiàng),若t>25程序只會(huì)執(zhí)行第一個(gè)分支,輸出“小雨”,t>50這個(gè)分支不再判斷執(zhí)行,故D錯(cuò)誤;選項(xiàng)A正確。3多分支語句if-elif語句。在Python中,可用帶有elif子句的if語句來實(shí)現(xiàn)多分支結(jié)構(gòu),其格式是:if <條件1>: <語句塊1>elif <條件2>: <語句塊2>……elif <條件n>: <語句塊n>[else:<語句塊n+1>]【知識(shí)拓展】一個(gè)if語句可以包含多個(gè)elif子句,最后一個(gè)else子句是可選的。elif子句僅當(dāng)其if語句中的條件為假時(shí)才執(zhí)行。如果if語句和elif子句中的條件都不為真時(shí),末尾的else子句的語句塊就會(huì)被執(zhí)行。因此,帶有elif分支的if語句有一個(gè)很重要的特性:只要某個(gè)條件為真,計(jì)算機(jī)就會(huì)執(zhí)行其所對(duì)應(yīng)的語句塊,且每個(gè)分支最多只能執(zhí)行一次,這是分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)最大的區(qū)別。典例4 用Python算法控制結(jié)構(gòu)描述排隊(duì)時(shí)間小于15分鐘為“通暢”;大于等于15分鐘且小于等于30分鐘為“忙碌”;大于30分鐘為“擁擠”。設(shè)t為排隊(duì)時(shí)間(單位:分鐘)、zt為采樣點(diǎn)的狀態(tài),下列選項(xiàng)不正確的是( )A.if t>30:zt='擁擠'elif t>=15:zt='忙碌'elif t>=0:zt='通暢'B.if t>30:zt='擁擠'elif t<=30:zt='忙碌'elif t<15:zt='通暢'BC.if t>=0:if t<15:zt='通暢'elif t<=30:zt='忙碌'else:zt='擁擠'D.if t<=30:if t>=15:zt='忙碌'elif t>=0:zt='通暢'else:zt='擁擠'解析 本題考查分支語句知識(shí)。選項(xiàng)B中第2個(gè)條件“t<=30”包含了小于15的情況,和第3個(gè)條件有重疊,若輸入10,則第二個(gè)分支優(yōu)先執(zhí)行,這樣zt='忙碌',而此時(shí)正確結(jié)果應(yīng)該是zt='通暢'。典例5 (2023浙江6月選考)已排序的列表a有n個(gè)整型元素,現(xiàn)要查找出現(xiàn)次數(shù)最多的值并輸出。若出現(xiàn)次數(shù)最多的值有多個(gè),則輸出最前面的一個(gè)。實(shí)現(xiàn)該功能的程序段如下,方框中應(yīng)填入的正確代碼為( )c,m,v=1,1,0for i in range(1,n):________print(a[v])AA.if a[i]==a[i-1]:c+=1if c>m:m=cv=ielse:c=1B.if a[i]==a[i-1]:c+=1if c>m:m=cv=ielse:c=1C.if a[i]==a[i-1]:c+=1else:if c>m:m=cv=i-1c=1D.if a[i]==a[i-1]:c+=1else:if c>m:m=cv=i-1c=1解析 本題考查枚舉算法及if語句的邏輯結(jié)構(gòu)知識(shí)。由于列表a已經(jīng)實(shí)現(xiàn)有序,因此數(shù)值相同的數(shù)都是相鄰的,這樣統(tǒng)計(jì)數(shù)值相同的數(shù)可以簡(jiǎn)化為相鄰兩個(gè)數(shù)的檢查,其實(shí)現(xiàn)的代碼是判斷a[i]是否和a[i-1]相同即可。變量c用于統(tǒng)計(jì)相同數(shù)的數(shù)量,m用于記錄相同數(shù)的最大數(shù)量,而變量v用于記錄出現(xiàn)次數(shù)最多的數(shù)在列表a中的位置。其算法思想是:若相鄰兩個(gè)數(shù)相等,則計(jì)數(shù)器c加1,否則應(yīng)該將c變?yōu)槌踔?,首先可以排除選項(xiàng)B,因?yàn)樵撨x項(xiàng)中else分支不符合邏輯。選項(xiàng)CD都存在缺陷,例如最多的一組相同的數(shù)出現(xiàn)在列表的最后時(shí),均不能準(zhǔn)確統(tǒng)計(jì)結(jié)果。例如a=[2,3,3,3,4,4,4,4],此時(shí)輸出值為3,但正確結(jié)果應(yīng)該為4。選項(xiàng)A邏輯結(jié)構(gòu)合理,故選A。典例6 (2023浙江6月選考)某倉庫有一排連續(xù)相鄰的貨位,編號(hào)依次為0~n-1,用于放置A、B兩種類型的箱子,A型箱子占2個(gè)相鄰貨位,B型箱子占1個(gè)貨位。編寫程序,根據(jù)已完成的放置或搬離操作,輸出空貨位數(shù)及還可以放置A型箱子的最大數(shù)量(不移動(dòng)已放置的箱子)。請(qǐng)回答下列問題:箱子類型 操作類型 貨位編號(hào)B 放置 5A 放置 2,3B 放置 0A 放置 7,8A 搬離 2,3(1)若n為10,開始時(shí)貨位全空,經(jīng)過如圖所示的放置或搬離操作后,不移動(dòng)已放置箱子的情況下,還可放置A型箱子的最大數(shù)量為______個(gè)。2(2)實(shí)現(xiàn)上述功能的部分Python程序如下,請(qǐng)?jiān)趧澗€處填入合適的代碼。#讀取貨位總數(shù),存入n,代碼略。cnt1=nlst=[0] n #貨位狀態(tài),0表示對(duì)應(yīng)的貨位為空while True:#讀取本次已操作的數(shù)據(jù):箱子類型、操作類型、貨位編號(hào)起始值,存入t、d和s,代碼略if t=='A':w=2①________________: w=1else: #t不是'A'或'B'時(shí)退出循環(huán)breakif d =='P': #d為P時(shí)表示放置,否則表示搬離elif t=='B' ②_______________________else:cnt1+=wlst[s]=1-lst[s]if t=='A':lst[s+1]=1-lst[s+1]i,cnt2=0,0while iif lst[i]==0 and lst[i+1]==0: ③________________ cnt2+=1i+=1print('當(dāng)前空貨位數(shù):',cnt1,',還可放置A型箱子的最多數(shù)量:',cnt2)cntl-=w(或cntl=cntl-w)i+=1(或i=i+1)解析 本題考查Python編程基礎(chǔ)及解決實(shí)際問題的能力。(1)10個(gè)空位放置情況如下:由于A型箱一個(gè)要占2個(gè)相鄰貨位,因此最多可放2個(gè)A型箱子。(2)①從初始cnt1=n可以看出,cnt1是空貨位數(shù)量。再根據(jù)if語句第一個(gè)分支:t=='A'時(shí),w=2可知,當(dāng)t=='B'時(shí),搬離數(shù)量應(yīng)為1,故①處填:elif t=='B'。②d=='P'時(shí)表示放置,否則表示搬離。而搬離時(shí)cnt1+=w,w變量為應(yīng)搬離的數(shù)量,搬離時(shí)空位加w,則放置時(shí)空位減w,故此處填:cnt1-=w。③由代碼可知,統(tǒng)計(jì)連續(xù)兩個(gè)空位的個(gè)數(shù),統(tǒng)計(jì)完后指針i要向后跳2,故③處填:i+=1。 展開更多...... 收起↑ 資源預(yù)覽 縮略圖、資源來源于二一教育資源庫