Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Квадратное уравнение

32K
12 апреля 2011 года
turtles
42 / / 18.02.2011
Подскажите пожалуйста!!!Правильно ли написан код квадратного уравнения работая с консолью или можно его переделать произвести модернизацию кода!!! Можно пример правильного кода квадратного уравнения!!!

Код программы:

Код:
import java.io.IOException;
import java.util.InputMismatchException;
import java.util.Scanner;

public class Test
{
    static float a, b, c;
    static float d;
    static double x1, x2;

    public static void main(String args []) throws IOException
    {
    try{
        System.out.println("Решение квадратного уравнения");
        Scanner s = new Scanner(System.in);
        System.out.print("Введите значение a -> ");
        a = s.nextFloat();
        System.out.print("Введите значение b -> ");
        b = s.nextFloat();
        System.out.print("Введите значение c -> ");
        c = s.nextFloat();
        System.out.println("a = " + a + " b = " + b + " c = " + c);

        d = (b * b) - (4 * a * c);

        System.out.println("Дискриминант = " + d);

        if(d < 0)
         System.out.print("Уравнение не имеет решений!!!");
        else
        if(d == 0)
          {
            x1 = (-b) / (2 * a);
             System.out.println ("x = " + x1);
           }
           else
           {
              x1 = (-b + Math.sqrt(d)) / (2 * a);
              x2 = (-b - Math.sqrt(d)) / (2 * a);
               if (x1 == x2)
                System.out.println ("x1 = x2 " + x1);
                 else
                  System.out.println ("x1 =  " + x1 + "  x2 = " + x2);
            }
        }catch(InputMismatchException e){System.out.println("!!!Ошибка ввода!!!");}
      }
}
244
12 апреля 2011 года
UAS
2.0K / / 19.07.2006
x1 не может равнятся x2, т.к. это дробные числа. Сравнивать дробные числа нежелательно.
x1 равен x2 в случае равенства дискриминанта нулю.
Вообще, d = 0 не означает, что у уравнения один корень. Это значит, что у уравнения два корня, просто они одинаковые. Так что if (x1 == x2) здесь не нужно.

И че за идиотизм писать три восклицательных знака? И где знаки вопроса?
32K
12 апреля 2011 года
turtles
42 / / 18.02.2011
Какой лучше цикл использовать для повторения while или for !!!Например если ввел не правильное значение то программа останавливается, а после повторного ввода правильных данных программа продолжала работать!!!
63
17 апреля 2011 года
Zorkus
2.6K / / 04.11.2006
Строго говоря, квадратное уравнение всегда имеет ровно два корня, не больше и не меньше, что бы ни говорили про это на школьных уроках математики :)

А цикл можно использовать любой. Общее правило - если вы заранее можете вычислить количество итераций, берите for, если вы можете только на каждой итерации проверять условия выхода - берите while.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог