我需要製作一個java程序,用於評估輸入文件中的表達式並將結果返回到輸出文件中。它需要考慮運算符優先級,一元運算符和二元運算符,括號匹配,並且只能依賴遞歸(沒有堆棧或隊列)。如何用遞歸創建Java算術計算器
我一直在想這個整夜,它讓我感到沮喪。我並沒有要求爲我編寫完整的java程序。我只需要一些指導。我開始寫一些僞代碼,但我不認爲它是好的:
輸入:從中讀取每個表達式的文本文件。 輸出:重複每個表達式以及打印結果的文本文件。
Algorithm SecondCalc()
{
input = 「expressions.txt」;
output = 「out.txt」;
if (input.currentLine has something)
{
line = input.currentLine;
output.write(line);
line = line.replace(「-space-」, 「」);
evaluate(line);
//...to be continued
}
}
Algorithm evaluate(line)
{
for(i = 0 to line.length)
{
if(i == 「(」 or 「)」) exit loop;
if(i == 「!」) exit loop;
if(i == 「^」) exit loop;
if(i == 「*」 or 「/」) exit loop;
if(i == 「+」 or 「-」) exit loop;
if(i == 「>」 or 「>=」 or 「<」 or 「<=」) exit loop;
if(i == 「==」 or 「!=」) exit loop;
if(i == 「$」) exit loop;
}
temp1 = line from index 0 to i;
temp2 = line from index i + 1 to line.length;
if(i == 「!」) then evaulate(temp1!);
//...to be continued
}
任何提示將不勝感激。謝謝。