Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 13 kết quả

Đề tài: Chuyển chuỗi thành biểu thức

  1. #1
    Ngày gia nhập
    10 2008
    Nơi ở
    07T1 - DUT
    Bài viết
    101

    Question Chuyển chuỗi thành biểu thức

    Mình muốn viết một chương trình vẽ đồ thị! Nhưng không biết làm cách nào chuyển một chuỗi biểu thức nhập từ bàn phím thành biểu thức thực sự để vẽ!
    Ví dụ chương trình làm như sau:
    Nhap ham muon ve :
    ---Ta nhập là y=x*x
    Làm thế nào để ghi nhận chuỗi biểu thức này để ta xử lý nó trong thân hàm! Mong các bạn giúp đỡ!

  2. #2
    Ngày gia nhập
    02 2008
    Nơi ở
    Việt Nam
    Bài viết
    577

    Chưa hình dung là bạn định vẽ như nào, nhất là với C cơ bản.

    Nếu chuỗi nhận vào gần như có định dạng như sau:

    y = <biểu thức với x>
    Bạn duyệt từng phần tử của chuỗi, và các toán tử và hằng số ở sau dấu bằng vào mảng số thực và chuỗi.

    - Nếu gặp số thì đọc hết số lưu vào chuỗi tạm cho đến kí tự khác số, convert ra kiểu số nguyên (dùng atoi) số thực (dùng sprintf() <--số ng cũng đc) rồi lưu giá trị đó vào mảng số.

    - Nếu là toán tử thì nó vào một mảng chuỗi.

    *Nhưng cách đó có vẻ khó khăn.
    Bạn nên tra cứu lý thuyết cấu trúc dữ liệu phần stack và giải thuật biểu thức balance, mấy cái đó là môn "Cấu trúc dữ liệu và giải thuật" không biết bạn học nó chưa.

    http://www.ddth.com/showthread.php?p=1500349

  3. #3
    Ngày gia nhập
    10 2008
    Nơi ở
    07T1 - DUT
    Bài viết
    101

    Mình cũng định viết theo dạng y=(hàm theo x). Với 2 biến x,y khai báo sẵn.
    Mình định dùng hàm vẽ từng điểm của đồ thị (dùng <graphic.h>)
    Cho x chạy trong một khoảng giá trị.Mỗi x sẽ sinh ra một y qua hàm do người dùng nhập. Dùng cặp tọa độ này để vẽ điểm!
    Nhưng theo cách bạn nói thì lưu biểu thức như vậy rồi làm gì với nó nữa đây!
    Mong bạn chỉ cho mình kĩ hơn chút! Thank.
    Mình đang học về cấu trúc dữ liệu và giải thuật. Nhưng mới đầu kì nên không biết nó ứng dụng được trong bài này như thê nào!

  4. #4
    Ngày gia nhập
    10 2007
    Nơi ở
    Hà nội
    Bài viết
    4

    Hấp dẫn thật, cái mà bạn muốn cũng là module quan trong trong bất kì trình dịch nào thì phải. Bạn thử tìm mã nguồn trong quyển Bài tập lập trình C++ của thầy Nguyễn Thanh Thủy xem
    À mà hình như tớ chả bao giờ vẽ vời được gì trong C với thư viện graphic.h nhỉ, nó không chạy được trong windows hay sao ấy

  5. #5
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Bài này có thể giải quyết theo cách dùng stack. Khi học cấu trúc dữ liệu bạn sẽ được học cách chuyển từ trung tố sang tiền tố hay hậu tố. Trung tố là cách nhìn của con người, còn tiền tố và hậu tố là cách hiểu của máy. Mình đã từng làm một chương trình y chang ý tưởng của bạn vậy đó, để mình lục lại xem có ko. Ý tưởng là dùng hậu tố kết hợp với con trỏ hàm. Ví dụ như biểu thức y = x + 1, chuyển sang hậu tố là :
    1
    x
    HamCong

    trong đó hàm cộng là con trỏ hàm đến hàm thực hiện chức năng cộng.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  6. #6
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Mặc định Chuyển chuỗi thành biểu thức

    Trích dẫn Nguyên bản được gửi bởi cfambabyfox Xem bài viết
    Hấp dẫn thật, cái mà bạn muốn cũng là module quan trong trong bất kì trình dịch nào thì phải. Bạn thử tìm mã nguồn trong quyển Bài tập lập trình C++ của thầy Nguyễn Thanh Thủy xem
    À mà hình như tớ chả bao giờ vẽ vời được gì trong C với thư viện graphic.h nhỉ, nó không chạy được trong windows hay sao ấy
    - Mình thấy ko nhất thiết phải biên dịch cả biểu thức ra mã máy mới giải quyết được vấn đề, dùng CTDL là được rồi.
    - Vấn đề về thư viện graphics.h đã được nói rất nhiều rồi, đây là thư viện dùng cho dos chứ ko phải cho win do đó ko chạy được trên win.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  7. #7
    Ngày gia nhập
    10 2008
    Nơi ở
    07T1 - DUT
    Bài viết
    101

    Mình lập trình kiểu console thui.Bạn meoconlongvang có thể chỉ rõ hơn chút cho mình được không! Bạn có tài liệu hay chỉ dẫn chi tiếc thì cho mình xin với!
    Ý tưởng vẽ theo kiểu này là do mình thấy các chương trình vẽ đồ thì họ vẽ từng điểm một liên tục tạo nên các đường đồ thị!

  8. #8
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Chuyện vẽ thì ko quan trọng lắm vì cứ thế x là có y và chấm điểm. Quan trọng là phải chuyển biểu thức dạng chuỗi thành một dạng hàm khi chạy. Cái này là một dạng mở rộng của biểu thức hậu tố. Bạn hãy đợi khi học xong phần chuyển từ trung tố sang hậu tố thì sẽ hiểu rõ vấn đề ngay thôi. Dạng cơ bản là người ta sẽ lưu dấu '+','-','*','/' vào stack, nếu tổng quát hơn thì lưu con trỏ hàm operator vào stack.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  9. #9
    Ngày gia nhập
    10 2008
    Nơi ở
    07T1 - DUT
    Bài viết
    101

    Ý tưởng mình là vậy đó! Đúng như cách vẽ bạn nói! Nhưng mình muốn học trước thì đọc những phần nào ở đâu, tài liệu gì? Bạn cho mình xin tài liệu lun đi! Chứ đợi đến khi trường dạy thì có mà chờ dài cổ! Mà nhiều khi không dạy hay dạy woa loa cũng có! Hix

  10. #10
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Sách thì mình ko biết ebook, hồi đó mình chỉ photo cuốn sách tiếng anh của ông thầy thôi. Bạn hãy search trên mạng hay trên 4rum để hiểu rõ về thuật toán chuyển từ trung tố sang hậu tố cái đã. Nếu chưa hiểu về nó thì khó mà nói tiếp lắm. Thuật toán này cũng dễ tìm lắm bạn à.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

Các đề tài tương tự

  1. Thay đổi icon của chuột khi chuột di chuyển vào vùng dialog
    Gửi bởi kideltn trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 13
    Bài viết cuối: 07-06-2013, 04:34 PM
  2. Lấy handle window dưới chuột khi chuột di chuyển
    Gửi bởi vakt4793 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 05-04-2013, 04:36 AM
  3. Cách thay đổi con trỏ chuột C# - Di chuyển form với con trỏ chuột
    Gửi bởi nndung179 trong diễn đàn Tutorials và Thủ thuật lập trình C#, ASP.NET
    Trả lời: 3
    Bài viết cuối: 20-09-2011, 08:23 AM
  4. Chuyển chuỗi tiếng việt sang chuỗi số và ngược lại
    Gửi bởi saonam trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 5
    Bài viết cuối: 18-06-2011, 07:28 AM
  5. Trả lời: 7
    Bài viết cuối: 21-03-2011, 09:59 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn