Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Функция массива(поиск юзал) (https://javascript.ru/forum/misc/27245-funkciya-massiva-poisk-yuzal.html)

Wahlberg 06.04.2012 17:28

Функция массива(поиск юзал)
 
Вообщем проблема в том что я не могу в функцию сделать обработку массива, в С++ метод бы проканал;
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>JS matrix hov</title>
</head>
<script>
var A=[[1,2,3],[2,5,1],[3,1,5]];
var b=[[7],[-1],[-1]];

function L(x){
	var size=3;
	for (var dimension=0; dimension<size; dimension++){
		for (var i=dimension; i<size;){
			for(var j=dimension; j<size; j++){
				if(A[dimension][dimension]!=0){
					A[dimension][j]=A[dimension][j]/A[dimension][dimension];
					A[i+1][j]=A[i+1][j]-A[i+1][dimension]*A[dimension][j];
					i++;
					}
				else {
					i++;
					}
				}
			}
		}
	}

alert(L(A));
</script>
<body>
</body>
</html>

Wahlberg 06.04.2012 17:34

А да, ошибку выдаёт он то что не может прочесть второй символ, собственно вопрос заключается в том как в функцию задать массив, попробывал x**, x[][], но C методы не прошли

Kolyaj 06.04.2012 17:53

Цитата:

Сообщение от Wahlberg
A[i+1]

i до 2, i+1, соответственно, до 3, 3-го элемента в массиве нет.

Цитата:

Сообщение от Wahlberg
L(x)

x аргументом принимаете, а используете глобальную A.

Wahlberg 06.04.2012 18:09

Про то что size=3 исправил - действительно фейл; Вот так попробывал, но не помогло, пишет не определенно;

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>JS matrix hov</title>
</head>
<script>
var A=[[1,2,3],[2,5,1],[3,1,5]];
var b=[[7],[-1],[-1]];
 
function L(x){
    var size=2;
    for (var dimension=0; dimension<size; dimension++){
        for (var i=dimension; i<size;){
            for(var j=dimension; j<size; j++){
                if(A[dimension][dimension]!=0){
                    A[dimension][j]=A[dimension][j]/A[dimension][dimension];
                    A[i+1][j]=A[i+1][j]-A[i+1][dimension]*A[dimension][j];
                    i++;
                    }
                else {
                    i++;
                    }
                }
            }
        }
    }
 
alert(L([[1,2,3],[2,5,1],[3,1,5]]));
</script>
<body>
</body>
</html>

Kolyaj 06.04.2012 18:45

Ну так посмотрите, что не определено.

Wahlberg 06.04.2012 19:07

А как посмотреть-то; На листочке я посчитал что должно получится; Ошибок-то не выдаёт, вылетает алерт с андифайном.

Kolyaj 06.04.2012 21:05

А в C++ вы бы как посмотрели?

T-sh 06.04.2012 21:34

<script>
var A= new Array(
  new Array ('1','2','3'),
  new Array ('2','5','1'),
  new Array ('3','1','5')); 

 function Lin(x){
    var size=2;
    for (var dimension=0; dimension<size; dimension++){
        for (var i=dimension; i<size;){
            for(var j=dimension; j<size; j++){
                if(A[dimension][dimension]!=0){
                    A[dimension][j]=A[dimension][j]/A[dimension][dimension];
                    A[i+1][j]=A[i+1][j]-A[i+1][dimension]*A[dimension][j];
                    i++;
                    }
                else {
                    i++;
                    }
                }
            }
        }
		return A;
    }
alert(Lin());
</script>

Bebarr Swallow 06.04.2012 21:49

А можно вопрос - что это за скрипт? Над чем вы трудитесь, что оно должно делать и для чего?

Моя версия, этого непонятного творения:
http://jsfiddle.net/BQVC3/

Wahlberg 07.04.2012 00:25

Да так, скучные разложения.

http://ru.wikipedia.org/wiki/%D0%A0%...BE%D0%B3%D0%BE

Я тренируюсь сейчас писать на JS, что бы сделать дипломную работу по движению двойного спутника между которым находится цепь двигателей имеющий каждый момент инерции, притом вся эта система вращается вокруг солнца; В математике(вольфрама) я уже решил эту модель, осталось её в язык перевести.

Wahlberg 07.04.2012 00:26

огромное спасибо вам TSH


Часовой пояс GMT +3, время: 03:21.