Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.03.2019, 16:55   #1
Stevo
Пользователь
 
Регистрация: 22.03.2019
Сообщений: 25
По умолчанию Решение кубического уравнения в vba

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

Задача:
С клавиатуры вводятся четыре целые числа, являющиеся коэффициентами кубического уравнения. Вывести все целые числа X принадлежащие [-10,10], которые являются решением этого уравнения.

Вот то, что я пытался навоевать, но там, скорее всего, полный завал:

Код:
Sub cubic_equation()
Dim a, b, c, d As Double, x1, x2, x3 As Integer
a = InputBox("Введите коэффициент а ")
If a = 0 Then MsgBox " а не может быть равным 0": Exit Sub
b = InputBox("Введите коэффициент b ")
с = InputBox("Введите коэффициент с ")
d = InputBox("Введите коэффициент d ")
x1 = (-bx1 ^ 2 - c - d) / a * x1 ^ 2
If -10 <= x1 <= 10 Then MsgBox "x1= " & x1 Else MsgBox "x1 не входит в отрезок [-10;10]"
x2 = (-bx2 ^ 2 - c - d) / a * x2 ^ 2
If -10 <= x2 <= 10 Then MsgBox "x2= " & x2 Else MsgBox "x2 не входит в отрезок [-10;10]"
x3 = (-bx3 ^ 2 - c - d) / a * x3 ^ 2
If -10 <= x3 <= 10 Then MsgBox "x3= " & x3 Else MsgBox "x3 не входит в отрезок [-10;10]"
End Sub

Последний раз редактировалось Stevo; 24.03.2019 в 16:58.
Stevo вне форума Ответить с цитированием
Старый 24.03.2019, 18:55   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Код:
x1 = (-bx1 ^ 2 - c - d) / a * x1 ^ 2
Что это за формула? Кто такой bx1? Вы же ищите x1 и тут же на него делите... не смущает?

https://ru.wikipedia.org/wiki/%D0%9A...BD%D0%B8%D0%B5
p51x вне форума Ответить с цитированием
Старый 24.03.2019, 23:25   #3
Stevo
Пользователь
 
Регистрация: 22.03.2019
Сообщений: 25
По умолчанию

Эта формула—выраженный x1 из уравнения :
ax1 ^3+bx1^2+cx1+d=0
Просто на запись в стандартном виде бейсик ругается и я не понимаю как ее записать.

Последний раз редактировалось Stevo; 25.03.2019 в 04:07.
Stevo вне форума Ответить с цитированием
Старый 25.03.2019, 07:17   #4
kvitaliy
Участник клуба
 
Регистрация: 17.05.2011
Сообщений: 1,660
По умолчанию

Перебираем делители от 1 до кв. корня из d, большего делителя быть не может.
Цикл проходится два раза, с k=-j и k=j
Код:
Sub cubic_equation()
Dim i, j, k, a, b, c, d
Dim Otvet$
a = InputBox("Введите коэффициент а ")
If a = 0 Then MsgBox " а не может быть равным 0": Exit Sub
b = InputBox("Введите коэффициент b ")
c = InputBox("Введите коэффициент с ")
d = InputBox("Введите коэффициент d ")
If d = 0 Then MsgBox " d не может быть равным 0": Exit Sub
i = 6
For j = 1 To Sqr(Abs(d))
  If d Mod j = 0 Then
    For k = -j To j Step 2 * j
      If a * k * k * k + b * k * k + c * k + d = 0 Then
         Otvet$ = Otvet + " ; x" & (i - 5) & " = " & k
        i = i + 1
         
      End If
    Next
  End If
Next
If i = 6 Then
MsgBox ("Целых корней нет!")
Else
MsgBox (Otvet$)
End If
End Sub
kvitaliy вне форума Ответить с цитированием
Старый 30.03.2019, 00:15   #5
Stevo
Пользователь
 
Регистрация: 22.03.2019
Сообщений: 25
По умолчанию

Спасибо большое!
Stevo вне форума Ответить с цитированием
Старый 30.03.2019, 00:41   #6
Stevo
Пользователь
 
Регистрация: 22.03.2019
Сообщений: 25
По умолчанию

Цитата:
Сообщение от kvitaliy Посмотреть сообщение
Перебираем делители от 1 до кв. корня из d, большего делителя быть не может.
Цикл проходится два раза, с k=-j и k=j
Код:
Sub cubic_equation()
Dim i, j, k, a, b, c, d
Dim Otvet$
a = InputBox("Введите коэффициент а ")
If a = 0 Then MsgBox " а не может быть равным 0": Exit Sub
b = InputBox("Введите коэффициент b ")
c = InputBox("Введите коэффициент с ")
d = InputBox("Введите коэффициент d ")
If d = 0 Then MsgBox " d не может быть равным 0": Exit Sub
i = 6
For j = 1 To Sqr(Abs(d))
  If d Mod j = 0 Then
    For k = -j To j Step 2 * j
      If a * k * k * k + b * k * k + c * k + d = 0 Then
         Otvet$ = Otvet + " ; x" & (i - 5) & " = " & k
        i = i + 1
         
      End If
    Next
  End If
Next
If i = 6 Then
MsgBox ("Целых корней нет!")
Else
MsgBox (Otvet$)
End If
End Sub
Можете пожалуйста объяснить вот эту строчку:
Otvet$ = Otvet + " ; x" & (i - 5) & " = " & k
Stevo вне форума Ответить с цитированием
Старый 31.03.2019, 16:40   #7
Stevo
Пользователь
 
Регистрация: 22.03.2019
Сообщений: 25
По умолчанию Решение кубического уравнения через функцию, vba excel

Здравствуйте, помогите, пожалуйста, написать программу в vba excel по заданию с использованием функции.

Задание:
С клавиатуры вводятся четыре целые числа, являющиеся коэффициентами кубического уравнения. Вывести все целые числа x[-10,10], являющиеся решением этого уравнения.

Код:
Sub cubic_equation()
Dim i, j, k, a, b, c, d
Dim Otvet$
a = InputBox("Введите коэффициент а ")
If a = 0 Then MsgBox " а не может быть равным 0": Exit Sub
b = InputBox("Введите коэффициент b ")
c = InputBox("Введите коэффициент с ")
d = InputBox("Введите коэффициент d ")
If d = 0 Then MsgBox " d не может быть равным 0": Exit Sub
i = 6
For j = 1 To Sqr(Abs(d))
  If d Mod j = 0 Then
    For k = -j To j Step 2 * j
      If a * k * k * k + b * k * k + c * k + d = 0 Then
         Otvet$ = Otvet + " ; x" & (i - 5) & " = " & k
        i = i + 1
         
      End If
    Next
  End If
Next
If i = 6 Then
MsgBox ("Целых корней нет!")
Else
MsgBox (Otvet$)
End If
End Sub
Stevo вне форума Ответить с цитированием
Старый 31.03.2019, 16:48   #8
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

http://www.programmersforum.ru/showthread.php?t=327552
p51x вне форума Ответить с цитированием
Старый 31.03.2019, 19:59   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
http://www.programmersforum.ru/showthread.php?t=327552
Спасибо. Слил в одну тему.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение кубического уравнения методом хорд (Python) Jloku Python 1 07.11.2012 03:06
Программа - решение кубического уравнения методом хорд. Гена1 Помощь студентам 0 28.05.2012 10:03
Задачи на Паскаль: выбор нужных элементов из массива, решение кубического уравнения Алексей4 Помощь студентам 4 09.07.2011 12:39
Реализация решения кубического уравнения niziriska Помощь студентам 2 12.05.2009 12:22