Поиск:
  • Страница 1 из 1
  • 1
Модератор форума: Senator  
idv Kvadur
Дата: Пятница, 04.02.2011, 16:58 | Сообщение # 1
Offline
  • Проверенный
  • Up-Rise.Ru
  • 616 Сообщения
http://i021.radikal.ru/1102/e5/4cc09204e8f1.png
idv Kvadur решает квадратные уравнения. Особенность этого скрипта заключается в том, что полный ход решения выводится на экран.
Дополнительные функции: печать решения, html-код решения, etc.

Установка:
Пихаем в новую страницу

Code
<html>  
<head>  
<title>IDV Kvadur v1.0 by idv-Studio.ru</title>  
<meta http-equiv='content-type' content='text/html' charset='windows-1251'>  
<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>  
</head>  
<body>  

<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>  
</body>  
</html>

[Table]Помоги!?Напиши Отзыв Или Поставь +[Сик][/Table]
Дата: Пятница, 04.02.2011, 18:25 | Сообщение # 2
Offline
  • Проверенный
  • Ранг: Генерал-майор
  • 461 Сообщения


  • Страница 1 из 1
  • 1
Поиск:
Администрация проекта не несет ответственности за публикуемые материалы.
Дизайн полностью принадлежит "Up-Rise.Ru".
Дизайн сайта разработал life_man.
© 2024 Сайт управляется системой uCoz.