Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 09.06.2015, 22:45   #1
DioXide
 
Регистрация: 06.03.2013
Сообщений: 5
По умолчанию Транспонирование матрицы

Написать транспонирование матрицы, нужно дописать для него цикл пример цикла который нужен, надеюсь доходчиво объяснил
Код:
{
    var m = A.length, n = A[0].length, AT = [];
    for (var i = 0; i < n; i++)
     { AT[i] = [];
       for (var j = 0; j < m; j++) AT[i][j] = A[j][i];
     }
    return AT;
}*/
Код HTML:
<DOCTYPE HTML!>
<html>
<head>
<title>Практ6</title>
<script src="pract8.js"></script>
</script>
<body onLoad="transpon()";>
<div id="matrix0">
</div>
<div id="matrix">
</div>
<div id="butt">
</div>
</body>
</html>
Это же уже код скрипта
Код:
function transpon(){
 
do {
    var columns=prompt("Vведите количество столбцов");
    if (columns.replace(/\d/g,'').length) alert("Vведенное значение не число");
   }
while(columns.replace(/\d/g,'').length)
 
do{         
    var rows=prompt("Vведите количество строк");
    if (rows.replace(/\d/g,'').length) alert("Vведенное значение не число"); 
  }
while(rows.replace(/\d/g,'').length)
 
var arr = new Array(); 
for (var i=1; i<=columns; i++){		
     arr[i]=new Array();			
     for (var j=1; j<=rows; j++){	
                do{
                arr[i][j]=prompt("введите "+i+","+j+" элемент:");
                if (arr[i][j].replace(/\d/g,'').length) {alert("Vведенное значение не число");}
                }
                while(arr[i][j].replace(/\d/g,'').length)
     }
}
var matrix0 = document.getElementById("matrix0");
matrix0.innerHTML="Iсходна матрица:<br>"
 
    for (i=1; i<=columns; i++){
    for (j=1; j<=rows; j++){
    matrix0.innerHTML+=arr[i][j]+"      "; 
    }
    matrix0.innerHTML+="</br>";
    }
var matrix = document.getElementById("matrix");
////
matrix.innerHTML="<br>Tранспонированна матрица:<br>";
    for (i=1; i<=columns; i++){
    for (j=1; j<=rows; j++){
    matrix.innerHTML+=arr[j][i]+"      ";
    }
    matrix.innerHTML+="</br>";
    }
var butt = document.getElementById("butt");
butt.innerHTML='<button onclick="repeat()">Repeat?</button>';
}
function repeat(){
document.getElementById("matrix0").innerHTML="";
document.getElementById("matrix").innerHTML="";
document.getElementById("butt").innerHTML="";
transpon();
}
DioXide вне форума
Старый 10.06.2015, 22:50   #2
SQLPowerUser
Форумчанин
 
Аватар для SQLPowerUser
 
Регистрация: 19.01.2015
Сообщений: 158
Вопрос Так пойдет?

Код HTML:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style>
* {font:14px arial,sans-serif;}
table {
  margin:5px 0;
  border-collapse:collapse;
}
td {
  padding:4px;
  border:1px solid #ccc;
}
</style>
</head>
<body>
Исходная матрица
<table id="matrix"> </table>
<button onclick="transpon()">Транспонировать</button>
<script>
var a = [
  ['0x0', '0x1', '0x2', '0x3', '0x4'],
  ['1x0', '1x1', '1x2', '1x3', '1x4'],
  ['2x0', '2x1', '2x2', '2x3', '2x4'],
  ['3x0', '3x1', '3x2', '3x3', '3x4'],
  ['4x0', '4x1', '4x2', '4x3', '4x4']
];
var matrix = document.getElementById('matrix');
for (var i=0; i<a.length; i++) {
  var row = matrix.insertRow(-1);
  for (var j=0; j < a[i].length; j++) {
    var NewCell = row.insertCell(-1);
    NewCell.innerHTML = a[i][j];
  }
  matrix.rows[i].cells[i].style.background = '#abcdef';
}

function transpon() {
  var b = [];
  a.forEach (function(subArray) {
    b.push(subArray.concat());
  });
  for (var i=0; i<a.length; i++) {
    for (var j=0; j < a[i].length; j++) {
      b[i][j] = a[j][i];
    }
  }
  var tranMatrix = document.createElement('table');
  for (var i=0; i<b.length; i++) {
    var row = tranMatrix.insertRow(-1);
    for (var j=0; j < b[i].length; j++) {
      var NewCell = row.insertCell(-1);
      NewCell.innerHTML = b[i][j];
    }
    tranMatrix.rows[i].cells[i].style.background = '#abcdef';
  }
  document.body.appendChild(tranMatrix);
}
</script>
</body>
</html>
SQLPowerUser вне форума
Старый 11.06.2015, 09:10   #3
DioXide
 
Регистрация: 06.03.2013
Сообщений: 5
По умолчанию

Написано хорошо, но надо организовать ввод элементов размерности матрицы и его элементов
DioXide вне форума
Старый 11.06.2015, 09:58   #4
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Ну так организуй.
Alar, верни репу!
Naive вне форума
Старый 11.06.2015, 15:09   #5
SQLPowerUser
Форумчанин
 
Аватар для SQLPowerUser
 
Регистрация: 19.01.2015
Сообщений: 158
Стрелка Написано хорошо, но надо организовать ввод элементов размерности матрицы и его элементов

После выбора размера матрицы, можно щелкать в ячейки пустой таблицы и прямо там набирать.
Код HTML:
<!DOCTYPE html>
<html>
<head>
<title>Транспонирование матрицы</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style>
* {font:14px arial,sans-serif;}
table {margin:5px 0; border-collapse:collapse;}
td {
  padding:0;
  border:1px solid #ccc;
}
td p, #tranMatrix td {
  margin:0; padding:2px 4px;
  min-width:20px; min-height:18px;
}
td p:focus {outline:1px solid #4169E1;}
</style>
</head>
<body onload="setSize()">
Размер матрицы
<select id="cboSize"> </select> <button onclick="createMatrix()">Создать</button>
<div id="workArea"> </div>

<script>
function gid(i) {return document.getElementById(i);}
function CEL(s) {return document.createElement(s);}
function ACH(p,c) {p.appendChild(c);}

function setSize() {
  el = gid('cboSize');
  for (var i=2; i<10; i++) {el.options[i-2] = new Option(i +' x '+ i, i);}
  el.options[3].selected = true;
}

function createMatrix() {
  gid('workArea').innerHTML = '';

  var size = gid('cboSize').value, i=0, j=0;
  tbl = CEL('table');
  tbl.id = 'matrix';
  for (i=0; i < size; i++) {
    var row = tbl.insertRow(-1);
    for (j=0; j < size; j++) {
      var NewCell = row.insertCell(-1);
      NewCell.innerHTML = '<p tabindex="-1" contenteditable="true"></p>';
      //NewCell.innerHTML = '<p tabindex="-1" contenteditable="true">' + i +'x'+ j + '</p>'; /* раскомментировать, если влом набирать значения руками */
    }
    tbl.rows[i].cells[i].style.background = '#FFFACD';
  }
  ACH(gid('workArea'), tbl);

  var cmd = CEL('button');
  cmd.innerHTML = 'Транспонировать';
  cmd.onclick = transpon;
  ACH(gid('workArea'), cmd);
}

function transpon() {
  if (gid('tranMatrix')) {gid('workArea').removeChild(gid('tranMatrix'));}

  var a = [], b = [], i=0, j=0, tbl = gid('matrix'), k = tbl.rows.length;
  for (i=0; i<k; i++) {
    a[i] = [];
    for (j=0; j<k; j++) {a[i][j] = tbl.rows[i].cells[j].children[0].innerHTML;}
  }

  a.forEach (function(subArray) {
    b.push(subArray.concat());
  });

  for (i=0; i<a.length; i++) {
    for (j=0; j < a[i].length; j++) {b[i][j] = a[j][i];}
  }
  var tranMatrix = CEL('table');
  tranMatrix.id = 'tranMatrix';
  for (i=0; i<b.length; i++) {
    var row = tranMatrix.insertRow(-1);
    for (j=0; j < b[i].length; j++) {row.insertCell(-1).innerHTML = b[i][j];}
    tranMatrix.rows[i].cells[i].style.background = '#FFFACD';
  }
  ACH(gid('workArea'), tranMatrix);
}
</script>
</body>
</html>

Последний раз редактировалось SQLPowerUser; 11.06.2015 в 15:22.
SQLPowerUser вне форума
Старый 12.06.2015, 11:46   #6
DioXide
 
Регистрация: 06.03.2013
Сообщений: 5
По умолчанию

Вот, то что мне нужно было. Спасибо большое.
DioXide вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Транспонирование матрицы iamhated Помощь студентам 0 14.11.2011 18:59
Транспонирование матрицы sys*.12 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 5 02.11.2011 13:45
транспонирование матрицы Ислам Помощь студентам 3 08.06.2011 19:02
Транспонирование матрицы Tatum Паскаль, Turbo Pascal, PascalABC.NET 1 15.03.2011 19:32