solveQuadratic()
Решить квадратное уравнение a*x^2 + b*x + c = 0. Вернуть любой из корней; в случае если корней нет, вернуть NaN.
by Kate Pshidatok
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/mocha/2.4.5/mocha.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/chai/3.5.0/chai.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/mocha/2.4.5/mocha.min.css">
<div id="mocha">
</div>
<script>
mocha.setup('bdd');
var assert = chai.assert;
var expect = chai.expect;
</script>
<script>
describe("solveQuadratic", function() {
before(function () {
chai.config.includeStack = false;
});
it("два разных корня", function() {
var x = solveQuadratic(1, -5, 6);
assert.ok(x == 2 || x == 3);
});
it("один кратный корень", function() {
assert.equal(-3, solveQuadratic(1, 6, 9));
});
it("нет корней", function() {
assert.isNaN(solveQuadratic(1, 2, 4));
});
});
mocha.run();
</script>
JavaScript
function solveQuadratic(a, b, c){
var x1;
var x2;
var D = b*b-4*a*c;
if (D>0){
x1 = (-b + Math.sqrt(D))/2*a;
x2 = (-b - Math.sqrt(D))/2*a;
alert("2 корня"+ x1 + x2);
}else if (D==0){
x1=-b/(2*a);
alert("1 корень"+ x1);
}else{
x1=NaN;
alert("нет корней");
}
return x1;
return x2;
}