В общем, надо написать программу поиска корней СЛАУ, я нашел блок-схему и по ней написал скрипт. Он отказался работать, тогда я подумал, что напортачил чего. Поэтому нашел готовый рабочий пример.
И в нем возникает такая же ошибка.
Ошибка такая: Unhandled Error: Cannot convert 'document.interface' to object
Помогите, пожалуйста, разобраться. Я просто не понимаю, почему при обычном присвоении JS пытается конвертировать в объект и не может это сделать. Такое, что странно, возникает только при попытке взять из формы и присвоить в ячейку двойного массива.
Неужели придется делать без двойного массива? Я вообще уже запутался, ничего не могу понять. По-моему, должно работать.
А вот сам код:
<html>
<head>
<title>Решение СЛАУ методом Гаусса</title>
<script language=javascript>
// Ввод данных
n = 4;
var m=new Array(n); // Определение массива
var otv=new Array(n);
var X=new Array(n);
for(i=0; i<n; ++i) {
m[i]=new Array(n);
for (j=0; j<n; ++j) {
m[i][j] = parseInt(m[i][j]);
}
}
// Заполнение матрицы
var tmp = document.interface.x11.value;
var tmp2 = parseInt(tmp);
m[0][0]=tmp2;
m[0][1]=document.interface.x12.value;
m[0][2]=document.interface.x13.value;
m[0][3]=document.interface.x14.value;
m[0][4]=document.interface.o1.value;
m[1][0]=document.interface.x21.value;
m[1][4]=document.interface.x22.value;
m[1][2]=document.interface.x23.value;
m[1][3]=document.interface.x24.value;
m[1][4]=document.interface.o2.value;
m[2][0]=document.interface.x31.value;
m[2][1]=document.interface.x32.value;
m[2][2]=document.interface.x33.value;
m[2][3]=document.interface.x34.value;
m[2][4]=document.interface.o3.value;
m[3][0]=document.interface.x41.value;
m[3][1]=document.interface.x42.value;
m[3][2]=document.interface.x43.value;
m[3][3]=document.interface.x44.value;
m[3][4]=document.interface.o4.value;
alert(m[3][4]);
//прямой ход метода Гаусса
function paral(){
for (var k = 0; k < n; k++){
for (var j = n; j >= k; j--){
m[k][j] = m[k][j] / m[k][k];
}
for (var i = k + 1; i < n; i++){
for (var j = n; j >= k; j--){
m[i][j] -= m[k][j] * m[i][k];
}
}
}
}
//Обратный ход
function obratno() {
for (var i = 0; i < n; i++){
X[i] = m[i][n];
}
for (var i = n - 2; i >= 0; i--){
for (var j = i + 1; j < n; j++){
X[i] -= X[j] * m[i][j];
}
}
}
function process() {
paral();
obratno();
document.interface.x1.value = X[0];
document.interface.x2.value = X[1];
document.interface.x3.value = X[2];
document.interface.x4.value = X[3];
}
</script>
</head>
<body>
<center>
<h2>Решение СЛАУ методом Гаусса</h2>
<BODY BGCOLOR="#CCCCCC" TEXT="#000000">
<form name="interface">
<input type="text" name="x11" value="0" size=3> x1 +
<input type="text" name="x12" value="0" size=3> x2 +
<input type="text" name="x13" value="0" size=3> x3 +
<input type="text" name="x14" value="0" size=3> x4 =
<input type="text" name="o1" value="0" size=3>
<br>
<input type="text" name="x21" value="0" size=3> x1 +
<input type="text" name="x22" value="0" size=3> x2 +
<input type="text" name="x23" value="0" size=3> x3 +
<input type="text" name="x24" value="0" size=3> x4 =
<input type="text" name="o2" value="0" size=3>
<br>
<input type="text" name="x31" value="0" size=3> x1 +
<input type="text" name="x32" value="0" size=3> x2 +
<input type="text" name="x33" value="0" size=3> x3 +
<input type="text" name="x34" value="0" size=3> x4 =
<input type="text" name="o3" value="0" size=3>
<br>
<input type="text" name="x41" value="0" size=3> x1 +
<input type="text" name="x42" value="0" size=3> x2 +
<input type="text" name="x43" value="0" size=3> x3 +
<input type="text" name="x44" value="0" size=3> x4 =
<input type="text" name="o4" value="0" size=3>
<br>
<input type="button" value=" ! ! ! РЕШИТЬ ! ! ! " onClick="process()">
<br>
============================
<br>
Ответ:
x1 = <input type="text" name="x1" value="0" size=3>
x2 = <input type="text" name="x2" value="0" size=3>
x3 = <input type="text" name="x3" value="0" size=3>
x4 = <input type="text" name="x4" value="0" size=3>
</form>
</center>
</body>
</html>