Решение квадратного уравнения
|
|
CHerry | Дата: Вторник, 2011-09-20, 03:03:58 | Сообщение # 1 |
![CHerry](/avatar/97/8071-240618.gif) Генералиссимус
Группа: Администраторы
Сообщений: 141
Статус: Offline
| Квадратное уравнение — это уравнение вида ax2 + bx + c = 0, где a не равно 0.
Для решения квадратного уравнения можно использовать формулы: x1 и x2
где D = b2 - 4ac — дискриминант многочлена ax2 + bx + c.
Если D > 0, то уравнение имеет два различных вещественных корня. Если D = 0, то оба корня вещественны и равны. Если D < 0, то оба корня являются комплексными числами.
источник и on-line расчет
предлагаем код своего решения на java ....
|
|
| |
MINIsha | Дата: Вторник, 2011-09-20, 20:37:49 | Сообщение # 2 |
![MINIsha](/avatar/89/323772.jpg) Генерал-майор
Группа: Администраторы
Сообщений: 21
Статус: Offline
| Code import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;
public class sqrd { public static void main (String[] args) throws IOException { double a, b, c, x1 = 0, x2 = 0;// х1 и х2 - это корни уравнения
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Vvedite peremennye kvadratnogo uravneniya:");
System.out.print("a= ");
a = Double.parseDouble(br.readLine()); System.out.print("b= "); b = Double.parseDouble(br.readLine()); System.out.print("c= "); c = Double.parseDouble(br.readLine());
double D =b*b - 4* a * c;//вычисляем дискриминант if (D>0){ x1 =(-b - Math.sqrt(D))/2*a; x2 =(-b+Math.sqrt(D))/2*a; System.out.println("X1 = " + x1+" " + "X2 = " + x2);//если дискриминант полож. то ур-е //имеет два корня } if (D==0){ x1 = -b/(2*a); System.out.println("X0 = "+x1+ " " + "D = 0");//если равен нулю - то корни равны } if (D<0){ System.out.println("Deystvitel'nyh korney net!!!" +" "+"D<0");//если отрицательный - //ур-е не имеет действитель //ных корней }
System.out.println("Eshco?" ); } }
Вопрос: каким образом вернуться в начало?
Почему? ДА ЧЕРЕЗ ПОТОМУ КАК ЧТОЖ!
Сообщение отредактировал MINIsha - Вторник, 2011-09-20, 20:47:29 |
|
| |
CHerry | Дата: Вторник, 2011-09-20, 21:50:41 | Сообщение # 3 |
![CHerry](/avatar/97/8071-240618.gif) Генералиссимус
Группа: Администраторы
Сообщений: 141
Статус: Offline
| Вот в не правильном, с точки зрения java процедурном стиле:
Code import java.io.*; public class quadraticEquation { /** Calculation of the quadratic equation * @param args * for values a>0 * D - discriminant, D=b*b-4*a*c * D<0 reply: x1,x2- complex numbers * D>=0 reply: * x1=(-b+sqr(D))/2*a * x2=(-b-sqr(D))/2*a */ static double a; static double b; static double c; // Request a cyclic calculation, input parameters and output solution public static void main(String[] args) { while (inputValue("Do you want to calculate a quadratic equation" + " ax2 + bx + c = 0 ? (yes-1, no-0)")==1) { a = inputValue("Input value a:"); b = inputValue("Input value b:"); c = inputValue("Input value c:"); outputRuts(); } } // print message and get the value static double inputValue(String outMessage){ boolean error; // entered double or string double var = 0; // output argument do{ error=false; System.out.println(outMessage); BufferedReader buf = new BufferedReader( new InputStreamReader(System.in)); try { String str= buf.readLine(); var = Double.parseDouble(str); } catch (Exception e) { error=true; // entered not a double System.out.println("Error-"+e+" enter the number!"); } }while (error); // repeat if double is not entered return var; } // Calculation discriminant static double discriminant (double a, double b,double c) { return b*b-4*a*c; } // Output solution static void outputRuts(){ if (a>0){ double d = discriminant(a,b,c); if (d>=0){ double x1=(-b+Math.sqrt(d))/(2*a); double x2=(-b-Math.sqrt(d))/(2*a); System.out.println("Solution x1="+x1+", x2="+x2); } else { System.out.println("Values d<0 !, x1,x2- complex numbers!"); } } else { System.out.println("Values a>0 !, no solution!"); } } }
|
|
| |
CHerry | Дата: Вторник, 2011-09-20, 21:59:48 | Сообщение # 4 |
![CHerry](/avatar/97/8071-240618.gif) Генералиссимус
Группа: Администраторы
Сообщений: 141
Статус: Offline
| Quote (MINIsha) Вопрос: каким образом вернуться в начало? Code public static void main(String[] args) { // продолжать этот цикл пока не ответят no-0 while (inputValue("Do you want to calculate a quadratic equation" + " ax2 + bx + c = 0 ? (yes-1, no-0)")==1) { // спрашиваем аргументы уравнения a = inputValue("Input value a:"); b = inputValue("Input value b:"); c = inputValue("Input value c:"); // функция печати и расчета дискриминанта outputRuts(); } }
|
|
| |
CHerry | Дата: Среда, 2011-09-21, 00:35:45 | Сообщение # 5 |
![CHerry](/avatar/97/8071-240618.gif) Генералиссимус
Группа: Администраторы
Сообщений: 141
Статус: Offline
| Вот с объектом класса Code import java.io.*; public class Equation { /** * Class as the type equation * @param double a, double b, double c */ public String calculationRuts(double a, double b, double c){ String result = null; if (a>0){ double d = b*b-4*a*c; // Calculation discriminant if (d>=0){ double x1=(-b+Math.sqrt(d))/(2*a); double x2=(-b-Math.sqrt(d))/(2*a); result = "Solution x1="+x1+", x2="+x2; } else { result ="Values d<0 !, x1,x2- complex numbers!"; } } else { result ="Values a>0 !, no solution!"; } return result; } // Entry point public static void main(String[] args) { // Creating an object quadEq from class Equation Equation quadEq= new Equation(); while (inputValue("Do you want to calculate a quadratic equation" + " ax2 + bx + c = 0 ? (yes-1, no-0)")==1) { System.out.println(quadEq.calculationRuts( inputValue("Input value a:"), inputValue("Input value b:"), inputValue("Input value c:"))); } } static double inputValue(String outMessage){ boolean error; // entered double or string double var = 0; // output argument do{ error=false; System.out.println(outMessage); BufferedReader buf = new BufferedReader( new InputStreamReader(System.in)); try { String str= buf.readLine(); var = Double.parseDouble(str); } catch (Exception e) { error=true; // entered not a double System.out.println("Error-"+e+" enter the number!"); } }while (error); // repeat if double is not entered return var; }
}
|
|
| |
j_todesky | Дата: Среда, 2011-09-21, 02:52:17 | Сообщение # 6 |
![j_todesky](https://171975345.uid.me/avatar.jpg) Рядовой
Группа: Проверенные
Сообщений: 18
Статус: Offline
| Code import java.util.Scanner; public class Main { //cчитывание с клавиатуры + конвертация в double public static double EnteringElements (String f ) { System.out.println(f); Scanner sc = new Scanner(System.in); String str = sc.next(); double n=0; try{ n=Double.parseDouble(str); } catch (NumberFormatException e) { System.out.println(" Enter only digits"); } return n; } // нихождение дискриминта public static double Diskriminant(double a, double b , double c) { double d= b*b-4*a*c; return d; } //процесс решения уравнения static void solvingEquation(double a,double b,double c,double de) { double z = c-de; double d =Diskriminant(a,b,z); if (d>0) { double x1=(-b+Math.sqrt(d))/(2*a); double x2=(-b-Math.sqrt(d))/(2*a) ; System.out.println("x1 = "+ x1+" x2 = "+x2); } else if (d==0) { double x=(-b)/(2*a); System.out.println("x = "+ x); } else if(d<0){ System.out.println("solutions are complex"); } }
public static void main(String[] args) { while(true) { System.out.println("solving of the qudratic equation ax²+by+c=0"); double a = EnteringElements("Enter a, "+"a = "); double b = EnteringElements("Enter b, "+"b = "); double c = EnteringElements("Enter c, "+"c = "); double de =EnteringElements("Enter d, "+"d = "); System.out.println("your equation: "+a+"x² + "+b+"y + "+c+" = "+de); solvingEquation(a,b,c,de); System.out.println("Would you like to solve another equation?"); System.out.println("if yes - print y, if no - print n"); Scanner sc = new Scanner(System.in); String answ=sc.next(); if ("n".equals(answ))break; else if("y".equals(answ))continue; else {System.out.println("Error entering"); break; } } } }
|
|
| |
MINIsha | Дата: Среда, 2011-09-21, 12:48:42 | Сообщение # 7 |
![MINIsha](/avatar/89/323772.jpg) Генерал-майор
Группа: Администраторы
Сообщений: 21
Статус: Offline
| Товарищи!!! А вот вам Индусский (но рабочий) код:
Code import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;
public class sqrt { public static void main (String[] args) throws IOException { char s1; String s; do { double a, b, c, x1 = 0, x2 = 0; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print("a= "); a = Double.parseDouble(br.readLine()); System.out.print("b= "); b = Double.parseDouble(br.readLine()); System.out.print("c= "); c = Double.parseDouble(br.readLine()); double D =b*b - 4* a * c; if (D>0){ x1 =(-b - Math.sqrt(D))/2*a; x2 =(-b+Math.sqrt(D))/2*a; System.out.println("X1 = " + x1+" " + "X2 = " + x2);} if (D==0){ x1 = -b/(2*a); System.out.println("X0 = "+x1+ " " + "D = 0");} if (D<0){ System.out.println("Deystvitel'nyh korney net!!!" +" "+"D<0");} System.out.println("Eshco? y/n" ); BufferedReader br1 = new BufferedReader(new InputStreamReader(System.in)); s =br1.readLine(); s1= s.charAt(0);} while (s1!='n'); }
}
Почему? ДА ЧЕРЕЗ ПОТОМУ КАК ЧТОЖ!
Сообщение отредактировал MINIsha - Среда, 2011-09-21, 13:00:59 |
|
| |