[分享] 計算機程式

看板C_and_CPP作者 (平凡是幸福)時間11年前 (2015/02/02 11:28), 編輯推噓10(10012)
留言22則, 12人參與, 最新討論串1/2 (看更多)
小弟新手最近剛開始入門程式 學C語言 之前想到寫計算機程式 要怎麼輸入算式 做加減乘除 一開始還在想要怎麼判讀算式裡面字串中有哪些數字與算符 再用switch case去分類運算 不過這樣搞得好像很複雜.... 明明程式裡面 變數賦值等號後面就可以簡單做運算 要怎麼把輸入的算式編到程式裡??? 後來看到某個網站 原來有這樣搞法.... 用fprintf先產生一個臨時的.c原始碼檔 把算式當成參數寫進去... 然後用system系統指令編譯這臨時.c檔並執行 ....原來可以這麼簡單orz 想了好幾天的迷惑終於解開了 也分享給跟我想一樣問題的新手... http://ideone.com/TMgjSC (參考範例) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 182.234.129.24 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1422847728.A.CA1.html

02/02 11:34, , 1F
然後遇到沒裝gcc的電腦就爆了
02/02 11:34, 1F

02/02 11:48, , 2F
把GCC一起編進去(選我正解
02/02 11:48, 2F

02/02 11:51, , 3F
要這樣玩,直接用Python的eval()就搞定,不是更快?
02/02 11:51, 3F

02/02 11:53, , 4F
還沒學到Python 剛碰程式的新手留...
02/02 11:53, 4F

02/02 12:02, , 5F
你說的 "明明...簡單做運算" 的東西就是這麼不簡單...
02/02 12:02, 5F

02/02 12:08, , 6F
1.真的要寫這樣的功能非常不簡單
02/02 12:08, 6F

02/02 12:08, , 7F
2.這種偷吃步的方法其實對任何人幫助都不大
02/02 12:08, 7F

02/02 12:08, , 8F
真的有興趣就看bc這個指令的原始碼
02/02 12:08, 8F

02/02 12:10, , 9F
還有計算機功能不是簡單的事 扯到資料結構前中後序
02/02 12:10, 9F

02/02 12:21, , 10F
感謝樓上 我研究看看
02/02 12:21, 10F

02/02 13:40, , 11F
還需要一點lexer的技巧
02/02 13:40, 11F

02/02 14:40, , 12F
前中後序真的神煩, 一般入門應該最多只會教到 RPN 計算
02/02 14:40, 12F

02/02 14:51, , 13F
我用 BASIC 寫過一次,Google 中序轉後序運算式求值
02/02 14:51, 13F

02/02 14:58, , 14F
還沒學到python咧 你有可能學四年都學不到
02/02 14:58, 14F

02/02 15:10, , 15F
感謝樓上前輩們的關鍵字 這真的有很多東西得學...
02/02 15:10, 15F

02/03 21:37, , 16F
我專案沒碰到 python 的話這輩子大概也不會碰了吧 Orz
02/03 21:37, 16F

02/09 15:25, , 17F
我自己系上寫過一個 後序計算機是最直觀最好寫的
02/09 15:25, 17F

02/09 15:25, , 18F
但是要的背景知識稍閒深了點
02/09 15:25, 18F

02/09 15:27, , 19F
但其實實作計算機也有不用資結的方法 想法大概是
02/09 15:27, 19F

02/09 15:32, , 20F
a + b * c / d - e 先寫出abcde string to number
02/09 15:32, 20F

02/09 15:33, , 21F
然後掌握先乘除後加減
02/09 15:33, 21F

02/09 15:37, , 22F
OOPS我好像搞錯性質了 以為單純疑問 當我沒說話=p
02/09 15:37, 22F
文章代碼(AID): #1KpkxmoX (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1KpkxmoX (C_and_CPP)