作者teslare (每次下中华队都输...orz)
看板C_Sharp
标题Re: [问题] 我想做个能先计算括号及乘除的计算机
时间Sun Sep 14 23:10:11 2008
※ 引述《hatasum (我很可爱)》之铭言:
: 假设题目是这样
: 12+3*5-(25-6*( 12-5)+5-(7-2*3))-11
: 我的想法是
: 一个矩阵存数字
: [12, 3, 5, 25, 6, 12, 5, 5, 7, 2, 3, 11]
: 一个矩阵存+-*/ 其中 +:1 -:2 *:3 /:4
: [1 3 2 2 3 2 1 2 2 3 2]===>if 值>2 ,先算;
: 一个矩阵存()
: [3 5 -7 8 -11 -11]
: 正数代表"(" 负数代表")"
: 其中3代表第4个数字前面有(
: 所以-7代表第8个数字前面有")"
: ps:其实应该再把[3 5 -7 8 -11 -11]转成[8 -11][5 -7][3 -11]
: 然後按下"等於"
: 就把答案依照这三个矩阵算出来
: 目前我正在研究这个的逻辑...XD我感觉有点复杂
: 但是觉得这题目还满有趣的 所以提供出来 大家空闲时可以想想
: ps:这不是我的作业...只是突然想到这有趣的题目...XD
这个问题简单讲就是要实作具有operator precedence特徵的计算机
实作:用lex + yacc
研究:请参阅compiler课本
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.160.182.60