0 / 0 / 0
Регистрация: 06.04.2016
Сообщений: 7

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

10.04.2017, 08:34. Показов 7477. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru