Lớp JFrame trong java

cho mình hỏi chút với Ạ. Mình có làm app vẽ đồ thị hàm số bằng java, mình tạo 1 class vẽ đồ thị, 1 hàm main, mình định tạo 2 textfield là tử số và mẫu số để nhập 2 hàm cần vẽ (ví dụ như x^2-x+1) và 1 button vẽ đồ thị, nhưng mình không biết làm cách nào để cái textfield hiểu được hàm mà mình muốn nhập sau đó vẽ ra đồ thị mà mình mong muốn. cũng không biết làm cách nào để add các class vào trong Jframe để tạo giao diện. ai giúp mình với ạ?

Tạo sao jTextfield lại là thứ phải “hiểu” được hàm đó?? Bạn giải thích nghe khó hiểu quá. Chỉ đơn giản là bạn muốn nhấn vào cái Button thì vẽ ra đồ thị đúng không? Vậy thì thêm Click Event vào cái Button đó thôi.


Dùng hàm add trong Jframe. Bạn nên tìm hiểu lại rõ hơn ở Google.

2 Likes

Vì mình định dùng cái textfiled để nhập hàm mình muốn vẽ ấy. Vậy nên nó phải hiểu được cái t nhập thì mới vẽ được chứ nhỉ? Vì đồ thị mình vẽ có dạng tổng quát: (đa thức mũ m)/ (đa thức mũ n) (là đồ thị của hàm phân thức ấy)

Có thuê làm hộ bài tập không vậy bạn ?

1 Like

Mình nghĩ trước hết bạn nên học lập trình Java Swing hay JFX trước khi làm ứng dụng của bạn.

Mình đã từng làm qua ứng dụng tương tự. Ý tưởng là cho người dùng nhập hàm dưới dạng string. Sau đó dùng một parser để đổi nó về hàm toán học. apply hàm đó cho x chạy rồi vẽ các điểm đó ra canvas

2 Likes

mình có thuê người làm hộ bài này nữa ạ

vâng. cảm ơn bạn nhé. mình không có nhiều thời gian, nên tạm thời không thể học hết được tất cả java swing vì mình sắp phải nộp bài này rồi

Bạn có thể cho biết thêm giới hạn function là gì không? polynomial (đa thức), rational (phân thức), algebraic, trigonometric (lượng giác), transcendental (mũ, logarithmic).

2 Likes

là đa thức bạn ạ, ví dụ như x^3-x^2+x. kiểu như này ạ, chứ mình không cho nhập luôn dạng phân thức, mình tách riêng luôn thành tử số và mẫu số

Đa thức thì thì dùng RE nhận biết từng term thôi. :kissing:

[+-]?(\d)*x(\d)+
\d+

x^3-x^2+x tách thành 3 term: x^3, -x^2, +x, từ đó lấy được 3 hệ số tương ứng là 1, -2, 1. Cuối cùng sử dụng Horner’s formula tính.


Nếu rắc rối hơn tí có thể không cho đa thức ở dạng khai triển, mà chơi kiểu nhân tử

2x((x^2 - 2x)^2 - x)

Lúc này chỉ còn cách build tree, phải thêm 3 RE mới, 1 cái cho (, 1 cái cho ), và mũ đa thức

(
)
^\d+

Tách được thành:

2x, (, (, x^2, -2x, ), ^2, -x, )

Sau đó dựa vào ( và ) xây thành tree

      *
      |
-------------
|           |
|           +
|           |
|       ---------
|       |       |
|       ^       |
|       |       |
|    -------    |
|    |     |    |
2x x^2-2x  2   -x

Sau đó tính tree tương ứng từng x.

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