Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 15.10.2020
Сообщений: 66
Excel

Программа для решения квадратного уравнения

11.06.2021, 13:30. Показов 2168. Ответов 16

Студворк — интернет-сервис помощи студентам
Написать программу которая будет высчитывать корни уравнения a,b,c теоремой виета.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.06.2021, 13:30
Ответы с готовыми решениями:

Модифицировать программу решения квадратного уравнения
Модифицировать программу решения квадратного уравнения так, чтобы она не выдавала ошибку ни при каких введенных a,b,c.

Создать в Excel функцию решения квадратного уравнения
Помогите пожалуйста. Задание: Создать в Excel функцию решения квадратного уравнения. На вход подается три коэффициента, на выходе...

Разработать программу решения квадратного уравнения ( подпрограмму, функция)
Разработать пользовательскую функцию и подпрограмму для распечатки значений функции y=ax^2+bx+c при изменении переменной x в интервале от 1...

16
 Аватар для Narimanych
2751 / 1725 / 779
Регистрация: 23.03.2015
Сообщений: 5,449
11.06.2021, 13:34
А что такое
Цитата Сообщение от Distortion2 Посмотреть сообщение
виета
Добавлено через 57 секунд
Distortion2,

Не по теме:

А вы почему свой ник с большой буквы написали?

0
0 / 0 / 0
Регистрация: 15.10.2020
Сообщений: 66
11.06.2021, 13:42  [ТС]
Narimanych, Сумма корней x2 + bx + c = 0 равна второму коэффициенту с противоположным знаком, а произведение корней равняется свободному члену.
Если дано x2 + bx + c = 0, где x1 и x2 являются корнями, то справедливы два
равенства: x1+x2=-b; x1*x2=c.

Добавлено через 4 минуты
Narimanych, Теорема Виета выполняется только тогда, когда квадратное уравнение
является приведенным, то есть его первый коэффициент равен единице:
ax^2+ bx + c = 0, где а = 1.
Если квадратное уравнение не является приведенным, но задание связано с
применением теоремы, нужно обе части разделить на коэффициент, который
располагается перед x^2:
ax^2+bx+c=0
ax^2/a+bx/a+c/a=0/a
x^2+(b/a)x+c/a=0
сумма и произведение корней будут иметь вид:
x1+x2=-b/a
x1*x2=c/a
0
859 / 509 / 187
Регистрация: 09.03.2009
Сообщений: 1,720
11.06.2021, 13:46
Это все замечательно, но корни предлагается _подбирать_. Потому что выражение из одного уравнения x1 и подстановка его во второе приводит опять же к квадратному уравнению относительно x2. И как компу прикажете гадать? Или второе уравнение уже через дискриминант решать?
0
0 / 0 / 0
Регистрация: 15.10.2020
Сообщений: 66
11.06.2021, 13:53  [ТС]
Не совсем понял о чем вы, у дискриминанта другая формула нахождения, и пример с дискриминантом у меня есть, но я не знаю как с виетой быть. Я же скинул теоретические основы по теме. Возможно эту часть я кинул лишнее: Если квадратное уравнение не является приведенным, но задание связано с
применением теоремы, нужно обе части разделить на коэффициент, который
располагается перед x^2:
ax^2+bx+c=0
ax^2/a+bx/a+c/a=0/a
x^2+(b/a)x+c/a=0
0
859 / 509 / 187
Регистрация: 09.03.2009
Сообщений: 1,720
11.06.2021, 14:01
По т.Виета Вы получаете систему двух уравнений, связывающий корни исходного уравнения. Как Вы собираетесь эти корни (x1, x2) найти?

Для a*x^2 + p*x + q = 0 получаем:

x1 + x2 = -p / a
x1 * x2 = q / a

Например, x^2 - 8*x - 9 = 0 дает:

x1 + x2 = 8
x1 * x2 = -9

А дальше что? Как компьютер должен угадать корни?

Ибо, если выразить из второго x1 = -9 / x2 и подставить в первое, получаем -9/x2 + x2 = 8 или -9 + (x2)^2 = 8*x2, что есть (x2)^2 - 8*x2 - 9 = 0 - оп-па, мы вернулись к исходному уравнению, только переменная названа икс-2 вместо икс.
0
0 / 0 / 0
Регистрация: 15.10.2020
Сообщений: 66
11.06.2021, 15:00  [ТС]
Если бы я знал, то не создавал бы тему ,если смотреть на мой пример то перед основной формулой есть условия для уравнения, по ним он видимо и высчитывает
0
859 / 509 / 187
Регистрация: 09.03.2009
Сообщений: 1,720
11.06.2021, 16:01
Читаем интернет:
Значимость теоремы Виета заключается в том, что, не зная корней квадратного трехчлена, мы легко можем вычислить их сумму и произведение, то есть простейшие симметричные многочлены от двух переменных x1+x2 и x1*x2 . Теорема Виета позволяет угадывать целые корни квадратного трехчлена.
Угадывать - обратите внимание! Если вы угадаете один корень - да, сможете найти другой. Но на каком диапазоне X комп должен искать первое решение? Это уже исследование функций, производные, смена знака. Так, без знания, табулировать можно долго и не попасть в точку. Когда известен интервал (при наличии корней вообще), можно и подбирать (а второй по Виета), и половинным делением, и еще кучей способов.
0
 Аватар для Narimanych
2751 / 1725 / 779
Регистрация: 23.03.2015
Сообщений: 5,449
11.06.2021, 16:52
Если нужно искать только целые числа- вопросов нет...

надо разложить q Zeag,
Цитата Сообщение от Zeag Посмотреть сообщение
угадывать целые корни квадратного трехчлена.
если только целые, то проблем не возникает...
0
859 / 509 / 187
Регистрация: 09.03.2009
Сообщений: 1,720
11.06.2021, 17:49
Ну да, в таком плане можно. На сомножители. Но если не целое или q - простое число, то не получится этим способом.
0
0 / 0 / 0
Регистрация: 15.10.2020
Сообщений: 66
11.06.2021, 18:16  [ТС]
Да разве все так сложно, вот пример на дискриминанте, мне бы теперь под виету подогнать и все. Не нужно какими то несколькими способами решать, графическими или методом итерации или половинного деления. Просто уравнение
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Public Function SquareEquation(a As Integer, b As Integer, c As Integer) As String
Dim answer1 As String
Dim answer2 As String
If a = 0 Then
 answer1 = "Единственный корень - "
 SquareEquation = answer1 & "(" & -c / b & ")"
ElseIf c = 0 Then
 answer1 = "Единственный корень - "
 SquareEquation = answer1 & "(" & -b / a & ")"
ElseIf b = 0 And c < 0 Then
 answer1 = "Единственный корень - "
 SquareEquation = answer1 & "(" & Sqr(a / c) & ")"
ElseIf b ^ 2 - 4 * a * c >= 0 Then
 answer1 = "Первый корень - "
 answer2 = "Второй корень - "
 SquareEquation = answer1 & "(" & (-b + Sqr(b ^ 2 - 4 * a * c)) / (2 * a) & ")" & "; " & _
 answer2 & "(" & (-b - Sqr(b ^ 2 - 4 * a * c)) / (2 * a) & ")"
Else:
 SquareEquation = "Решений нет"
End If
End Function
0
859 / 509 / 187
Регистрация: 09.03.2009
Сообщений: 1,720
11.06.2021, 18:19
Цитата Сообщение от Distortion2 Посмотреть сообщение
Да разве все так сложно
Ну раз не сложно, сделайте и нам покажите.
0
0 / 0 / 0
Регистрация: 15.10.2020
Сообщений: 66
11.06.2021, 18:37  [ТС]
Я не знаю как, я думал , что просто тут изменить условия и саму формулу под виета, только я не знал как именно прописать условия, вот и спросил. Если это вообще не так делается, то мои полномочия тем более все.
0
859 / 509 / 187
Регистрация: 09.03.2009
Сообщений: 1,720
11.06.2021, 18:53
Формула Виета дает соотношение между корнями, но не их самих.
Формулы Виета — формулы, связывающие коэффициенты многочлена и его корни.

Этими формулами удобно пользоваться для проверки правильности нахождения корней многочлена, а также для составления многочлена по заданным корням.

Следствие: из последней формулы Виета следует, что если корни многочлена целочисленные, то они являются делителями его свободного члена, который также целочисленный.
Это цитаты из википедии.
0
0 / 0 / 0
Регистрация: 15.10.2020
Сообщений: 66
11.06.2021, 20:52  [ТС]
Вы выше упоминали что можете для целых чисел сделать, может тогда на этом и остановимся? Все программы которые я порыскал в интернете щас, сделаны только под целые числа.
0
859 / 509 / 187
Регистрация: 09.03.2009
Сообщений: 1,720
11.06.2021, 21:13
В уравнении a*x^2 + p*x + q = 0 свободный член - это q.

Тут было такое: Как показать в ячейках Excel все делители заданного числа?
В этом коде n - число, делители которого ищутся. Определяем их этим кодом для q/a. Только для отрицательных сперва взять модуль, а потом делителям знак поменять (в массив пишем).

По теореме Виета соотношения:

x1 + x2 = -p / a
x1 * x2 = q / a

В цикле по делителям члена q берем очередное значение (это будет x1), вычисляем x2 как (q/a) / x1.
Проверяем, выполняется ли для этой пары условие x1 + x2 = -p / a или нет. Если да, корни найдены, если нет - к следующим делителям.
Если цикл прошли и не нашли - целочисленных корней нет.

Для x^2 - 8*x - 9 = 0 имеем:

x1 + x2 = 8
x1 * x2 = -9

Делители -9 будут -1, -3, -9. Берем x1 := -1, тогда x2 должен быть 9 (из -9/-1). Проверяем: -1 + 9 = 8 - выполняется, так что корни x1=-1, x2=9.
1
0 / 0 / 0
Регистрация: 15.10.2020
Сообщений: 66
11.06.2021, 22:01  [ТС]
Я не могу это реализовать в Visual Basic...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.06.2021, 22:01
Помогаю со студенческими работами здесь

Программа для решения нелинейного уравнения, выдает ошибку в функции
Задача : Составить программу для решения нелинейного уравнения с точностью четырьмя способами: 1. по методу половинного деления: ...

Программа для решения квадратного уравнения
Программа для решения простейших квадратных уравнений.

Составить программу решения квадратного уравнения
Составить программу решения квадратного уравнения ax^2+bx+c=0 на языке Qbasic

Написать программу решения квадратного уравнения методом половинного деления
Пожалуйста, помогите написать программу решения любого квадратного уравнения, например х2+х-12, чтобы понять как вообще пишется такая...

Как составить разветвляющуюся программу решения квадратного уравнения вида ax^2+bx+c=0
Составьте разветвляющуюся программу решения квадратного уравнения вида ax^2+bx+c=0 Желательно прикрепить скрин формы


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru