Решение квадратных уравнений

Решение квадратных уравнений. Javascript

Мы уже рассмотрели некоторые теоретические темы на страницах блога, поэтому можно немножко и попрактиковаться. Со сложного начинать, конечно же, не стоит, а потому можно озадачиться созданием маленькой программки-решалки простых квадратных уравнений, которые проходили в школе. Безусловно, не стоит использовать ее на занятиях для получения хороших оценок, но в качестве практики программирования- вполне сойдет.

Первым делом, стоит отметить, что данная версия программы - сырая и недоделанная. Возможно, в будущем, будет расширен функционал и возможности.

Что ж, давайте начнем! )

Как решать квадратные уравнения. Теория

Для того, чтобы написать программку, способную решать простые квадратные уравнения, давайте немного вспомним теорию и определимся с задачами.

Итак, уравнение имеет вид:

ax²+bx+c=0

где а,b,с - числа в конкретном примере.

Для того, чтобы решить уравнение, вводится понятие дискриминанта. Он рассчитывается по формуле:

D=b²-4ac

После нахождения дискриминанта, мы уже сможем решить и саму задачу.

X1,X2=(-b±√D)/2a

Надеюсь, что вы помните о том, что в квадратных уравнениях имеется по 2 значения Х

Итак, основные пункты в решении квадратного уравнения мы вспомнили. Давайте же приступим к написанию самой программки:

Решение квадратных уравнений - ver.0.1

Первым делом приступим к созданию функции и объявлению переменных. Как видно из теоретической части, для начала нам потребуются 4 переменных - вводимые пользователем значения "а","b","c" и дискриминант (назовем его disc)

Поскольку брать значения переменных предполагается со страницы, то тут придется воспользоваться document.getElementById().value, который передаст нам значения из формы.


Поскольку бывают уравнения, в которых a,b или с = 1, необходимо предусмотреть, что пользователь вряд ли будет вводить эту самую 1 перед х, так как это обычно не принято, а значит, следует дать команду компьютеру об этом.

При том, не введение пользователем значения c скорее будет означать что оно =0, нежели 1.


function runscripto(){
//задаем вводные данные уравнения
var a = document.getElementById("inputusera").value;
if (a=" "){a=1};
var b = document.getElementById("inputuserb").value;
if (b=" "){b=1};
var c = document.getElementById("inputuserc").value;
if (c=" "){c=0};
//вычисляем дискриминант
var disc = (Math.pow(b,2) - (4*a*c));

if (a=" "){a=1}; означает, что в случае, если пользователь не ввел значение a в форму, программа посчитает, что а=1

Теперь же нам следует предусмотреть следующий вариант развития событий, а именно - значение дискриминанта. Соответственно, необходимо выполнить проверку, действительно ли он больше 0 и произвести решение только в том случае, если это так...

if (disc>=0){
var x1 = ((-b)+Math.sqrt(disc))/(2*a);
var x2 = ((-b)-Math.sqrt(disc))/(2*a);

Об объекте Math можно прочитать в статье Объект Math в JavaScript - там разбиралось как возведение в степень Math.pow, так и квадратные корни Math.sqrt

Поскольку вывод решения планируется на той же странице, создадим элементы, которые будут отвечать за вывод решения на странице, а также сообщение, появляющееся в том случае, если дискриминант меньше нуля:

document.getElementById("output").value= ("Найдем дискриминант: D= b^2 - 4ac = "+ disc);
document.getElementById("output2").value= ("X1= "+x1);
document.getElementById("output3").value= ("X2= "+x2);

}
else{
document.getElementById("output").value= ("D = b^2 - 4ac = "+ disc);
document.getElementById("output2").value= ("Дискриминант меньше нуля. Решений нет!");
}}</script>

Тут, собственно, и все - наш скрипт, способный решать простейшие квадратные уравнения, готов. Осталось лишь привязать его к странице - написать ее собственный код или вставить скрипт на существующую страницу сайта. Например, Об этом есть в статье Как вставить JavaScript в WordPress

Разберем же код с отдельной страницей внутри <body>:

<body><h1>Решение квадратных уравнений</h1>
<p>Перед тем, как ввести данные, приведите уравнение к виду ax<sup><small>2</small></sup> + bx + c = 0<br>

<form>
<p align="center">Подставь значения
<input type="text" name="a" id="inputusera" value="" size="6">x<sup><small>2</small></sup> + <input type="text" name="b" id="inputuserb" value="" size="6">x + <input type="text" name="c" id="inputuserc" value="" size="6">=0<br><br>
<input type="button" name="Gogogo" value="Решить!" onclick="runscripto()">
<p align= "center"><output type="text" name="output" value="0" id="output" size="6"/></p>
<p align= "center"><output type="text" name="output2" value="0" id="output2" size="6"/></p>
<p align= "center"><output type="text" name="output3" value="0" id="output3" size="6"/></p>

</form>
</body>

В данном фрагменте, помимо вводных данных, которые требуется ввести от пользователя (input), присутствует также и описание вывода (output) и кнопка, запускающая функцию runscripto(), которая и позволяет решить уравнение.

Подробнее о формах и о том, как связать Javascript со страницей можете прочесть в статейке Параллельные массивы в Javascript. Часть 2.

Ну и традиционно, полный код и рабочий скрипт:

Весь код целиком Развернуть/свернуть

Автоматическое решение квадратных уравнений

Перед тем, как ввести данные, приведите уравнение к виду ax2 + bx + c = 0

Подставь значения
x2 + x + =0

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