Search

Lập trình ứng dụngThời gian 19/12/2015 Tác giả

Giải phương trình bậc hai bằng ngôn ngữ lập trình C

Bố cục bài

    Giải phương trình bậc hai không quá xa lạ với bạn, nhưng bạn đã giải phương trình bằng ngôn ngữ lập trình chưa. Với ngôn ngữ lập trình  bằng các dòng lệnh bạn có thể đưa ra kết quả rất nhiều bài toán khác nhau trong tích tắc mà không cần nhiều thời gian để phân tích.
    Hôm nay mình sẽ cùng các bạn phân tích và giải phương trình bậc hai nhé: 

    1. Ý tưởng thuật toán

    •Ta lần lượt xét hệ số của phương trình :
    TH1 : Ta xét hệ số a=0
    - Khi a = 0 Ta xét  b = 0 hay # 0 .
    Nếu a=0 mà b=0 thì ta kết luận phương trình không xác định .
    Nếu b #0 thì giải bài toán giống như giải phương trình bậc nhất .

    TH2 : Ta xét hệ số  a # 0
    - Ta tính ∆ của phương trình
    - Nếu ∆ < 0 : Kết luận ngay phương trình vô nghiệm
    - Nếu ∆ = 0 : Khi này phương trình trình có nghiệm kép
    - Nếu ∆ > 0 : Phương trình có hai nghiệm phân biệt 

    2. Ý nghĩa các biến trong bài

    • a , b ,c là ba hệ số.
    • ∆ là biến dùng để lưu giá trị ∆ sau khi tính .
    • x1,x2 : là nghiệm của phương trình nếu pt có 2 nghiệm phân biệt
    • x : là nghiệm nếu phương trình chỉ có một nghiệm mà thôi
    y-tuong-bai-toan

    3. Cách làm và chương trình bài toán

    Cách làm :

    • Đầu tiên khai báo các biến cần sử dụng: a,b,c( hằng số),x1,x2(nghiệm của bài toán), d ( den ta) ở kiểu số thực : float
    • Quan trọng nhất là thuật toán để giải bài toán: sử dụng câu lệnh IF- ELSE lồng để kiểm tra lần lượt các trường hợp a=0 và khác 0 
    • Khi câu lệnh if  thấy a # thì lại kiểm tra tiêp b có # 0 hay không rồi tính ∆ với công thức d=b*b-4*a*c  để từ đó tính nghiệm x1,x2
    • Với trường hợp a,b,c đều bằng không thì câu lệnh dừng ngay và in ra màn hình luôn là phương trình vô số nghiệm.

    Chương trình minh họa

    //Chuong trinh giai phuong trinh bac 2

    #include
    #include
    #include
    int main()
    {
            float a,b,c,d,x,x1,x2,k;
            printf("nhap a vao: \n"); scanf("%f",&a);
            printf("nhap b vao: \n"); scanf("%f",&b);
            printf("nhap c vao: \n"); scanf("%f",&c);
            if (a==0)
               if (b==0)
                       if (c==0) printf("Phuong trinh vo so nghiem");
                       else printf("phuong trinh vo nghiem");
               else {x=-c/b; printf("phuong trinh co nghiem la: %3.2f\n",x);}
            else {
                     d=b*b-4*a*c;
                     if (d==0) printf("phuong trinh co nghiem kep: %f",x=-b/2/a);
                     else if (d<0) printf("phuong trinh vo nghiem");
                              else
                              {
                                       k=sqrt(d);
                                       x1=(-b-k)/2/a;
                                       x2=(-b+k)/2/a;
                                       printf("puong trinh co hai nghiem phan biet:\n x1=%f\n x2=%f\n",x1,x2);
                              }
                      }
                     
              getch();              
    }
       

    4. Kết quả 

    Sau khi viết xong chương trình tiến hành chạy ta được kết quả
     
    -ket-qua
    Chúc các bạn thành công nhé !

     


    Comment here


    Related_news

    BÀI ĐƯỢC XEM NHIỀU