ปัญหา
ใช้วิธีการพัฒนาซอฟต์แวร์เพื่อแก้ปัญหาในภาษาซี
วิธีแก้ปัญหา
- หารากของสมการกำลังสอง ax2+bx+c
- จะมี 2 รากสำหรับสมการกำลังสองที่กำหนด
บทวิเคราะห์
ป้อนข้อมูล − ค่า a,b,c
ผลผลิต − r1, ค่า r2
ขั้นตอน
$r_{1}=\frac{-b+\sqrt{b^2-4ac}}{2a}$
$r_{2}=\frac{-b-\sqrt{b^2-4ac}}{2a}$
การออกแบบ (อัลกอริทึม)
- เริ่ม
- อ่านค่า a, b, c
- คำนวณ d =b2 4ac
- ถ้า d> 0 แล้ว
- r1 =b+ sqrt (d)/(2*a)
- r2 =b sqrt(d)/(2*a)
- มิฉะนั้น ถ้า d =0 แล้ว
- คำนวณ r1 =-b/2a, r2=-b/2a
- พิมพ์ค่า r1,r2
- มิฉะนั้น ถ้า d <0 รากพิมพ์จะเป็นจินตภาพ
- หยุด
รหัสการใช้งาน
# include<stdio.h> # include<conio.h> # include<math.h> main (){ float a,b,c,r1,r2,d; printf (“enter the values of a b c”); scanf (“ %f %f %f”, &a, &b, &c); d= b*b – 4*a*c; if (d>0){ r1 = -b+sqrt (d) / (2*a); r2 = -b-sqrt (d) / (2*a); printf (“The real roots = %f %f”, r1, r2); } else if (d= =0){ r1 = -b/(2*a); r2 = -b/(2*a); printf (“roots are equal =%f %f”, r1, r2); } else printf(“Roots are imaginary”); getch (); }
การทดสอบ
Case 1: enter the values of a b c: 1 4 3 r1 = -1 r2 = -3 Case 2: enter the values of a b c: 1 2 1 r1 = -1 r2 = -1 Case 3: enter the values of a b c: 1 1 4 Roots are imaginary