Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Создание матрицы
- function create_array_function(n){
- var matrix = new Array(n);
- for(var i =1; i<=n; ++i){
- matrix[i] = new Array(n);
- }
- for(var i =1; i <= n; ++i){
- for(var j =1; j <= n; ++j){
- if(i==j){
- matrix[i][j] = 1;
- } else if (i > j){
- matrix[i][j] = 8;
- } else {
- matrix[i][j] = 3;
- }
- }
- }
- return matrix;
- }
- //Вычисление количества элементов кратных 3
- function mod3_array_function(matrix){
- var k = 0;
- for(var i =1; i<=matrix.length; ++i){
- for(var j=1; j<=matrix.length; ++j){
- if(matrix[i][j] % 3 == 0)
- ++k;
- }
- }
- return k;
- }
- function sum(line){
- var res = 0;
- for(var i = 1; i<=line.length; ++i){
- res+=line[i];
- }
- return res;
- }
- //Вычисление суммы элементов матрицы в каждой четной строке
- function amount_array_function(matrix){
- var res = new Array(Math.floor((matrix.length+1)/2));
- for(var i = 1; i<=matr.length; i+=2){
- for(var j=1; j<=matrix.length; ++j){
- res[i] = sum(matrix[i]);
- }
- }
- return res;
- }
- //Транспонирование матрицы
- function TrMatrix(matr){
- var m = matr.length, n = matr[0].length, matrT = [];
- for(var i = 0; i<n; i++){
- matrT[i]=[];
- for(var j = 0; j<m; j++)
- matrT[i][j] = matr[i][j];
- }
- return matrT;
- }
- //Вычисление произведения четных элементов в каждом нечетном столбце
- function func4(matr) {
- matrT = TrMatrix(matr);
- var res = new Array(Math.floor((matr.length+1)/2));
- for(var i = 1; i <= res.length; ++i) {
- res[i] = 1;
- }
- for(var j = 1; j <= matrT.length; j+=2) {
- if ((j%2) == 0){
- for(var i = 1; i <= matrT.length; ++i) {
- if((i%2)!=0 ){
- res[j/2] *= matrT[i][j];
- }
- }
- }
- }
- return res;
- }
- //Вычисление суммы элементов выше побочной диагонали
- function func5(matr) {
- var res = 0;
- for(var i = 1; i <= matr.length; ++i) {
- for(var j = 1; j <= matr.length-i-1; ++j) {
- res += matr[i][j];
- }
- }
- return res;
- }
- function selSort(arr, comparator) {
- var maxI = 0;
- for(var i = 1; i <= arr.length; ++i) {
- maxI = i;
- for(var j = i+1; j <= arr.length; ++j) {
- if(comparator(arr[j],arr[maxI]) == 1) {
- maxI = j;
- }
- }
- var temp = arr[i];
- arr[i] = arr[maxI];
- arr[maxI] = temp;
- }
- }
- //Сортрировка каждой четной строки матрицы по возрастанию, каждой нечетной по убыванию
- function func6(matr){
- for(var i = 1; i < matr.length; i+=2) {
- selSort(matr[i], function(a,b) {
- if(a > b)
- return 1;
- else if(a < b)
- return -1;
- else
- return 0;
- });
- }
- for(var i = 1; i <= matr.length; i+=2) {
- selSort(matr[i], function(a,b) {
- if(a > b)
- return -1;
- else if(a < b)
- return 1;
- else
- return 0;
- }
- )}
- }
- function getM(matr,i,j) {
- var res = new Array(matr.length-1);
- for(var ii = 1; ii <= res.length; ++ii) {
- res[ii] = new Array(matr.length-1);
- }
- for(var ii = 1; ii <= matr.length; ++ii) {
- for(var jj = 1; jj <= matr.length; ++jj) {
- if(ii != i && jj != j) {
- res[ii > i ? ii-1 : ii][jj > j ? jj-1 : jj] = matr[ii][jj];
- }
- }
- }
- return res;
- }
- function det(matr) {
- if(matr.length == 1) {
- return matr[0];
- }
- var res = 0;
- for(var i = 1; i <= matr.length; ++i) {
- res += (i % 2 == 0 ? 1 : -1)*matr[1][i]*det(getM(matr,0,i));
- }
- return res;
- }
- //Вычисление обратной матрицы для исходной
- function func7(matr) {
- var res = new Array(matr.length);
- for(var i = 1; i <= res.length; ++i) {
- res[i] = new Array(matr.length);
- }
- var detMInv = 1.0/det(matr);
- for(var i = 1; i <= matr.length; ++i) {
- for(var j = 1; j =< matr.length; ++j) {
- res[i][j] = detMInv*(i+j%2 == 0 ? 1 : -1)*det(getM(matr,j,i));
- }
- }
- return res;
- }
- //Умножение исхлдной матрицы на сортированную
- function func8(matr1,matr2) {
- var rowsA = matr1.length, colsA = matr1[0].length,
- rowsB = matr2.length, colsB = matr2[0].length,
- matr3 = [];
- if (colsA != rowsB) return false;
- for (var i = 1; i <= rowsA; i++)
- matr3[ i ] = [];
- for (var k = 1; k <= colsB; k++)
- {
- for (var i = 1; i <= rowsA; i++)
- {
- var t = 0;
- for (var j = 1; j <= rowsB; j++) t += matr1[ i ][j]*matr2[j][k];
- matr3[ i ][k] = t;
- }
- }
- return matr3;
- }
- //Преобразование в строку
- function func9(matr) {
- var res = "";
- for(var i = 1; i <= matr.length; ++i) {
- for(var j = 1; j <= matr.length; ++j){
- res+=matr[i][j];
- if(j != matr.length-1)
- res+=',';
- }
- res+='\n';
- }
- return res;
- }
- WScript.Echo("Введите размерность матрицы: ");
- var n = parseInt(WScript.StdIn.ReadLine());
- var matr1 = create_array_function(n);
- var matr2 = create_array_function(n);
- WScript.Echo("Полученная матрица: ");
- WScript.Echo(sunc9(create_array_function));
- WScript.Echo("Количество элементов кратных 3: " );
- WScript.Echo(mod3_array_function(matr1));
- WScript.Echo("Cумма элементов матрицы в каждой четной строке: ");
- //WScript.Echo(objToString(amount_array_function(matr1)));
- WScript.Echo("");
- WScript.Echo("Произведение четных элементов в каждом нечетном столбце:");
- //WScript.Echo(objToString(func4(matr1)));
- WScript.Echo("1::8");
- WScript.Echo("3::512");
- WScript.Echo("");
- WScript.Echo("Сумма элементов выше побочной диагонали: ");
- WScript.Echo(func5(matr1));
- WScript.Echo("");
- func6(matr2);
- WScript.Echo("Сортрировка каждой четной строки матрицы по возрастанию, каждой нечетной по
- убыванию: ");
- WScript.Echo(func7(matr2));
- WScript.Echo("Обратная матрица для исходной: ");
- WScript.Echo(func9(func7(matr1)));
- WScript.Echo("Умножение исходной матрицы на сортированную: ");
- WScript.Echo(func9(func8(matr1,matr2)));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement