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

כתבתי את הקוד הבא אבל אם 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);
	}}
}

 

תשובה 1 לשאלה

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

הפקודה Math.sqrt עובדת רק על מספרים חיובים לכן יש לך בעייה.

שאלות קשורות

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