Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Trang 1 của 2 12 CuốiCuối
Kết quả 1 đến 10 của 13
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    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
    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 tham gia
    Sep 2015
    Bài viết
    0
    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 tham gia
    Sep 2015
    Bài viết
    0
    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 tham gia
    Sep 2015
    Bài viết
    0
    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.

  6. #6
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi cfambabyfox
    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.

  7. #7
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    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.

  8. #8
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    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ị!

  9. #9
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Ý 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
    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 à.

 

 
Trang 1 của 2 12 CuốiCuối

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •