30/09/2018, 16:47
Hỏi cách đọc biểu thức toán học đơn giản từ file
Như tiêu đề, các anh( chị) cho em xin ý tưởng:
Giả sử x = 1
5*x+3 => 8
5x+3 => 8
5(x+3) => 20
Em cảm ơn!
Bài liên quan
Như tiêu đề, các anh( chị) cho em xin ý tưởng:
Giả sử x = 1
5*x+3 => 8
5x+3 => 8
5(x+3) => 20
Em cảm ơn!
lưu cách biểu thức toán học cơ bản lại như
+ - * /
lại. Sau đó khi đọc file lên thì lưu vào string(hoặc array nếu dùng C). Sau đó tách chuỗi đó sử dụng các toán tử trên. Thế là mình có được các phép toán rồi. Hồi trước có học cái balan ngược hay cái gì có nói về việc phân tích một phép toán.Kí số Balan , tiêu biểu cho stack(hình như thế)
quy tắc là do bạn đặt ra. Nếu bạn theo chuẩn thì khá dễ thôi.
Bạn phải định nghĩa từng ký tự nó có chức năng gì. Ngoài ra phải tách các expressions ra theo từng dòng và xử lý nó.
VD: 0-9 là số và theo sau nó hoặc trước nó là 1 số thì mình sẽ đọc cả, còn nếu theo sau hoặc trước nó là 1 ký tự khác thì mình tách nó thành 1 số.
±*/%…: bạn định nghĩa nó là biểu thức toán học.
(): Cái này bạn phải bắt vì nó có liên quan đến độ ưu tiên khi tính toán.
…
Đó là những điều cơ bản b ạn cần biết để parse content trong data file để xử lý tính toán.
P/s: Còn nếu bạn sử dụng theo chuẩn của bạn VD như phép nhân thì dùng ký tự “x” thì bạn phải làm theo thôi.
Dữ liệu input theo khuôn mẫu như tiêu đề trên, nhưng giả sử giá trị là 12,34, lúc này chuỗi là “12,34”, làm sao để lấy giá trị 12,34 được ạ