Từ 1 tới 9 trên tổng số 9 kết quả

Đề tài: Chương trình tính biểu thức bằng C, từ dạng trung tố sang hậu tố

  1. #1
    Ngày gia nhập
    01 2008
    Bài viết
    0

    Mặc định Chương trình tính biểu thức bằng C, từ dạng trung tố sang hậu tố

    Có pro nào biết cách làm bài nì chỉ mình với mình gà wa . Nhập một biểu thức trung tố từ bàn phím xong , chuyển sang dạng hậu tố rồi in ra kết quả !!! Bác nào biết làm giúp mình với !!!
    Đã được chỉnh sửa lần cuối bởi phult : 08-01-2008 lúc 07:10 PM.

  2. #2
    Ngày gia nhập
    06 2007
    Bài viết
    14

    Để làm bài này, bạn cần nghiên cứu ngăn xếp (stack) với cơ chế vào sau ra trước (last in first out: LIFO)
    Giải thuật cho bài toán:
    - Tạo 2 stack: 1 dành cho những toán hạng (các số hạng trong biểu thức), 1 dành cho toán tử (các phép toán +, -, *, /...)
    - Nhập chuỗi là biểu thức cần tính toán, phân tích từng kí tự và bỏ theo ngăn xếp thích hợp (phân tích từ sau ra trước, đẩy lần lượt vào ngăn xếp để khi lấy ra tính toán sẽ theo chiều đúng từ trước ra sau)
    - Sau khi đã bỏ hết vào ngăn xếp, tiến hành tính toán:
    + Lấy 2 toán hạng ra, lấy 1 toán tử ra
    + Xem đó là toán tử gì để tính kết quả từ 2 toán hạng vừa lấy ra
    + Bỏ kết quả vừa tìm được lại vào stack toán hạng
    Ví dụ: Stack toán hạng gồm: 2 3 7 1 (2 vào sau cùng)
    Stack toán tử gồm: + * - (+ vào sau cùng)
    -> Tính 2+3=5, đẩy kết quả 5 vào stack toán hạng: 5 7 1
    Tuy nhiên các làm trên vẫn chưa đúng vì phép toán *, / có độ ưu tiên cao hơn phải tính trước (như ví dụ trên phải tính 3*7 trước), vậy ta phải xét độ ưu tiên cho toán tử vừa lấy ra với toán tử kế tiếp, nếu toán tử kế tiếp có độ ưu tiên cao hơn thì phải lấy thêm 1 toán hạng và 1 toán tử ra nữa, tính toán 2 toán hạng lấy ra sau với toán tử lấy ra sau, rồi bỏ kết quả vào stack, sau đó lại bỏ toán hạng đầu tiên với toán tử đầu tiên vào.
    + Lặp lại quá trình trên đến khi cả 2 stack ko còn phần tử nào.
    * Trước tiên hãy làm với biểu thức ko có dấu ngoặc, sau khi làm được hãy làm tiếp với trường hợp có dấu ngoặc: Những toán tử trong dầu ngoặc sẽ có độ ưu tiên cao hơn với những toán tử ở ngoài.

    Toàn bộ giải thuật là vậy, chúc bạn thành công!
    Ta là ai không quan trọng, điều ta làm sẽ khẳng định con người ta!

  3. #3
    Ngày gia nhập
    01 2008
    Bài viết
    0

    Đúng là như thế , mà mình viết kg ra . Bạn có thể cung cấp code của bạn cho mình được không ?

  4. #4
    Ngày gia nhập
    01 2007
    Nơi ở
    Somewhere I belong
    Bài viết
    168

    Trích dẫn Nguyên bản được gửi bởi phult Xem bài viết
    Đúng là như thế , mà mình viết kg ra . Bạn có thể cung cấp code của bạn cho mình được không ?
    Đã có code hoàn chỉnh trên diễn đàn cả rồi, tại sao bạn không chịu search trước khi hỏi nhỉ.
    Với công cụ search trong diễn đàn với từ khóa "trung tố" là bạn có thể tìm ra mà tại sao lại không chịu tìm nhỉ
    http://forums.congdongcviet.com/showthread.php?t=1037

  5. #5
    Ngày gia nhập
    01 2008
    Bài viết
    0

    Bài đó viết theo C++ với lại mới chỉ đổi sang hậu tố thôi chưa tính ra kết quả , mình cũng đã search rồi mà . Mình đang cần code viết theo C , bạn nào có cho mình đi TT !

  6. #6
    Ngày gia nhập
    01 2007
    Nơi ở
    Somewhere I belong
    Bài viết
    168

    Mặc định Chương trình tính biểu thức bằng C, từ dạng trung tố sang hậu tố

    Trích dẫn Nguyên bản được gửi bởi phult Xem bài viết
    Bài đó viết theo C++ với lại mới chỉ đổi sang hậu tố thôi chưa tính ra kết quả , mình cũng đã search rồi mà . Mình đang cần code viết theo C , bạn nào có cho mình đi TT !
    Không hiểu bạn nhìn code kiểu gì mà lại nói là bài đó chưa tính ra kết quả (xem kỹ lại bài của tớ post đi). Còn code trên C thì khác gì trên C++, chịu khó conver sang là được. Đừng lười bếng như thế.

  7. #7
    Ngày gia nhập
    01 2008
    Bài viết
    0

    Hix nhưng mà mình chưa dc học C++ mà TT , chịu khó giúp mình đi năn nỉ đó !

  8. #8
    Ngày gia nhập
    12 2007
    Bài viết
    0

    http://forums.congdongcviet.com/showthread.php?t=5135
    cái này mình đã post bên CTDL&GT rồi mà

  9. #9
    Ngày gia nhập
    01 2008
    Bài viết
    0

    Bài của bạn mới đổi sang hậu tố thôi , chưa tính ra kết quả bạn bổ sung giúp mình nha , cám ơn bạn lắm !

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

  1. Chuyển đổi trung cấp nghề sang trung cấp chính quy 2012
    Gửi bởi cafetrungnguyen trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 16-07-2012, 04:24 PM
  2. Lập trình C Chuyền từ trung tố sang tiền tố và tính giá trị của biểu thức dạng tiền tố .
    Gửi bởi LMHuy trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 09-03-2011, 04:08 PM
  3. Chuyển biểu thức trung tố sang biểu thức hậu tố[Ngôn ngữ C]
    Gửi bởi chipnin trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 15-12-2010, 05:02 PM
  4. bài toán chuyển từ trung tố sang hậu tố. Help em với
    Gửi bởi Qµø©_†µan_¶«µ†€ trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 01-06-2010, 05:50 PM
  5. chuyển trung tố sang hậu tố
    Gửi bởi nguyenduyan trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 23-03-2009, 05:44 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