โปรแกรมเมอร์ฝึกหัด : 2.โปรแกรมหาค่า x1,x2 จากสมการโพลิโนเมียล
ให้หาค่า x1,x2 จากสมการ aX^2 + bX + c = 0 จากสูตร x1 = ( b + sqrt( b^2 - 4ac)) ÷ 2a x2 = ( b - sqrt( b^2 - 4ac)) ÷ 2a
import java.math.*;
/** * โปรแกรมเมอร์ฝึกหัด บทที่ 2 * =================== * ให้เขียนโปรแกรมหาค่าของ x1,x2 จากสมการ (a)X^2 + (b)X + c = 0 * จาก x1 = ( b + sqrt(b^2 - 4(a)(c))/2a * x2 = ( b - sqrt(b^2 - 4(a)(c))/2a * * บทเรียน * 1.ให้หาทางป้องกันข้อมูลที่ใส่ที่ไม่ใช่ตัวเลข * 2.ค่าใน sqrt() จะเป็นค่าน้อยกว่า 0 ไม่ได้ * 3.ค่าที่จะนำไปหาร(2a) จะเป็น 0 ไม่ได้ * Author : เกลือจืด * Date 23 Jan 09 */
public class Polynomials {
public static void main(String[] args) { double dA = 0; double dB = 0; double dC = 0; double dX1 = 0; double dX2 = 0; double dZero = 0; if ( args.length != 3 ) { System.out.println("Polynomials : โปรแกรมหาค่าของ x1,x2 จากสมการ aX^2 + bX + c = 0"); System.out.println("Usage : java Polynomials a b c"); System.exit(0); } try { dA = Double.valueOf(args[0]); dB = Double.valueOf(args[1]); dC = Double.valueOf(args[2]); } catch (Exception e){ System.out.println("Error:การใส่ข้อมูลไม่ถูกต้อง"); e.printStackTrace(); System.exit(0); } if ( dA == 0){ System.out.println("Error:ค่าของ a เป็นศูนย์ไม่ได้"); System.exit(0); } double dTmp = (dB * dB) - ( 4 * dA * dC); if ( dTmp < 0 ) { System.out.println("Error:ค่าที่ใส่ไม่สามารถหาค่าได้"); System.exit(0); } dX1 = (dB + Math.sqrt( dTmp )) / ( 2 * dA ); dX2 = (dB - Math.sqrt( dTmp )) / ( 2 * dA ); System.out.println("ค่ที่ได้จากสมการ "+Double.toString(dA)+"X^2 + "+Double.toString(dB)+"X + "+Double.toString(dC)+" = 0 คือ"); System.out.println(" X1 = "+Double.toString(dX1)); System.out.println(" X2 = "+Double.toString(dX2));
}
}
Create Date : 24 มกราคม 2552 |
Last Update : 24 มกราคม 2552 6:15:11 น. |
|
1 comments
|
Counter : 1517 Pageviews. |
|
|