2014-10-02 3 views
0

Я создал html-страницу с 2 кнопками. Один для уравнений первой степени и для квадратичных. У меня есть 3 формы для аб и с (квадратного уравнения)Квадратичное уравнение в Javascript не работает

1-го уравнения степени решены правильно, но я не могу сказать то же самое для квадратичных уравнений !!! Так вот мой код:

HTML: 
<!DOCTYPE html> 
<html> 
<head> 
<meta charset="utf-8"/> 
    <title>Equations</title> 
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script> 
<link rel="stylesheet" type="text/css" href="../../css/bootstrap.min.css"> 
<link rel="stylesheet" type="text/css" href="../../css/bootstrap-theme.min.css"> 


</head> 
<body class="bg-info"> 
<div class="container"> 
    <div class="jumbotron text-center h1"> 
     Choose the type of equation you want and press = 
    </div> 
    <div class="btn btn-block btn-success" onclick="$('.a').show();$('#c').hide()"> 1st degree</div> 
    <div class="btn btn-block btn-info" onclick="$('.a,#c').show();">Quadratic</div> 
    <input type="text" id="a" class="a b"> 
    <input type="text" id="b" class="a b"> 
    <input type="text" id="c"> 
    <div class="btn btn-info" onclick="equationType()">=</div> 
</div> 
</body> 
</html> 

а вот мой Javascript:

function quadratic(){ 
    var a=$("#a").val(); 
    var b=$("#b").val(); 
    var c=$("#c").val(); 
    var D=b*b - 4 * a * c; 
    var base = 2 * a; 
    var sD=Math.sqrt(D); 
    if (D < 0) { 
     alert("Can't be solved") 
    } 
    else if (D === 0){ 
     var dx=(b*(-1))/(2 * a); 
     alert("Double solution:"+dx) 
    } 
    else{ 
    var x1=-b+sD/base; 
    var x2=-b-sD/base; 
    alert("X1: "+x1+" X2: "+x2) 
    } 
} 

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

+0

Пожалуйста, добавьте больше информации о том, что происходит, когда оно не работает. Есть ли ошибка или вы получаете неправильные значения. Что вы сделали для решения этой проблемы? – BrightIntelDusk

+0

Не обращая внимания на вопрос в течение минуты, я хотел бы отметить, что получить квадратный корень из D, а затем проверить, является ли D <0 неправильным порядком. Вам нужно всего лишь получить квадратный корень из D, если D> 0, поэтому по крайней мере переместите эту строку после последнего. –

+0

Не уверен, что вы просите. Я предполагаю, что вы получаете какой-то ответ, но не знаете, правильно ли он ...? Лучше всего протестировать ваше приложение, вручную выяснив правильный ответ, а затем посмотрите, делает ли приложение то же самое ?? –

ответ

0

Отдел имеет более высокий приоритет. Вы должны сделать

(-b+sD)/base 

и

(-b-sD)/base 

Например, (1 + 2)/10 == 0.3 то время как 1 + 2/10 == 1.2.

0

Когда вы получаете значение со своих входов, это строки. Вам необходимо, чтобы они плавали, чтобы вы могли на них работать:

var a = parseFloat($("#a").val()); 
var b = parseFloat($("#b").val()); 
var c = parseFloat($("#c").val()); 
+0

Stil not working :( –

+0

Не уверен, что еще не так, но это определенно является частью проблемы – Brennan

0
Finally division was the problem so here it is: 
function quadratic(){ 
    var a=$("#a").val(); 
    var b=$("#b").val(); 
    var c=$("#c").val(); 
    var D=b*b - 4 * a * c; 
    var base = 2 * a; 
    var sD=Math.sqrt(D); 
    if (D < 0) { 
     alert("Can't be solved") 
    } 
    else if (D === 0){ 
     var dx=(b*(-1))/(2 * a); 
     alert("Double solution:"+dx) 
    } 
    else{ 
    var x1=(-b+sD)/base; 
    var x2=(-b-sD)/base; 
    alert("X1: "+x1+" X2: "+x2) 
    } 
} 
Смежные вопросы