idv Kvadur решает квадратные уравнения. Особенность этого скрипта заключается в том, что полный ход решения выводится на экран.
Дополнительные функции: печать решения, html-код решения, etc. Этот код ставим в ПУ-Страницы сайта-между head и /head :
Code
<style type='text/css'>
.idv_1 {border-collapse: collapse; border: 1px solid black}
table.idv_1 * {font-size: 10px; font-family: Verdana}
.idv_2 {border: #000 1px solid; color: #fff; padding: 2px}
a.idv_3:link, a.idv_3:visited, a.idv_3:active {color: #fff; text-decoration: none}
.idv_4 {border-left: 1px #000 solid; border-right: 1px #000 solid; padding: 3px 10px 2px 8px}
td.idv_4 * {vertical-align: middle}
.idv_5 {width: 35pt}
.idv_6 {border-left: 1px #000 solid; border-right: 1px #000 solid}
.idv_7 {margin: 0 8px; _height: 60px; min-height: 60px; background: #fff; border: 1px solid black; padding: 2px}
.idv_8 {border: 1px #000 solid; border-top: 0; padding: 4px 0px 2px 9px}
.idv_9 {background: #0066cc; border: 0; color: #fff}
#D {text-decoration: overline}
#BB {border-bottom: #000 1px solid}
</style>
А это сам решатель квадратных уравнений ,ставим туда где хотим его видеть ,к примеру в блок:
Code
<script language='JavaScript'>
var d = document;
function Kvadur() {
var m = Math;
var a = d.getElementById('a').value;
var b = d.getElementById('b').value;
var c = d.getElementById('c').value;
if (a == 0) a = 1;
if (b == 0) b = 1;
if (c == 0) c = 1;
var su = amn = k4 = od = solution = '';
var bmn = cmn = dmn = '+ ';
if (a < 0) amn = '-';
if (b < 0) bmn = '- ';
if (c < 0) cmn = '- ';
if (-4*a*c < 0) dmn = '- ';
if (a < 0 && b < 0 && c < 0) {
for (var i = m.min(a, b, c); i < -1; ++i) {
if (a % i == 0 && b % i == 0 && c % i == 0) break;
}
} else
for (var i = m.max(a, b, c); i > 1; --i) {
if (a % i == 0 && b % i == 0 && c % i == 0) break;
}
if (m.abs(i) != 1) {
var a = a/i; var b = b/i; var c = c/i;
var as = ''; var bs = cs = '+ ';
if (a < 0) as = '-';
if (b < 0) bs = '- ';
if (c < 0) cs = '- ';
if (i < 0) {
as = ''; bs = '+ '; cs = '+ ';
}
var su = '<br>Делим на '+i+':<br>'+as+m.abs(a)+'x<sup>2</sup> '+bs+m.abs(b)+'x '+cs+m.abs(c)+' = 0';
if (m.abs(a) == 1)
var su = '<br>Делим на '+i+':<br>'+as+'x<sup>2</sup> '+bs+m.abs(b)+'x '+cs+m.abs(c)+' = 0';
if (m.abs(b) == 1)
var su = '<br>Делим на '+i+':<br>'+as+m.abs(a)+'x<sup>2</sup> '+bs+'x '+cs+m.abs(c)+' = 0';
if (m.abs(a) == 1 && m.abs(b) == 1)
var su = '<br>Делим на '+i+':<br>'+as+'x<sup>2</sup> '+bs+'x '+cs+m.abs(c)+' = 0';
}
var tb1 = '<table><tr><td rowspan=2 style=\'padding-top: 2pt\'>';
var tb2 = '</td><td id=BB align=center>';
var tb3 = '</td></tr><tr><td align=center>';
var tb4 = '</td></tr></table>';
var tb1_ = '<table><tr><td rowspan=2>';
var tb_ = '<td rowspan=2 style=\'padding-bottom: 2pt\'>';
if ((b*b-4*a*c) < 0) {
var k4 = 'i'; var od = '-';
}
var equation = amn+m.abs(a*i)+'x<sup>2</sup> '+bmn+m.abs(b*i)+'x '+cmn+m.abs(c*i)+' = 0'+su;
var D = m.abs(b*b-4*a*c);
var Dis = 'D = b<sup>2</sup> - 4ac<br>D = '+b*b+' '+dmn+m.abs(4*a*c)+' = '+od+D;
var x1 = eval((-b+m.sqrt(D))/(2*a));
var X1 = '</span>'+tb1+'x<sub>1,2</sub> ='+tb2+'-b ± √<span id=D>D</span>'+tb3+'2a'+tb4+tb1+'x<sub>1</sub> ='+tb2+-b+' + ';
var x2 = eval((-b-m.sqrt(D))/(2*a));
var X2 = tb1+'x<sub>2</sub> ='+tb2+-b+' - ';
var kd = k4+'√<span id=D>'+D+'</span>';
var result = d.getElementById('result');
if (m.abs(a) == 1 && m.abs(i) == 1)
equation = amn+'x<sup>2</sup> '+bmn+m.abs(b)+'x '+cmn+m.abs(c)+' = 0';
if (m.abs(b) == 1 && m.abs(i) == 1)
equation = amn+m.abs(a)+'x<sup>2</sup> '+bmn+'x '+cmn+m.abs(c)+' = 0';
if (m.abs(a) == 1 && m.abs(b) == 1 && m.abs(i) == 1)
equation = amn+'x<sup>2</sup> '+bmn+'x '+cmn+m.abs(c)+' = 0';
if (D == 0) {
var mux = '';
if ((-b < 0 && a > 0) || (-b > 0 && a < 0)) mux = '-';
for (var DN = m.max(-b, 2*a); DN > 1; --DN) {
if (-b % DN == 0 && 2*a % DN == 0) break;
}
var exc = mux+tb2+m.abs(-b/DN)+tb3+m.abs(2*a)+'</td><td rowspan=2>'+m.abs((2*a)/DN);
if (-b/(2*a) == m.floor(-b/(2*a))) {
var exc = ' </td>'+tb_+-b/(2*a)+tb3+m.abs(2*a);
}
var AnS = '<table><tr>'+tb_+'Ответ: x = '+mux+tb2+m.abs(b/DN)+tb3+m.abs((2*a)/DN)+tb4;
if (-b/(2*a) == m.floor(-b/(2*a)) || d.getElementById('iz').checked)
var AnS = 'Ответ: x = '+-b/(2*a);
var x = '<table><tr>'+tb_+'x = - '+tb2+'b'+tb3+'2a'+tb4+'<table><tr>'+tb_+'x = '+mux+tb2+m.abs(b)+'</td>'+tb_+' = '+exc+tb4;
var solution = equation+'<br>'+Dis+'<br>'+x+AnS;
}
if (D != 0) {
for (var j = m.floor(m.sqrt(D)); j > 0; --j) {
if ((b*b-4*a*c) < 0 && !d.getElementById('i').checked) {
var solution = equation+'<br>'+Dis+' < 0<br>Ответ: нет решений</span>'; break;
}
if ((b*b-4*a*c) > 0 && D%(j*j) == 0 && D/(j*j) == 1) {
var ch1 = ch2 = zn1 = zn2 = mud1 = mud2 = '';
var exc1 = tb_+x1+tb3+2*a+'</td><td align=center>'+m.abs(2*a)+'</td>';
var exc2 = tb_+x2+tb3+2*a+'</td><td align=center>'+m.abs(2*a)+'</td>';
if ((eval(-b+j) < 0 && a > 0) || (eval(-b+j) > 0 && a < 0)) mud1 = '-';
if (((-b-j) < 0 && a > 0) || ((-b-j) > 0 && a < 0)) mud2 = '-';
for (var lm = m.max((-b-j), 2*a); lm > 1; --lm) {
if ((-b-j) % lm == 0 && 2*a % lm == 0) break;
}
for (var lp = m.max((-b+j), 2*a); lp > 1; --lp) {
if ((-b+j) % lp == 0 && 2*a % lp == 0) break;
}
if (x2 != m.floor(x2)) {
var ch1 = m.abs((-b-j)/lm);
var zn1 = m.abs((2*a)/lm);
var exc2 = mud2+'<td id=BB align=center>'+ch1+tb3+2*a+'</td><td align=center>'+m.abs(2*a)+'</td><td align=center>'+zn1;
}
if (x1 != m.floor(x1)) {
var ch2 = m.abs((-b+j)/lp);
var zn2 = m.abs((2*a)/lp);
var exc1 = mud1+'<td id=BB align=center>'+ch2+tb3+2*a+'</td><td align=center>'+m.abs(2*a)+'</td><td align=center>'+zn2;
}
var ans = tb1+'Ответ: x<sub>1</sub> = '+mud1+tb2+ch2+'</td><td rowspan=2 style=\'padding-top: 2pt\'>; x<sub>2</sub> = '+mud2+tb2+ch1+'</td></tr><tr><td>'+zn2+'</td><td>'+zn1+tb4;
if (x2 == m.floor(x2) && x1 != m.floor(x1)) {
var ans = tb1+'Ответ: x<sub>1</sub> = '+mud1+tb2+ch2+'</td><td rowspan=2 style=\'padding-top: 2pt\'>; x<sub>2</sub> = </td>'+tb_+x2+'</td></tr><tr><td>'+zn2+tb4;
}
if (x2 != m.floor(x2) && x1 == m.floor(x1)) {
var ans = tb1+'Ответ: x<sub>1</sub> = </td>'+tb_+x1+'</td><td rowspan=2 style=\'padding-top: 2pt\'>; x<sub>2</sub> = '+mud2+tb2+ch1+'</td></tr><tr><td>'+zn1+tb4;
}
if ((x1 == m.floor(x1) && x2 == m.floor(x2)) || d.getElementById('iz').checked) {
var ans = 'Ответ: x<sub>1</sub> = '+x1+'; x<sub>2</sub> = '+x2;
}
var d1 = ' = '+j+'<sup>2</sup>';
if (D == 1) var d1 = '';
var solution = equation+'<br>'+Dis+d1+'<br>'+X1+j+'</td><td rowspan=2 style=\'padding-bottom: 2pt\'>= '+mud1+tb2+m.abs(-b+j)+'</td>'+tb_+'= '+exc1+tb4+X2+j+'</td><td rowspan=2 style=\'padding-bottom: 2pt\'>= '+mud2+tb2+m.abs(-b-j)+'</td>'+tb_+'= '+exc2+tb4+ans; break;
}
if (D%(j*j) == 0) {
for (var k = m.max(-b, j, 2*a); k > 1; --k) {
if (-b % k == 0 && j % k == 0 && 2*a % k == 0) break;
}
var kid = k4+'√<span id=D>'+D/(j*j)+'</span>';
if ((b*b-4*a*c) < 0 && D%(j*j) == 0 && D/(j*j) == 1 && d.getElementById('i').checked) var kid = k4;
var sx1 = sx2 = '';
var jk = j/k;
if (j == 1) j = '';
var answer = tb1+'Ответ: x<sub>1</sub> = '+tb2+-b+' + '+j+kid+'</td><td rowspan=2 style=\'padding-bottom: 3pt\'>'+tb1+'; x<sub>2</sub> = '+tb2+-b+' - '+j+kid+tb3+2*a+tb4+tb3+2*a+tb4;
if (jk == 1) jk = '';
if (m.abs(k) != 1) {
var sx1 = tb1_+' = '+tb2+-b/k+' + '+jk+kid+tb3+2*a/k+tb4;
var sx2 = tb1_+' = '+tb2+-b/k+' - '+jk+kid+tb3+2*a/k+tb4;
if (2*a/k == 1) {
var sx1 = ' = '+-b/k+' + '+jk+kid;
var sx2 = ' = '+-b/k+' - '+jk+kid;
}
if (2*a/k == -1) {
var sx1 = ' = '+b/k+' - '+jk+kid;
var sx2 = ' = '+b/k+' + '+jk+kid;
}
var answer = '<table><tr><td style=\'padding-top: 4pt\'>Ответ: x<sub>1</sub></td><td>'+sx1+'</td><td style=\'padding-top: 4pt\'>; x<sub>2</sub></td><td>'+sx2+tb4;
}
if ((b*b-4*a*c) > 0 && d.getElementById('iz').checked)
var answer = 'Ответ: x<sub>1</sub> = '+x1+'; x<sub>2</sub> = '+x2;
var solution = equation+'<br>'+Dis+' = ('+j+kid+')<sup>2</sup><br>'+X1+j+kid+'</td><td rowspan=2 style=\'padding-top: 1pt\'>'+sx1+tb3+2*a+tb4+X2+j+kid+'</td><td rowspan=2 style=\'padding-top: 1pt\'>'+sx2+tb3+2*a+tb4+answer; break;
}
if (j == 2) {
var ANS = tb1+'Ответ: x<sub>1</sub> = '+tb2+-b+' + '+kd+'</td><td rowspan=2 style=\'padding-top: 3pt\'>; x<sub>2</sub> = '+tb2+-b+' - '+kd+tb3+2*a+'</td><td align=center>'+2*a+tb4;
if ((b*b-4*a*c) > 0 && d.getElementById('iz').checked)
var ANS = 'Ответ: x<sub>1</sub> = '+x1+'; x<sub>2</sub> = '+x2;
var solution = equation+'<br>'+Dis+' = ('+kd+')<sup>2</sup><br>'+X1+kd+tb3+2*a+tb4+X2+kd+tb3+2*a+tb4+ANS; break;
}
}
}
result.innerHTML = solution;
d.getElementById('html').value = '<style type=\'text/css\'>#idv * {font-size: 10px; font-family: Verdana} #D {text-decoration: overline} #BB {border-bottom: #000 1px solid}</style><div id=idv><span>'+solution+'</div>';
}
function Addition() {
if (d.getElementById('addition').style.display == 'none') {
d.getElementById('addition').style.display = 'block';
d.getElementById('ab').value = 'Дополнительно <<';
} else {
d.getElementById('addition').style.display = 'none';
d.getElementById('ab').value = 'Дополнительно >>';
}
}
function HTML() {
if (d.getElementById('result').innerHTML == '')
alert('Введите уравнение');
else {
d.getElementById('html').style.display = 'block';
d.getElementById('html').select();
d.getElementById('html').focus();
}
}
function Print() {
if (d.getElementById('result').innerHTML == '')
alert('Введите уравнение');
else {
Print = open('', 'Print','');
Print.document.open();
Print.document.write('<html><title>IDV Kvadur v1.0 :: Версия для печати</title><bo'+'dy onLoad=\'window.print()\'>'+d.getElementById('html').value+'</body></html>');
Print.document.close();
}
}
</script>
<table class='idv_1'>
<tr>
<td bgcolor='#0066cc' class='idv_2'><b>IDV Kvadur v1.0 by <a href='http://www.idv-studio.ru' target='_blank' class='idv_3' title='Дизайн студия idv-Studio.ru'>idv-Studio.ru</a></b></td>
</tr>
<tr>
<td bgcolor='#EEECDB' class='idv_4'>
a = <input type='text' id='a' class='idv_5'>
b = <input type='text' id='b' class='idv_5'>
c = <input type='text' id='c' class='idv_5'>
<input type='submit' value='Решить' onClick='Kvadur()' class='idv_9' >
</td>
</tr>
<tr>
<td bgcolor='#EEECDB' class='idv_6'><div id='result' class='idv_7'></div></td>
</tr>
<tr>
<td bgcolor='#EEECDB' class='idv_8'>
<div style='padding-bottom: 3px'>
<input type='submit' value='Печать' class='idv_9' onClick='Print()'>
<input type='submit' value='HTML' class='idv_9' onClick='HTML()'>
<input type='submit' id='ab' class='idv_9' value='Дополнительно >>' onClick='Addition()'><br>
</div>
<textarea id='html' style='display:none; width: 189pt'></textarea>
<div id='addition' style='display:none'>
<input type='checkbox' id='i'>Показывать комплексные корни<br>
<input type='checkbox' id='iz'>Показывать точные значения корней<br>
</div>
</td>
</tr>
</table>