第四次課程作業

2022-09-13 18:30:14 字數 1306 閱讀 6506

可以劃分為兩個類,乙個是計算類,乙個是生成類。

生成類:

計算類:

生成類生成算式傳遞給計算類計算。生成類中的classone以及classtwo給計算類傳送訊息。生成類持有計算類的引用。

之前的演算法很暴力,就是已經知道算式的型別就直接計算了,前幾天樂忠豪同學跟我提及了字尾表示式計算算式,搜尋了下,獲益良多,我用了新的演算法。

我建立兩個棧 乙個放數字 numstack,乙個放字元 operatorstack.首先掃瞄字串,如果是數字,則放入numstack中,如果是+或者-放入operatorstack中,如果是*或者/,讀取numstack棧頂的數值以及*或/後面的數值相乘或除放入numstack棧頂。例如

3+5*6-7處理完後的棧

宣告一result=0,

operatorstack棧頂為-,那麼numstack棧頂的值為負,result-7,然後operatorstack為+ ,result+30,然後operatorstack沒有值了 numstack還有值,就result+3,最終的result的值為26,既正確答案。

再來乙個例子 (4+2)*(5-3)

若是有括號,左括號入棧,按照以上步驟直到右括號,右括號不入棧,遇到右括號,返回查詢operatorstack,直到遇到左括號,計算括號內的值,放入numstack中(此題*後面是括號不是數字,應把*放入棧中,當處理棧時遇到*時提取numstack中的兩個值進行計算,/同理,但要注意次序,棧頂為除數,棧頂下乙個為被除數)

處理括號

處理*號

處理結果

每個formula掃瞄完後處理兩個棧中的剩餘的值,結果既算式的值。用棧計算很方便,不再只侷限於某種型別的算式,這種方法可以應用於各型別的算式,而且還可以在原來的基礎上計算多位數的算式,甚至小數的算式。

第四次課程

偵錯程式 gdb gun計畫的工具 核心除錯kgdb 程式的錯誤分類 編譯時錯誤 語法錯誤 執行時錯誤 記憶體問題,邏輯問題 gdb的功能 1.執行程式 2.設定斷點 3.檢視變數的值 hello.c gcc g hello.c o hello gdb hello 使用 tui layout asm...

第四次作業

扎ogu 典型產品 最高傳輸速率 ieee 802.11a wi fi5 802.11a 43m 450 zyxel p334u 54mbps 1500 zyxel p335u 54mbps 1600 ieee 802.11b d link di 624 a 54mbps 215 linksys w...

第四次作業

作業題一 vs2012 rc在介面上,比beta版更容易使用,彩色的圖示和按照開發 執行 除錯等環境區分的顏色方案讓人愛不釋手。vs2012整合了asp.net mvc 4,全面支援移動和html5,wf 4.5相比wf 4,更加成熟,期待已久的狀態極工作流回來了,更棒的是,現在它的設計器已經支援c...