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

Đề tài: Giải thuật Xử Lý phân thức trên C++

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

    Mặc định Giải thuật Xử Lý phân thức trên C++

    Mình có 1 bài Xử Lý phân thức trong C++. Ý tưởng của mình là :
    - Tạo 1 lớp DATHUC
    - Kế thừa 2 lớp TUTHUC và MAUTHUC
    - Sau đó tạo 1 lớp PHANTHUC
    - Tuy nhiên gặp 1 rắc rối trong khi mình cộng 2 phân thức không cho ra kết quả.
    Không nói về code, mình chỉ muốn các bạn chỉ giáo giúp ý tưởng của mình sai ở chỗ tạo 2 lớp kế thùa TUTHUC và MAUTHUC phải không ? Vì khi công 2 phân thức thì gọi TUTHUC(1)*MAUTHUC(2).........tuy nhiên Operator * trong lớp DATHUC lại là DATHUC operator *(DATHUC x)
    NGhĩa là TUTHUC là DATHUC nhưng DATHUC không phải là TUTHUC.
    Xin lỗi có thể ngôn ngữ của mình hơi lộn xộn vì vừa bị mất điện thoại xong. Híc. cảm ơn các bạn nhiều nhiều. Bạn nào nhiệt tình giúp mình thì PM yahoo của mình nhé : xneuanhkhongthatlongx

  2. #2
    Ngày gia nhập
    04 2009
    Bài viết
    16

    Trích dẫn Nguyên bản được gửi bởi love_games Xem bài viết
    Mình có 1 bài Xử Lý phân thức trong C++. Ý tưởng của mình là :
    - Tạo 1 lớp DATHUC
    - Kế thừa 2 lớp TUTHUC và MAUTHUC
    - Sau đó tạo 1 lớp PHANTHUC
    - Tuy nhiên gặp 1 rắc rối trong khi mình cộng 2 phân thức không cho ra kết quả.
    Không nói về code, mình chỉ muốn các bạn chỉ giáo giúp ý tưởng của mình sai ở chỗ tạo 2 lớp kế thùa TUTHUC và MAUTHUC phải không ? Vì khi công 2 phân thức thì gọi TUTHUC(1)*MAUTHUC(2).........tuy nhiên Operator * trong lớp DATHUC lại là DATHUC operator *(DATHUC x)
    NGhĩa là TUTHUC là DATHUC nhưng DATHUC không phải là TUTHUC.
    Xin lỗi có thể ngôn ngữ của mình hơi lộn xộn vì vừa bị mất điện thoại xong. Híc. cảm ơn các bạn nhiều nhiều. Bạn nào nhiệt tình giúp mình thì PM yahoo của mình nhé : xneuanhkhongthatlongx
    Tớ đọc mà chẳng hiểu cậu muốn hỏi về vấn đề gì nữa (Mất điện thoại cũng liên quan đến ngôn ngữ cơ ah??? Sao mình ko biết nhỉ!!!). Nhưng theo mình nghĩ thường thì phân thức chỉ cộng, trừ, nhân, chia với phân thức thôi. VÌ thế ta nên lập trình toán tử là thành viên của lớp. Mà khi toán tử là thành viên của lớp thì Vế Trái của toán tử luôn được trỏ bời con trỏ this. Khi cậu gọi TUTHUC(1)*MAUTHUC(2)... là sai rồi. Đó chỉ là công thức tính thôi. Bạn nên xem lại lý thuyết đi. Mình nhớ kô nhầm thì giáo trình của giáo sư Phạm Văn Ất viết rất rõ đấy.
    CHÚC BẠN THÀNH CÔNG
    Đã được chỉnh sửa lần cuối bởi vboyit87 : 27-04-2009 lúc 11:11 AM.

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

    Cảm ơn bạn vboyit87 nhiều. Tất nhiên là phân thức có các toán tử +-*/. Tuy nhiên ở class DATHUC cũng sẽ có những toán tử +-*/. Và khi lập trình toán tử cho class PHANTHUC thì sẽ gọi các toán tử đã lập trình cho class DATHUC. Ý mình là như vậy.
    Đầu tiền mình tạo Class DATHUC{
    xử lý nhập, hiện, cộng, trừ, nhân, chia = toán tử}; Class TUTHUC: public DATHU
    {
    gọi lại nhập hiện DATHUC};
    Class MAUTHUC: public MAUTHUC
    {
    Gọi lại nhập hiện DATHUC};
    Class PHANTHUC : public TUTHUC,MAUTHUC
    {
    Trong này lập trình các toán tử cộng trừ nhân chia, nhập hiện, nghịch đảo...};

    Đó, ý mình là vậy. Các bạn góp ý giúp mình nhé. Cảm ơn các bạn nhiều !

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

    Trích dẫn Nguyên bản được gửi bởi vboyit87 Xem bài viết
    Tớ đọc mà chẳng hiểu cậu muốn hỏi về vấn đề gì nữa (Mất điện thoại cũng liên quan đến ngôn ngữ cơ ah??? Sao mình ko biết nhỉ!!!).
    Bạn đã lúc nào ức chế 1 việc gì khiến bạn ăn nói lắp bắp hoặc cáu gắt với những người xung quanh chưa ? Thử mất điện thoại đi thì biết nhé =D

  5. #5
    Ngày gia nhập
    04 2009
    Bài viết
    16

    Trích dẫn Nguyên bản được gửi bởi love_games Xem bài viết
    Cảm ơn bạn vboyit87 nhiều. Tất nhiên là phân thức có các toán tử +-*/. Tuy nhiên ở class DATHUC cũng sẽ có những toán tử +-*/. Và khi lập trình toán tử cho class PHANTHUC thì sẽ gọi các toán tử đã lập trình cho class DATHUC. Ý mình là như vậy.
    Đầu tiền mình tạo Class DATHUC{
    xử lý nhập, hiện, cộng, trừ, nhân, chia = toán tử}; Class TUTHUC: public DATHU
    {
    gọi lại nhập hiện DATHUC};
    Class MAUTHUC: public MAUTHUC
    {
    Gọi lại nhập hiện DATHUC};
    Class PHANTHUC : public TUTHUC,MAUTHUC
    {
    Trong này lập trình các toán tử cộng trừ nhân chia, nhập hiện, nghịch đảo...};

    Đó, ý mình là vậy. Các bạn góp ý giúp mình nhé. Cảm ơn các bạn nhiều !
    Tớ nghĩ không nên làm thêm 2 lớp Tử Thức và Mẫu thức. Khi đã có lớp Đa Thức rồi ta sẽ định nghĩ thêm lớp Phân Thức kế thứa lớp Đa Thức thôi. Ví dụ nhé

    Code:
          class DATHUC
             {
                 ........// Bạn tự lập trình cho lớp đa thức với đẩy đủ phương thức và toán tử nhé
              };
          class PHANTHUC:public DATHUC
              {
            private:
    
               DATHUC tuthuc,mauthuc;
    
            public:
                 void nhap();
                void hien();
                PHANTHUC operator+(PHANTHUC a);
               };
    Trong lớp đa thức bạn đã lập trình toán tử để + - * / các đa thức rồi. Vấn đề đặt ra ở đây là bạn muộn lập trình toán tử để + - * / các phân thức. Khi đó các toán tử đã lập trình trong lớp đa thức bạn có thể đem ra sử dụng bình thường như các kiểu dữ liệu chuẩn thôi. Ví dụ toán tử cộng phân thức nhé
    Code:
              
    PHANTHUC::PHANTHUC operator + (PHANTHUC VP)
    {
      PHANTHUC tg;
     tg.tuthuc    =  this->tuthuc*VP.mauthuc + this->mauthuc*VP.tuthuc;
     tg.mauthuc =   this->mauthuc * VP.mauthuc;
     return tg;
    }
    Công trừ nhân chia bình thường như phân số mà bởi toán tử đã được cậu lập trình trong lớp đa thức rồi. Điều quan trọng ở đây là không nên lập trình lớp Tử Thức và Mẫu Thức mà lập trình lớp Phân Thức kế thừa.
    CHÚ Ý: VẾ TRÁI là phân thức 1 được trỏ bởi con trỏ this bởi toán tử ở đây là thành viên của lớp nhé!!!
    Đã được chỉnh sửa lần cuối bởi vboyit87 : 29-04-2009 lúc 09:11 PM.
    o0oKNOWNEDGE IS POWERo0o

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

    Mặc định Giải thuật Xử Lý phân thức trên C++

    Cảm ơn bạn nhiều nhé. Mình cũng đã làm xong lâu lâu rồi. Không nên ép dùng kế thừa vì thật ra nếu kế thừa thỉ cũng không giải quyết được vấn đề gì. Mình đang làm rút gọn phân thức, trong đó có thuật toán giải phương trình bậc n. Bạn có ý tưởng nào góp ý với mình không ? Thanks

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

  1. Giải thuật DFS và BFS trên C++
    Gửi bởi icttrack trong diễn đàn Thắc mắc CTDL & Giải thuật
    Trả lời: 7
    Bài viết cuối: 10-11-2014, 11:57 PM
  2. Các giải thuật sắp xếp - Lý thuyết và cài đặt trên C
    Gửi bởi PoPoPoPo trong diễn đàn Thủ thuật, Tutorials CTDL & Giải thuật
    Trả lời: 28
    Bài viết cuối: 15-05-2013, 11:10 AM
  3. Giải thuật tìm tất cả đường đi trên 1 đồ thị?
    Gửi bởi ndp1007 trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 2
    Bài viết cuối: 24-04-2011, 10:22 PM
  4. Bài tập C++ Giải thuật đệ quy-Tìm max min trên C?
    Gửi bởi sky_night 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: 27-09-2010, 11:12 PM
  5. Giải thuật đệ qui trên C++ cho hàm Acker
    Gửi bởi trang801 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: 07-08-2010, 03:25 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