Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/40: Рейтинг темы: голосов - 40, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 06.04.2016
Сообщений: 7

Решение квадратного уравнения через теорему Виета

10.04.2017, 08:34. Показов 7424. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сделайте программу решающую квадратное уравнение через теорему Виета:
x^2+4x+2=0
v1=x1+x2=-b
v2=x1*x2=c
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.04.2017, 08:34
Ответы с готовыми решениями:

Решение квадратного уравнения через потоки
Здравствуйте, помогите, пожалуйста, написать код для расчета корней квадратного уравнения через несколько потоков. Мне задали сделать код...

Решение квадратного уравнения
Решить квадратное уравнение. Ввод коэффициентов организовать с помощью диалогового окна. По введенной цифровой оценке вывести на экран ее...

Решение квадратного уравнения
Помогите пожалуйста! Не могу найти в чем проблема, все работает, но в ответе вместо нужных корней выдаются символы типа "import...

1
 Аватар для HighPredator
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
10.01.2018, 16:02
Лучший ответ Сообщение было отмечено krohhka как решение

Решение

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
public class Solver {
    public static Pair<Integer, Integer> solveSquareEquation(final int a, final int b, final int c) throws SolverException {
 
        if ((b % a != 0) || (c % a != 0))
            throw new SolverException(String.format("Cannot solve equation %dx^2 + %dx + %d = 0. ", a, b, c) + "Reason: " +
                    "equation cannot be reduced");
 
        int p = b / a;
        int q = c / a;
        int sign1 = 1;
        int sign2 = 1;
 
        if (q < 0)
            sign1 = -1;
        else if ((q > 0) && (p > 0)) {
            sign1 = -1;
            sign2 = -1;
        }
 
        q = Math.abs(q);
 
        Map<Integer, Integer> divisors = obtainAllDivisors(q);
 
        Pair<Integer, Integer> result = null;
 
        Iterator iterator = divisors.entrySet().iterator();
        while ((iterator.hasNext()) && (result == null)) {
 
            Map.Entry entry = (Map.Entry) iterator.next();
 
            int divisor = (int) entry.getValue();
            int x1 = divisor * sign1;
            int x2 = divisors.get(q / divisor) * sign2;
 
            if (x1 + x2 == -p)
                result = new ImmutablePair<>(x1, x2);
        }
 
        if (result == null)
            throw new SolverException(String.format("Cannot solve equation %dx^2 + %dx + %d = 0. ", a, b, c) + "Reason: " +
                    "equation has no integer roots");
 
        return result;
    }
 
    private static Map<Integer, Integer> obtainAllDivisors(final int n) {
        Map<Integer, Integer> result = new HashMap<>();
 
        final int limit = (int)Math.sqrt(n);
 
        for (int i = 1; i <= limit; i++) {
            if (n % i == 0) {
 
                if (n / i != i)
                    result.put(n / i, n / i);
 
                result.put(i, i);
            }
        }
 
        return result;
    }
}
Java
1
2
3
4
5
6
7
8
9
public class SolverException extends Exception {
    public SolverException(String message) {
        super(message);
    }
 
    public SolverException(String message, Throwable cause) {
        super(message, cause);
    }
}
Tests:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
public class SolverTest {
    @Rule
    public ExpectedException expectedException = ExpectedException.none();
 
    /*
        tests x^2 + 7x + 10 = 0 equation with [-2; -5] roots
     */
    @Test
    public void testEq1() throws SolverException {
        Pair<Integer, Integer> expected = new ImmutablePair<>(-2, -5);
        Pair<Integer, Integer> actual = Solver.solveSquareEquation(1, 7, 10);
        assertEquals(expected, actual);
    }
 
    /*
        tests x^2 + 3x - 10 = 0 equation with [-5; 2] roots
     */
    @Test
    public void testEq2() throws SolverException {
        Pair<Integer, Integer> expected = new ImmutablePair<>(-5, 2);
        Pair<Integer, Integer> actual = Solver.solveSquareEquation(1, 3, -10);
        assertEquals(expected, actual);
    }
 
    /*
        tests 3x^2 - 30x + 75 = 0 equation with [5; 5] roots
     */
    @Test
    public void testEq3() throws SolverException {
        Pair<Integer, Integer> expected = new ImmutablePair<>(5, 5);
        Pair<Integer, Integer> actual = Solver.solveSquareEquation(3, -30, 75);
        assertEquals(expected, actual);
    }
 
    /*
        tests x^2 + x - 30 = 0 equation with [-6; 5] roots
     */
    @Test
    public void testEq4() throws SolverException {
        Pair<Integer, Integer> expected = new ImmutablePair<>(5, -6);
        Pair<Integer, Integer> actual = Solver.solveSquareEquation(1, 1, -30);
        assertEquals(expected, actual);
    }
 
    /*
        tests x^2 - 30x + 700 = 0 equation with no integer roots
     */
    @Test
    public void testEq5() throws SolverException {
        final int a = 1;
        final int b = -30;
        final int c = 700;
        final String expectedMessage = String.format("Cannot solve equation %dx^2 + %dx + %d = 0. ", a, b, c) + "Reason: " +
                "equation has no integer roots";
        expectedException.expect(SolverException.class);
        expectedException.expectMessage(expectedMessage);
        Solver.solveSquareEquation(a, b, c);
    }
 
    /*
        tests 3x^2 - 7x + 3 = 0 equation is unreducable
     */
    @Test
    public void testEq6() throws SolverException {
        final int a = 3;
        final int b = -7;
        final int c = 3;
        final String expectedMessage = String.format("Cannot solve equation %dx^2 + %dx + %d = 0. ", a, b, c) + "Reason: " +
                "equation cannot be reduced";
        expectedException.expect(SolverException.class);
        expectedException.expectMessage(expectedMessage);
        Solver.solveSquareEquation(a, b, c);
    }
}
Пара и сопутствующие -- отсюда: https://www.cyberforum.ru/blog... g5096.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.01.2018, 16:02
Помогаю со студенческими работами здесь

Решение квадратного уравнения
Здравствуйте, уважаемые жители форума. Помогите решить задание, не пускает правильные решения и не могу найти сам. В дополнения можете...

Решение квадратного уравнения
Подскажите пожалуйста!!!Правильно ли написан код квадратного уравнения работая с консолью или можно его переделать произвести модернизацию...

Решение квадратного уравнения
Пользователь вводит коэффициенты квадратного уравнения. Вывести на экран корни уравнения. Если первый коэффициент равен нулю, то...

Решение квадратного уравнения: выбросить исключение, если дискриминант меньше 0
Даны коэффициенты a,b,c уравнения ax2+bx+c=0. Найти решение. Задачу вроде бы решил. Хочу добавить Exception когда дискриминант меньше нуля,...

Как написать программу по решению квадратного уравнения через Теорему Виета?
Прошу помощи. Не могу додуматься до того как написать программу по вычислению Квадратного Уравнения по теореме Виета. Думал через цикл...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru