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ố 20 kết quả

Đề tài: Giải Phương Trình Bậc 2 bằng C như thế nào?

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

    Red face Giải Phương Trình Bậc 2 bằng C như thế nào?

    Em mới học lập trình C++ nên tập viết, không hiểu sao nó không ra, mong mấy đại ca chỉ giáo
    C Code:
    1. #include <iostream.h>
    2. #include <math.h>
    3. void main()
    4. {
    5.  float a,b,c, delta;
    6.  cout << "nhap a : ";
    7.  cin >> a;
    8.  cout << "nhap b : ";
    9.  cin >> b;
    10.  cout << "nhap c : ";
    11.  cin >> c;
    12.  delta = b*b- 4*a*c;
    13. if (delta <0)
    14. cout << "phuong trinh vo nghiem";
    15. else if(delta ==0)
    16. cout << "nghiem kep la x1=x2 : \n" << b/2*a;
    17. else (delta>0);
    18. cout << "nghiem x1: \n"<< (-b + sqrt(delta))/(2*a);
    19. cout << "nghiem x2 :\n"<< (-b + sqrt(delta))/(2*a);
    20. }
    Mong được chỉ giáo
    Đã được chỉnh sửa lần cuối bởi lethanh : 19-04-2009 lúc 02:47 PM.

  2. #2
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    Sửa cho cưng rồi đây:

    1. ĐỌC NỘI QUY ĐỂ VIẾT BÀI CHO ĐÚNG QUY ĐỊNH
    2. Viết code cho nó đàng hoàng, rõ ràng ra để mà còn biết lỗi mà sửa (viết tú tí tù tì...debug đến tết)

    C++ Code:
    1. #include <iostream>
    2. #include <cmath>
    3.  
    4. int main(void)
    5. {
    6.     float a,b,c, delta;
    7.  
    8.     cout << "nhap a : ";
    9.     cin >> a;
    10.     cout << "nhap b : ";
    11.     cin >> b;
    12.     cout << "nhap c : ";
    13.     cin >> c;
    14.  
    15.     delta = b*b- 4*a*c;
    16.  
    17.     if (delta < 0)
    18.         cout << "phuong trinh vo nghiem";
    19.     else if( delta == 0)
    20.         cout << "nghiem kep la x1=x2 : \n" << -b/2*a;
    21.     else {
    22.         cout << "nghiem x1: \n"<< (-b + sqrt(delta))/(2*a);
    23.         cout << "nghiem x2 :\n"<< (-b + sqrt(delta))/(2*a);
    24.     }
    25.  
    26.     return 0;
    27. }
    None!

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

    anh Xcross87 cho hỏi, bạn buahomenh02 xài hàm void main. sao anh sửa lại thành int main( thêm cai return 0) là nó lại ok là sao?
    hàm int main tốt hơn hàm void main hả anh?
    buồn buồn viết nhãm send chơi
    ai ngờ viết thiệt bùn ơi là bùn
    Mr Nguyễn

  4. #4
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    Trích dẫn Nguyên bản được gửi bởi hoangtulai_hp Xem bài viết
    anh Xcross87 cho hỏi, bạn buahomenh02 xài hàm void main. sao anh sửa lại thành int main( thêm cai return 0) là nó lại ok là sao?
    hàm int main tốt hơn hàm void main hả anh?
    dùng nút search để tìm mấy bài về C chính quy nhé.
    None!

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

    #include <iostream>
    #include <cmath>
    using namespace std;

    void main() {
    double a, b, c, x1, x2, delta;
    cout << "Nhap gia tri cho a, b, c: ";
    cin >> a >> b >> c;
    cout << endl;

    delta = b*b - 4*a*c;
    x1 = (-b + sqrt(delta)) / (2.0*a);
    x2 = (-b - sqrt(delta)) / (2.0*a);

    if (a == 0) { cout << "1 nghiem " <<"x = " << -c/b << endl;}
    else {
    if (delta < 0) {cout << "Vo nghiem " << endl;}
    else if (delta == 0) {cout << "1 nghiem chung: " << "x1 = x2 = " << -b/(2.0*a) << endl;}
    else {cout <<"2 nghiem: " << "x1 = " << x1 <<" og x2 = "<< x2 << endl;}
    }
    system ("pause");
    }
    Đã được chỉnh sửa lần cuối bởi nptka : 19-09-2009 lúc 03:12 AM.

  6. #6
    Ngày gia nhập
    09 2009
    Bài viết
    3

    Mặc định Giải Phương Trình Bậc 2 bằng C như thế nào?

    Có thể tính nghiệm khi delta < 0 (tính theo giá trị i). Ví dụ như phương trình: x^2 +6x + 58 = 0 có nghiệm là: x = -3 +/- 7i. Công thức tính nghiệm khi delta < 0 là: x=-b/2*a +/- i*sqrt(-delta)/2*a. Các bạn thử giải ptb2 trong C++ theo cách này, phương trình luôn có nghiệm với mọi giá trị delta.

  7. #7
    Ngày gia nhập
    08 2009
    Bài viết
    6

    bạn nptka lam minh thấy một trường hợp.trong trường hợp a=0,nếu b=0 nữa thì sao.lúc đó chương trình không chạy nữa

  8. #8
    No Avatar
    tepcn2t Khách

    Wink hic

    nếu bạn nhập trường hợp a=0,b=0 thi bạn phải viết thêm lênh về các trường hợp đó. nếu ko muấn cho a=0 thì bạn phải dung lệnh để chặn lại-> lệnh ị chẳng hạn

  9. #9
    Ngày gia nhập
    09 2009
    Bài viết
    3

    Nếu xét trường hợp a = 0 và b = 0, thì ta phải xét luôn c
    Nếu c != 0 thì phương trình vô nghiệm với mọi x
    Nếu c = 0 thì phuơng trình có nghiệm với mọi x
    --> cho nên khi xảy ra trường hợp này, c mới là giá trị cần tìm. Nhưng mà giải phưong trình là đi tìm giá trị của x, cho nên, hihi, không ai xét trường hợp này.
    --> Không biết suy luận cùn của mình có đúng không nữa.
    Đã được chỉnh sửa lần cuối bởi nptka : 08-09-2009 lúc 07:06 PM.

  10. #10
    Ngày gia nhập
    09 2009
    Bài viết
    10

    Trích dẫn Nguyên bản được gửi bởi daokiem_votinh64 Xem bài viết
    bạn nptka lam minh thấy một trường hợp.trong trường hợp a=0,nếu b=0 nữa thì sao.lúc đó chương trình không chạy nữa
    #include <stdio.h>
    #include <conio.h>
    #include <math.h>

    main()
    {
    float a,b,c,delta;
    printf("Giai phuong trinh bac hai dang : axx + bx + c = 0");
    printf("\nNhap gia tri cua a,b,c:");
    scanf("%f%f%f",&a,&b,&c);
    delta=b*b-4*a*c;
    if (a==0)
    {
    if (b==0)
    {
    if (c==0)
    printf("\npt co vo so nghiem");
    else
    printf("\npt vo nghiem");
    }
    else
    printf("\npt co nghiem x=%f",-c/b);
    }
    else

    {
    if (delta<0)
    printf("\nPt vo nghiem");
    else
    {
    if (delta==0)
    printf("\npt co nghiem kep x1=x2=%f",-b/(2*a));
    else
    {
    printf("\npt co 2 nghiem phan biet:");
    printf("\nx1=%f",(-b+sqrt(delta))/(2*a));
    printf("\nx2=%f",(-b-sqrt(delta))/(2*a));
    }
    }
    }




    getch();
    }
    Bài này mình mới làm xong(

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

  1. Làm thế nào bạn có thể chọn ra nhà cung cấp dịch vụ giặt thảm, giặt ghế sofa tốt nhất ?
    Gửi bởi hanhnguyenbl89 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: 28-08-2013, 04:24 PM
  2. Trả lời: 0
    Bài viết cuối: 04-08-2012, 02:49 PM
  3. Trả lời: 0
    Bài viết cuối: 27-03-2012, 03:43 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