נוסחת השורשים ב java

0 הצבעות
19 צפיות

כתבתי את הקוד הבא אבל אם a לא קטן מ0 התוכנה מחזירה x1 = NaN x2 = NaN

איך פותרים את הבעיה?
 

import java.util.*;
import java.util.Scanner;
public class Main
{
	public static void main(String[] args)
	{try ( Scanner in = new Scanner (System.in)){	
		double b;
		double a;
		double c;
		System.out.println("enter a");
		a=in.nextDouble();
		System.out.println("enter b");
		b=in.nextDouble();
		System.out.println("enter c");
		c=in.nextDouble();
		double num = Math.pow(b,2); //hezk
		double m=num -4*(a*c);
		double sog1 = -(b);
		double num1 = Math.sqrt(m);
		double saacplus = sog1+num1;
		double saacminus = sog1-num1;
		double h2a=2*a;
		double saacplus1=saacplus/h2a;
		double saacminus1=saacminus/h2a;
		System.out.println("x1 = " +saacplus1);
		System.out.println("x2 = " +saacminus1);
	}}
}

 

נשאל ב 16 ספטמבר, 2017 בקטגוריית תוכנה ומחשבים על יד אלמוני

תשובה אחת לשאלה

0 הצבעות
על פי בדיקה קטנה שעשיתי התוכנה שלך מוצאת את השורשים הריבעים למשוואת שיש להם שורשים ממשים בלבד.

הפקודה Math.sqrt עובדת רק על מספרים חיובים לכן יש לך בעייה.
תשובה התקבלה ב 16 ספטמבר, 2017 על יד אלמוני

שאלות קשורות

0 הצבעות
1 תשובה 9 צפיות
נשאל ב 12 פברואר, 2017 בקטגוריית מתמטיקה על יד אלמוני
0 הצבעות
0 תשובות 7 צפיות
נשאל ב 19 ספטמבר, 2017 בקטגוריית תוכנה ומחשבים על יד אלמוני
0 הצבעות
0 תשובות 8 צפיות
0 הצבעות
0 תשובות 10 צפיות
נשאל ב 16 ספטמבר, 2017 בקטגוריית תוכנה ומחשבים על יד אלמוני
0 הצבעות
1 תשובה 8 צפיות
נשאל ב 2 אוקטובר, 2016 בקטגוריית תוכנה ומחשבים על יד אלמוני
...