C 程式語言 特別版 乙個桌面計算器

2022-07-29 07:27:08 字數 1600 閱讀 1747

program:

endexpr_list end //end表示輸入結束

expr_list:

expression print // print表示分號

expression print expr_list

expression:

expression + term

expression - term

term

term:

term / primary

term * primary

primary

primary:

number

name

name = expression

- primary

(expression)

#include#include#include#includeusing namespace std;

// 將token用他們的字元所對應的整數表示,這樣做既方便有效,

// 又能幫助使用排錯系統的人。

enum token_value ;

token_value curr_tok = print;

double expr(bool);

double term(bool);

double prim(bool);

token_value get_token();

double error(const string&);

map table;

int no_of_errors;

int main()

return no_of_errors;

}// 每個分析器都有乙個bool引數,

// 指明該函式是否需要呼叫get_token()去取得下乙個引數

// expr處理加減,一直到不是加減返回left

double expr(bool get)

}}// 函式term處理乘除,採用的方式與expr()處理方法一樣

double term(bool get)

return error("divide by 0");

default:

return left;}}

}double number_value;

string string_value;

// prim處理初等項的方式很像expr和term

double prim(bool get)

case name:

case minus:

return -prim(true);

case lp:

default:

return error("primary expected");

}}token_value get_token() while(ch != '\n' && isspace(ch));

switch(ch)

error("bad token");

return curr_tok = print;

}}double error(const string& s)

C 程式語言(特別版)感悟

c 語言學習 第一部分 導論 從c語言學習的人來學習c 語言,在寫c 程式時,就很難丟掉c語言的風格,這樣就會因此丟到c 語言的一些潛在的優勢。在這裡列舉出c 和c語言的幾點 風格差別之處。1 在c 風格程式中,很少使用巨集定義。用const或者enum定義明顯的常量,用inline避免函式呼叫的額...

《C 程式語言》(特別版)第四章答案

1.2 讓 hello,world 程式執行。如果程式無法按所寫的形式執行,請看b.3.1節 include using namespace std int main 2.1 對於4.9節的每個宣告做下面的事情 如果該宣告不是乙個定義,請為它寫乙個定義。如果該宣告時乙個定義,請改寫,使它成為不是定義...

乙個計算器的C語言實現

今天在讀 編譯原理及實踐 時。看到了乙個簡單的整數計算器的實現。依照書上的思路,我略微進行了擴充套件 1 從整數計算器擴充套件到小數計算器。2 支援除法 3 支援空字元。執行效果例如以下 非常easy,例如以下 cal.c include include char token double exp ...