Что нового

[Математика] Скрипт для решения квадратных уравнений

obeyme

Новичок
Сообщения
71
Репутация
0
Здравствуйте, ув. форумчане! Из названия темы понятно, что мне нужно. Можно ли это реализовать средствами AutoIt и, если возможно, то как?
 

MnM

Post-Hardcore
Сообщения
679
Репутация
90
Могу предложить свой оооочень давний вариант, даже без gui но как помнится рабочий! можеш сделать GUI оформление=)
Код:
MsgBox(0,"Квадратное уравнение", "Уравнение имеет вид : ax^2+bx+c=0(ax^2 - это x в квадратной степени)")
$a = InputBox("Коэффициент A", "Введите коэффициент а в уравнении ax^2+bx+c=0 , Если в уравнении нет такого коэффициента, имея вид (x^2+bx+c) оставьте поле пустым и продолжите")
$b = InputBox("Коэффициент B", "Введите коэффициент b в уравнении ax^2+bx+c=0 , Если в уравнении нет такого коэффициента, имея вид (ax^2+x+c) оставьте поле пустым и продолжите")
$c = InputBox("Коэффициент C", "Введите коэффициент c в уравнении ax^2+bx+c=0 , Если в уравнении нет такого коэффициента, оставьте поле пустым и продолжите")
If $a = 0 Then
   $a = 1
EndIf
If $b = 0 Then
   $b = 1
EndIf
$b1 = Abs($b)
$D1 = ($b1 ^ 2) - 4 * $a * $c
If $D1 = 0 Then
   $s = -$b / (2 * $a)
   MsgBox(0, "X", "Дискриминант оказался нулевым, следовательно в решении оказался только 1 корень - X = " & $s)
   Exit
ElseIf $D1 < 0 Then
   MsgBox(0, "X", "Дискриминант оказался меньше чем 0 (нуль), следовательно решения нет!")
   Exit
EndIf
$D = Sqrt($D1)
$x1 = (-$b - $D) / (2 * $a)
$x2 = (-$b + $D) / (2 * $a)
MsgBox(0, "x1", "первый искомый элемент - x1 = " & $x1)
MsgBox(0, "x2", "второй искомый элемент - x2 = " & $x2)



Добавлено:
Сообщение автоматически объединено:

в прошлом году для одноклассников сделал ;D
 
Автор
O

obeyme

Новичок
Сообщения
71
Репутация
0
На счет GUI: тут же есть InputBox, этого достаточно :smile:
Щас попробую разобраться в коде, спасибо :laugh:
 

MnM

Post-Hardcore
Сообщения
679
Репутация
90
Протестил сейчас, при решении такого уравнения: x^2+7x-6=0 программа выдает не правильные данные. Причина: требуется теорема Виета :smile:
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
MnM
это потому, что там есть неправильное вычисление
Код:
$b1 = Abs($b)

хотя нет, там дальше именно $b$ используется, а не $b1$.

MnM [?]
выдает не правильные данные.
а что конкретно выдает? если x -> -0.772002, x -> 7.772, то все верно. теорема виета не очень пригодна, если корни не целые, или как минимум не рациональные.
 
Автор
O

obeyme

Новичок
Сообщения
71
Репутация
0
Просто тут ответ будет дробным, вот и все
 
Верх