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!

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.

2 Likes

Kí số Balan :smiley: , tiêu biểu cho stack(hình như thế)

3 Likes

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. :sunglasses:

1 Like

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 ạ

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?