Суббота, 2025-02-08, 00:09:27
Главная Регистрация RSS
Приветствую Вас, Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Решение квадратного уравнения
CHerryДата: Вторник, 2011-09-20, 03:03:58 | Сообщение # 1
Генералиссимус
Группа: Администраторы
Сообщений: 141
Репутация: 3732
Статус: 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
Генерал-майор
Группа: Администраторы
Сообщений: 21
Репутация: 1293
Статус: 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
Генералиссимус
Группа: Администраторы
Сообщений: 141
Репутация: 3732
Статус: 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
Генералиссимус
Группа: Администраторы
Сообщений: 141
Репутация: 3732
Статус: 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
Генералиссимус
Группа: Администраторы
Сообщений: 141
Репутация: 3732
Статус: 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
Рядовой
Группа: Проверенные
Сообщений: 18
Репутация: 1
Статус: 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
Генерал-майор
Группа: Администраторы
Сообщений: 21
Репутация: 1293
Статус: 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
 
  • Страница 1 из 1
  • 1
Поиск: