Mã thông báo được định nghĩa theo cách tương tự như 1. phiên bản x. Bạn có thể tham khảo tệp thử nghiệm trên các ví dụ về cách thêm mã thông báo. Vì gói này tương thích với TS nên bạn sẽ nhận được tính năng tự động hoàn tất vào ngày
bower install math-expression-evaluator
0Thêm mã thông báo bằng phương thức addToken của đối tượng mexp
const mexp = new Mexp[]
mexp.addToken[[token1, token2]] // tokens once added will be preserved in later evaluations
Thêm mã thông báo bằng phương thức eval của đối tượng mexp
const mexp = new Mexp[]
mexp.eval["expression", [token1, token2]] // tokens once added will be preserved in later evaluations
Thêm mã thông báo bằng cách sử dụng các thành phần của phương thức eval của đối tượng mexp
const mexp = new Mexp[]
const answer = mexp.postfixEval[mexp.toPostfix[mexp.lexed["expression", [token1, token2]]]] // tokens once added will be preserved in later evaluations
console.log[answer]
Làm thế nào để chạy thử nghiệm
npm test
Biểu tượng được hỗ trợ
Giải thích biểu tượng + Toán tử bổ sung, vd. 2+3 kết quả Toán tử trừ 5, vd. 2-3 kết quả -1/ Toán tử chia ví dụ 3/2 kết quả 1. Toán tử nhân 5*, vd. 2*3 kết quả Toán tử 6ModModulus, vd. 3 Mod 2 kết quả 1[Mở ngoặc đơn]Đóng ngoặc đơn&Bitwise AND vd. 3&1 kết quả 1SigmaSummation ví dụ. Kết quả Sigma[1.100,n] 5050PiProduct ví dụ. Kết quả Pi[1,10,n] 3628800nVariable cho Summation hoặc ProductpiMath hằng số pi trả về 3. 14eMath hằng số e trả về 2. Toán tử kết hợp 71C chẳng hạn. 4C2 trả về toán tử 6PPermutation, vd. 4P2 trả về 12. toán tử giai thừa, vd. 4. trả về hàm 24loglogarit với cơ số 10, vd. log 1000 trả về 3lnhàm log tự nhiên với cơ số e, vd. ln 2 trả về. Hàm 3010powpower với hai toán tử pow[2,3] trả về toán tử 8^power, vd. 2^3 trả về 8rootunderroot function root 4 trả về 2sinHàm sin cosHàm CosinetanHàm tiếp tuyếnasinHàm nghịch đảo sin acosHàm nghịch đảo CosineatanHàm nghịch đảoSinhHàm sin hyperboliccoshHàm hyperbolic costanhHàm tiếp tuyến hyperbolic asinhHàm sin hyperbolic nghịch đảoacoshHàm nghịch đảo Hyperbolic TangentHàm hyperbolic tangentĐặc trưng
Hỗ trợ tuyệt vời cho Sigma và Pi
Đây là một tính năng tuyệt vời của máy tính này mà nó có khả năng đánh giá các biểu thức có chứa Sigma và Pi. Vượt qua
bower install math-expression-evaluator
1 sẽ có giá trị là 5050 vì n được tính tổng từ 1 đến 100. và Pi[1,15,n] sẽ đánh giá là 1307674368000 khi n được nhân từ 1 đến 15 bằng 15Dấu ngoặc đơn bớt biểu thức
Nếu một biểu thức có thể đọc được bởi con người thì nó có thể được đọc bởi người đánh giá này. Không cần phải bọc mọi chức năng bên trong dấu ngoặc đơn. ví dụ. sin90 sẽ hoạt động hoàn toàn tốt thay vì sin[90]
fparser cung cấp một lớp Công thức để phân tích các chuỗi chứa các công thức toán học [e. g.
// As node module: Install: $ npm install --save fparser Use: const Formula = require['fparser']; or: import Formula from 'fparser';1] thành một đối tượng có thể đánh giá. Sau đó, người ta có thể cung cấp các giá trị cho tất cả các biến/hàm chưa biết và đánh giá một giá trị số từ công thức
Đối với một ứng dụng ví dụ, xem https. //fparser. alexi. ch/
Đặc trưng
Phân tích một công thức toán học từ một chuỗi. biểu thức đã biết
- Các số ở dạng [-]chữ số[. chữ số], e. g. "-133. 2945"
- toán tử đơn giản. '+','-','*','/', '^' được mở rộng theo đúng thứ tự
- dấu ngoặc đơn '[', ']' để nhóm [e. g. "5*[3+2]"]
- tất cả các hàm đối tượng JavaScript Math [e. g. "tội lỗi [3. 14]"]
- tất cả các hằng số Toán học JavaScript như PI, E
- việc sử dụng các chức năng riêng
- việc sử dụng các biến ký tự đơn [như '2x']
- việc sử dụng các biến được đặt tên [như '2*[myVar]']
- ghi nhớ. lưu trữ các kết quả đã được đánh giá để tính toán lại nhanh hơn
- sử dụng nó trong các trang Web, dưới dạng mô-đun ES6 hoặc mô-đun NodeJS
- Ví dụ.
______62
Cách sử dụng
________số 8
// As node module: Install: $ npm install --save fparser Use: const Formula = require['fparser']; or: import Formula from 'fparser';
const mexp = new Mexp[]
mexp.addToken[[token1, token2]] // tokens once added will be preserved in later evaluations
0Lựa chọn khác
Sử dụng nhiều biến
const mexp = new Mexp[]
mexp.addToken[[token1, token2]] // tokens once added will be preserved in later evaluations
1Sử dụng các biến được đặt tên
Thay vì các biến ký tự đơn [như
// As node module: Install: $ npm install --save fparser Use: const Formula = require['fparser']; or: import Formula from 'fparser';3], bạn cũng có thể sử dụng các biến được đặt tên trong ngoặc đơn
const mexp = new Mexp[]
mexp.addToken[[token1, token2]] // tokens once added will be preserved in later evaluations
3Sử dụng các hàm do người dùng định nghĩa
const mexp = new Mexp[]
mexp.addToken[[token1, token2]] // tokens once added will be preserved in later evaluations
4Sử dụng lại một đối tượng Công thức
Bạn có thể khởi tạo một đối tượng Công thức không có công thức và đặt nó sau, thậm chí sử dụng lại đối tượng hiện có
const mexp = new Mexp[]
mexp.addToken[[token1, token2]] // tokens once added will be preserved in later evaluations
5ghi nhớ
Để tránh tính toán lại các kết quả đã được đánh giá, đối tượng trình phân tích cú pháp công thức hỗ trợ tính năng ghi nhớ. nó lưu trữ các kết quả đã được đánh giá cho các tham số biểu thức đã cho
Ví dụ
const mexp = new Mexp[]
mexp.addToken[[token1, token2]] // tokens once added will be preserved in later evaluations
6Bạn có thể bật/tắt tính năng ghi nhớ trên đối tượng
const mexp = new Mexp[]
mexp.addToken[[token1, token2]] // tokens once added will be preserved in later evaluations
7Nhận tất cả các biến đã sử dụng
const mexp = new Mexp[]
mexp.addToken[[token1, token2]] // tokens once added will be preserved in later evaluations
8Nhận chuỗi công thức được phân tích cú pháp
Sau khi phân tích cú pháp, lấy chuỗi công thức dưới dạng phân tích cú pháp
// As node module: Install: $ npm install --save fparser Use: const Formula = require['fparser']; or: import Formula from 'fparser';0
Nhật ký thay đổi
2. 0. 2
- Khắc phục sự cố #22. Nếu công thức bắt đầu với một biến phủ định duy nhất [e. g.
// As node module: Install: $ npm install --save fparser Use: const Formula = require['fparser']; or: import Formula from 'fparser';
4], trình phân tích cú pháp bị nhầm lẫn
2. 0. 0
Bản phát hành này là một vamp hoàn chỉnh, xem bên dưới. nó phải hoàn toàn tương thích ngược với 1. x, nhưng tôi đã không kiểm tra tất cả các trường hợp biên