Wątek przeniesiony 2017-10-16 11:32 z Java przez ŁF.

Zaprezentuj kod - ax^2 + bx + c=0

0

Ogólnie polecenie brzmi. Zaprezentuj kod programu wyprowadzenia pierwiastków równania kwadratowego. ax^2+bx + c = 0. Zaimplementuj dwie metody w klasie podstawowej z metody main() wywołaj metodę obliczającą poszczególne zadania.

Zrobiłem coś takiego i nie działa...

public class PPC {
	
	public static int delta(int a, int b, int c)
	{
					
		double delta = b*b - 4*a*c;
		
		if(delta>0) {
		double pdelta = Math.sqrt(delta);
		double x1 = ((-b)+pdelta)/2*a;
		double x2 = ((-b)-pdelta)/2*a;}
		else if(delta<0) {System.out.print("Brak rozwiązań");}
		else if(delta==0) {double x0 = (-b)/2*a; System.out.print("x0" + x0);}	
		
	return (int) delta;
	
	}
	
	public static void main(String[]args)
	{
		int a = 3;
		int b = 4;
		int c = 5;
		System.out.print("a>0 lub a<0");
		
		System.out.print("Pierwiastkiem równania jest " + "x1 = " + x1 + "x2 = " + x2 + delta(a,b,c));
		
	}

}

Ktoś widzi gdzieś błąd... bo ja nie wiem gdzie go popełniam

1

Na pierwszy rzut oka widzę ze nie wiesz jaka jest kolejność wykonywania działań. Zastanów sie co daje b/2*a czy jest to b/(2*a) czy też (b/2)*a i dlaczego.

0

Źle napisałeś wzory na pierwiastki.
Dlaczego metoda delta zwraca int? Powinna zwracać typ double.

0

Sprobuj zrobic wszystko nadouble, to raz. Tam gdzie Liczysz x1, x2, w /2*a, dalbym nawiasy, dla pewnosci. No I nie lepiej zwracac pare liczb(pierwiastkow) lub [NaN, NaN], gdy zespolone?

0
package delta;

public class delta{

	  public static double delta(int a, int b, int c) {

	    return b * b - 4 * a * c;
	  }

	  public static double obliczPierwiastek(int a, int b, double delta) {
	    double pdelta = Math.sqrt(delta);
	    double x = ((-b) + pdelta) / 2 * a;

	    return x;
	  }


	  public static void main(String[] args) {
	    int a = 10;
	    int b = 30;
	    int c = 9;

	    double delta = delta(a, b, c);

	    if (delta > 0) {
	      double x1 = obliczPierwiastek(a, b, delta);
	      double x2 = obliczPierwiastek(a, b, -delta);
	      System.out.print("Pierwiastkiem równania jest " + "x1 = " + x1 + "x2 = " + x2 + delta(a, b, c));
	    } else if (delta < 0) {
	      System.out.print("Brak rozwiazan");
	    } else if (delta == 0) {
	      double x0 = obliczPierwiastek(a, b,0);
	      System.out.print("x0" + x0);
	    }
	  }
	}
3

@AdamVVV no i ten kod teraz to co? Mamy klaskać? Płakać? Nadal nie wiesz jaka jest kolejność działań.

0

Wzoru na pierwiastek nie poprawiłeś, nadal jest błędny.

0

nadal nie widzę w nim błędu ;/
na delte jest git
na pierwiastek też wydaje mi się, że jest dobrze, później zmienia mi jej znak i powinno śmigać
Co w nim jest źle?

0

Widzisz mój post tutaj: https://4programmers.net/Forum/Java/297749-zaprezentuj_kod_ax2_bx_c0?p=1407975#id1407975 ? Przeczytałeś go ze zrozumieinem?

0

zrobione - działa. Mozna post wywalić

1 użytkowników online, w tym zalogowanych: 0, gości: 1