Các bác giúp em làm bài tập C về đa thức này với !!!

Thảo luận trong 'Lập trình & Đồ hoạ' bắt đầu bởi -.-!, 1/11/10.

  1. -.-!

    -.-! Donkey Kong

    Tham gia ngày:
    6/10/09
    Bài viết:
    389
    Nơi ở:
    Tầng mây 9th
    Các bác ơi, các bác giúp em với !!!
    Em cần viết 1 chương trình bằng ngôn ngữ C (dùng turbo C 3.0 để chạy) để tính giá trị của 1 đa thức trị 1 giá trị x nhập từ bàn phím và tính các phép cộng, trừ, nhân, chia giữa các đa thức với nhau. Trong đó chương trình phải chứa 1 Menu có các lựa chọn như sau:
    1. Nhập vào đa thức A(x) và B(x)
    2. Xem đa thức vừa nhập vào
    3. Tính giá trị của biểu thức tại giá trị x nhập từ bàn phím
    4. Tính tổng của 2 đa thức A(x) + B(x)
    5. Tính hiệu của 2 đa thức A(x) - B(x)
    6. Tính hiệu của 2 đa thức B(x) - A(x)
    7. Tính tích của 2 đa thức A(x) * B(x)
    8. Tính thương của 2 đa thức A(x) / B(x)
    9. Tính tổng hợp tất cả các phép tính cộng, trừ, nhân, chia 2 đa thức A(x) và B(x)
    10. Trở về Menu chính
    11. Thoát khỏi chương trình.
    Các bác giúp em với ạ, em cần lắm. Bài tập này của em đến 6 trình đấy :(
    Em cảm ơn các bác nhiều!!!
     
  2. Minamoto_Shizuka

    Minamoto_Shizuka Fire in the hole! Lão Làng GVN

    Tham gia ngày:
    24/10/09
    Bài viết:
    2,861
    Bài tập về nhà thì phải tự làm chứ, cũng có gì phức tạp đâu

    Để tính đa thức thì dùng giải thuật Horner sẽ nhanh hơn:
    a_n*x^n + a_n-1 * x^(n-1) + ... + a1 * x + a0 = a0 + x(a1+x(a2 + ... + x (a_n)))
    http://forums.congdongcviet.com/showthread.php?t=33695

    Còn mấy thứ còn lại thì cứ cộng trừ nhân chia, xuất nhập như bình thường.
     
  3. -.-!

    -.-! Donkey Kong

    Tham gia ngày:
    6/10/09
    Bài viết:
    389
    Nơi ở:
    Tầng mây 9th
    Bác ơi, em chưa được học C++ . Cái trang bác cho em link toàn C++ thôi, em không có hiểu :((
    Bác tốt bụng bác bớt chút thời gian cho em cái code của C. Nhất là code khi tạo Menu mình gọi sẽ gọi các hàm + - * / thế nào. Còn các hàm + - * / em tự mò cũng được.
    Thx các bác !
     
  4. Minamoto_Shizuka

    Minamoto_Shizuka Fire in the hole! Lão Làng GVN

    Tham gia ngày:
    24/10/09
    Bài viết:
    2,861
    ^
    Cái link trên chỉ mô tả giải thuật thôi.
    Code C của nó (giả sử đã có a[] là mảng chứa các hệ số của A(x), x, bậc của A(x) na) :
    PHP:
    int i,A;
    A=a[na];
    for(
    i=na-1;i>=0;i--)
         
    a[i] + x*A;
    Để tạo menu thì làm cái giao diện kiểu như thế này:
    Mã:
    1. Tinh tong 2 da thuc A(x)+B(x)
    2. Tinh hieu 2 da thuc A(x)-B(x)
    3. Tinh hieu 2 da thuc B(x)-A(x)
    4. Tinh tich 2 da thuc A(x)*B(x)
    5. Tinh thuong 2 da thuc A(x)/B(x)
    6. Tính tổng hợp tất cả các phép tính cộng, trừ, nhân, chia 2 đa thức A(x) và B(x)
    
    Chon lenh: _
    
    Tuỳ vào việc người dùng nhập vào số mấy ở chỗ nhắc lệnh mà gọi hàm tương ứng (Dùng cấu trúc switch ... case).
     
  5. -.-!

    -.-! Donkey Kong

    Tham gia ngày:
    6/10/09
    Bài viết:
    389
    Nơi ở:
    Tầng mây 9th
    Hix bác tốt bụng thì bác cho em xin đoạn code cho cái Menu đi, chứ em dốt cái này lắm, nói thế sơ qua thế này em vẫn không biết làm đâu :((
     
  6. Minamoto_Shizuka

    Minamoto_Shizuka Fire in the hole! Lão Làng GVN

    Tham gia ngày:
    24/10/09
    Bài viết:
    2,861
    PHP:
    int lua_chon;

    /* In ra cac lua chon */
    printf("1. Nhập vào đa thức A(x) và B(x)\n");
    printf("2. Xem đa thức vừa nhập vào\n");
    printf("3. Tính giá trị của biểu thức tại giá trị x nhập từ bàn phím\n");
    printf("4. Tính tổng của 2 đa thức A(x) + B(x)\n");
    printf("5. Tính hiệu của 2 đa thức A(x) - B(x)\n");
    printf("6. Tính hiệu của 2 đa thức B(x) - A(x)\n");
    printf("7. Tính tích của 2 đa thức A(x) * B(x)\n");
    printf("8. Tính thương của 2 đa thức A(x) / B(x)\n");
    printf("9. Tính tổng hợp tất cả các phép tính cộng, trừ, nhân, chia 2 đa thức A(x) và B(x)\n");
    printf("10. Trở về Menu chính\n");
    printf("11. Thoát khỏi chương trình.\n\n");


    printf("Chon chuc nang : _ ");
    do {
        
    scanf("%d", &lua_chon);
        switch(
    lua_chon) {
            case 
    1:
                
    Nhap_da_thuc();
                break;
            case 
    2:
                
    Xem_da_thuc();
                break;
            case 
    3:
                
    Gia_tri();
                break;
            case 
    4:
                
    tong();
                break;
            case 
    5:
                
    hieu1();
                break;
            case 
    6:
                
    hieu2();
                break;
            case 
    7:
                
    tich();
                break;
            case 
    8:
                
    thuong();
                break;
            case 
    9:
                
    tong_hop();
                break;
            case 
    10:
                
    menu_chinh(); /*thuc su van khong hieu cai nay co muc dich gi ? */
                
    break;
            case 
    11:
                exit(
    0);
                break;
            default:
                
    printf("\nLua chon khong hop le\n");
                
    printf("Chon lai: _");
                break;
        }
    } while ((
    lua_chon 1) || (lua_chon 11));
    Cơ bản là vậy, các hàm bạn tự viết. Nhớ bỏ dấu tiếng Việt trong đoạn code nữa.

    Còn cái "Trở về menu chính" thì không rõ lắm, nếu chỉ có 1 menu như yêu cầu thì không cần thiết; còn nếu nhiều menu ( một cái để nhập, sau đó hiện menu để chọn phép tính) thì đoạn mã sẽ không như trên kia.
     
    Chỉnh sửa cuối: 2/11/10
    -.-! thích bài này.
  7. -.-!

    -.-! Donkey Kong

    Tham gia ngày:
    6/10/09
    Bài viết:
    389
    Nơi ở:
    Tầng mây 9th
    Thx bác nhìu, iu bác quá cơ :)) em + rep cho bác rùi nhé :D
    À nhân đây bác cho em hỏi ở case 9 bác gọi hàm tong_hop vậy hàm này viết thế nào vậy? Chỉ việc copy paste các hàm + - * / xuống hay phải biến đổi thế nào vậy bác?
     

Chia sẻ trang này