菁于教,優(yōu)于學(xué)
旗下產(chǎn)品
校本題庫(kù)
菁優(yōu)備課
開(kāi)放平臺(tái)
菁優(yōu)測(cè)評(píng)
菁優(yōu)公式
小優(yōu)同學(xué)
菁優(yōu)App
數(shù)字備考
充值服務(wù)
試卷征集
申請(qǐng)校本題庫(kù)
智能組卷
錯(cuò)題庫(kù)
五大核心功能
組卷功能
資源共享
在線作業(yè)
在線測(cè)評(píng)
試卷加工
游客模式
登錄
試題
試題
試卷
課件
試卷征集
加入會(huì)員
操作視頻
高中信息
小學(xué)
數(shù)學(xué)
語(yǔ)文
英語(yǔ)
奧數(shù)
科學(xué)
道德與法治
初中
數(shù)學(xué)
物理
化學(xué)
生物
地理
語(yǔ)文
英語(yǔ)
道德與法治
歷史
科學(xué)
信息技術(shù)
高中
數(shù)學(xué)
物理
化學(xué)
生物
地理
語(yǔ)文
英語(yǔ)
政治
歷史
信息
通用
中職
數(shù)學(xué)
語(yǔ)文
英語(yǔ)
推薦
章節(jié)挑題
知識(shí)點(diǎn)挑題
智能挑題
收藏挑題
試卷中心
匯編專輯
細(xì)目表組卷
組卷圈
當(dāng)前位置:
2021-2022學(xué)年浙江省臺(tái)州市八校聯(lián)考高二(下)期末信息技術(shù)試卷
>
試題詳情
為四則運(yùn)算式“6+(8-2)*2÷3”轉(zhuǎn)逆波蘭表達(dá)“682-2*3÷+”設(shè)計(jì)算法,編程實(shí)現(xiàn)。
分析:在數(shù)學(xué)運(yùn)算表達(dá)式中,運(yùn)算符總是置于與之相關(guān)的兩個(gè)運(yùn)算對(duì)象之間,在計(jì)算結(jié)果時(shí),要考慮括號(hào)、運(yùn)算符號(hào)的優(yōu)先性。為了程序?qū)崿F(xiàn)的方便,波蘭邏輯學(xué)家J.Lukasiewicz提出了另一種表示法,將運(yùn)算符置于其運(yùn)算對(duì)象之后,沒(méi)有括號(hào),不用考慮運(yùn)算符號(hào)的優(yōu)先性。這種表達(dá)式稱為后綴表達(dá)式,又叫逆波蘭表達(dá)式。
如表達(dá)式“682-2*3÷+”是四則運(yùn)算式“6+(8-2)*2÷3”的逆波蘭表達(dá)式。為了處理方便,規(guī)定表達(dá)式中的數(shù)均為小于10的正整數(shù),運(yùn)算符為+、-、*、÷。
(1)抽象建模
設(shè)計(jì)兩個(gè)棧bds、fh,棧bds用來(lái)存放表達(dá)式,棧fh用來(lái)暫時(shí)存放運(yùn)算符。從左往右掃描四則運(yùn)算式,遇到數(shù)字時(shí),入棧bds;遇到運(yùn)算符號(hào)時(shí),根據(jù)運(yùn)算符號(hào)的優(yōu)先級(jí)設(shè)計(jì)進(jìn)棧與出棧。
四則運(yùn)算式“6+(8-2)*2÷3”轉(zhuǎn)換規(guī)則的模擬過(guò)程如表所示:
結(jié)合表格的操作過(guò)程,用棧bds和棧fh記錄每個(gè)操作后的棧內(nèi)情況(見(jiàn)圖),那么在操作2中棧fh里有內(nèi)容為
+(-
+(-
(請(qǐng)從棧底到棧頂順序書(shū)寫(xiě))。
(2)設(shè)計(jì)算法
基于問(wèn)題的抽象與建模,解決該問(wèn)題的主要算法描述如下:
從左往右遍歷四則運(yùn)算式s(設(shè)中間變量為ch):
1)當(dāng)ch是數(shù)字,直接入棧bds;
2)當(dāng)ch是運(yùn)算符:
a.若ch為左括號(hào)時(shí),直接入棧fh;
b.若ch為右括號(hào)時(shí),則將棧fh元素彈出,壓入棧bds,直到遇到左括號(hào)(左括號(hào)只
彈出,不壓入棧bds);
c.若ch為其它運(yùn)算符時(shí),如果運(yùn)算符ch優(yōu)先級(jí)大于棧fh中棧頂元素的優(yōu)先級(jí)(或棧fh為空),直接入棧fh;否則,將棧fh元素依次彈出,并壓入棧bds,直到運(yùn)算符ch優(yōu)先級(jí)大于棧fh中棧頂元素的優(yōu)先級(jí)(或棧fh為空);
3)將棧bds中元素依次出棧,即為該四則運(yùn)算s的后綴表達(dá)式。
(3)編寫(xiě)程序
實(shí)現(xiàn)上述功能的Python代碼如下,請(qǐng)?jiān)跈M線處填入合適代碼。
【考點(diǎn)】
棧的應(yīng)用
.
【答案】
+(-
【解答】
【點(diǎn)評(píng)】
聲明:本試題解析著作權(quán)屬菁優(yōu)網(wǎng)所有,未經(jīng)書(shū)面同意,不得復(fù)制發(fā)布。
當(dāng)前模式為游客模式,
立即登錄
查看試卷全部?jī)?nèi)容及下載
發(fā)布:2024/4/20 14:35:0
組卷:16
引用:2
難度:0.3
相似題
1.
棧s的最大長(zhǎng)度為3,初始為空,經(jīng)過(guò)一系列入棧、出棧操作,若元素入棧的順序是a,b,c,d,e,f,則可能的出棧序列為( )
A.f,e,d,c,b,a
B.c,b,a,f,e,d
C.c,a,b,d,e,f
D.c,e,d,b,a,f
發(fā)布:2024/5/30 8:0:9
組卷:12
引用:1
難度:0.5
解析
2.
為四則運(yùn)算式轉(zhuǎn)后綴表達(dá)式設(shè)計(jì)算法:
如:6+(8-2)*2/3轉(zhuǎn)換后結(jié)果為:6 8 2-2*3/+
①用棧來(lái)存儲(chǔ)運(yùn)算符號(hào),從左往右掃描四則運(yùn)算式,遇到數(shù)字直接輸出
②若棧為空或當(dāng)前運(yùn)算符號(hào)為“(“時(shí),入棧
③若棧非空:當(dāng)棧頂為“(“則當(dāng)前運(yùn)算符入棧;否則比較優(yōu)先級(jí),當(dāng)前運(yùn)算符大于棧頂元素則入棧,否則棧頂元素出棧輸出,直至棧頂元素小于或等于當(dāng)前運(yùn)算符,當(dāng)前運(yùn)算符入棧
④遇到右括號(hào)時(shí),則棧頂元素依次出棧輸出,直至遇到左括號(hào),左括號(hào)出棧但不輸出;
(1)四則運(yùn)算式2*6+(3+2)/3轉(zhuǎn)后綴表達(dá)式結(jié)果為:
。
(2)實(shí)現(xiàn)上述功能的程序如下,請(qǐng)?jiān)跈M線處填入合適的代碼。
發(fā)布:2024/6/27 10:35:59
組卷:13
引用:1
難度:0.4
解析
3.
設(shè)棧S和隊(duì)列Q的初始狀態(tài)為空,元素按e1,e2,e3,e4,e5,e6的順序依次通過(guò)棧S后進(jìn)入隊(duì)列Q。若隊(duì)列Q中的元素依次e2,e4,e3,e6,e5,e1,則棧S的容量至少為( )
A.6
B.4
C.3
D.2
發(fā)布:2024/11/6 7:30:1
組卷:5
引用:5
難度:0.5
解析
把好題分享給你的好友吧~~
商務(wù)合作
服務(wù)條款
走進(jìn)菁優(yōu)
幫助中心
兼職招聘
意見(jiàn)反饋
深圳市菁優(yōu)智慧教育股份有限公司
粵ICP備10006842號(hào)
公網(wǎng)安備44030502001846號(hào)
?2010-2024 jyeoo.com 版權(quán)所有
深圳市市場(chǎng)監(jiān)管
主體身份認(rèn)證
APP開(kāi)發(fā)者:深圳市菁優(yōu)智慧教育股份有限公司 | 應(yīng)用名稱:菁優(yōu)網(wǎng) | 應(yīng)用版本:4.8.2 |
隱私協(xié)議
第三方SDK
用戶服務(wù)條款
廣播電視節(jié)目制作經(jīng)營(yíng)許可證
出版物經(jīng)營(yíng)許可證
網(wǎng)站地圖
本網(wǎng)部分資源來(lái)源于會(huì)員上傳,除本網(wǎng)組織的資源外,版權(quán)歸原作者所有,如有侵犯版權(quán),請(qǐng)立刻和本網(wǎng)聯(lián)系并提供證據(jù),本網(wǎng)將在三個(gè)工作日內(nèi)改正