03.05.2012, 22:17
|
Новичок на форуме
|
|
Регистрация: 03.05.2012
Сообщений: 4
|
|
Матрица JS запись и чтение из матрицы
Суть такова, разбиваю вводимый (64-байтный) текст на 8 блоков, записываю в определенной последовательности эти блоки(по столбцам) в матрицу, затем считываю из нее по определенной последовательности, но уже по строкам.
<html>
<head>
<title>Перестановка 8 на 8</title>
</head>
<body> <br>
<script language="JavaScript">
function polib() {
var a=new Array ( //Создание матрицы 8*8
new Array ('','','','','','','',''),
new Array ('','','','','','','',''),
new Array ('','','','','','','',''),
new Array ('','','','','','','',''),
new Array ('','','','','','','',''),
new Array ('','','','','','','',''),
new Array ('','','','','','','',''),
new Array ('','','','','','','','')
);
var f ="";
var simv="";
var str=0;
var stol=0;
var p=0;
var h=0;
var stol1="";
var stol2="";
var stol3="";
var stol4="";
var stol5="";
var stol6="";
var stol7="";
var stol8="";
var y=1;
var m=new String();
var n=new String();
var vvod = b_text1.value;
var vk =b_text1.value.toUpperCase();
/*for(i = 0; i < vvod.length; i++)
{
simv=vk.charAt(i);
stol1=vk.substring(0,7);
}*/
stol1=vk.substring(0,7); //Разбиение строки на 8 частей
stol2=vk.substring(8,15);
stol3=vk.substring(16,23);
stol4=vk.substring(24,31);
stol5=vk.substring(32,39);
stol6=vk.substring(40,47);
stol7=vk.substring(48,55);
stol8=vk.substring(56,63);
p=0;
for (i=0; i<8; i++) // запись по ключу: 6 4 2 1 3 5 7 8
{
simv=stol1.charAt(i);
a[p][6]=simv;
p+=1;
}
p=0;
for (i=8; i<16; i++)
{
simv=stol2.charAt(i);
a[p][4]=simv;
p+=1;
}
p=0;
for (i=16; i<24; i++)
{
simv=stol3.charAt(i);
a[p][2]=simv;
p+=1;
}
p=0;
for (i=24; i<32; i++)
{
simv=stol4.charAt(i);
a[p][1]=simv;
p+=1;
}
p=0;
for (i=32; i<40; i++)
{
simv=stol5.charAt(i);
a[p][3]=simv;
p+=1;
}
p=0;
for (i=40; i<48; i++)
{
simv=stol6.charAt(i);
a[p][5]=simv;
p+=1;
}
p=0;
for (i=48; i<56; i++)
{
simv=stol7.charAt(i);
a[p][7]=simv;
p+=1;
}
p=0;
for (i=56; i<64; i++)
{
simv=stol8.charAt(i);
a[p][8]=simv;
p+=1;
}
for (i=0; i<8; i++) f=f+a[8][i]; //считывание по ключу: 8 1 5 4 6 2 7 3
for (i=0; i<8; i++) f=f+a[1][i];
for (i=0; i<8; i++) f=f+a[5][i];
for (i=0; i<8; i++) f=f+a[4][i];
for (i=0; i<8; i++) f=f+a[6][i];
for (i=0; i<8; i++) f=f+a[2][i];
for (i=0; i<8; i++) f=f+a[7][i];
for (i=0; i<8; i++) f=f+a[3][i];
b_text2.value = f; }
</script>
<div align="center">
<b>Введите сюда Ваш текст:</b>
<br><br>
<input id="b_text1" type="text" size="80">
<br><br><br>
<b>Выберите действие:</b>
<br><br>
<input onclick="polib()" type="button" value="Дешифровать"><br>
<b>Результат:</b> <br><br>
<input id="b_text2" type="text" size="80"> </div>
</html>
|
|
03.05.2012, 22:53
|
|
сегодня в 12:34|Комментир
|
|
Регистрация: 12.04.2011
Сообщений: 1,180
|
|
Поставь весь html над js, иначе для него строка:
var vvod = b_text1.value; undefined. Да и странно вы как-то вы ищете элементы, если по id, то ищите так:
var vvod = document.getElementById('b_text1').value
__________________
оляля, ололо
|
|
03.05.2012, 23:04
|
Новичок на форуме
|
|
Регистрация: 03.05.2012
Сообщений: 4
|
|
это не суть важно где стоит в данном случае, аналогичная структура работает))
меня больше интересует, запись и чтение матрицы правильно я сделал?
|
|
03.05.2012, 23:07
|
|
сегодня в 12:34|Комментир
|
|
Регистрация: 12.04.2011
Сообщений: 1,180
|
|
greg_zel,
вставь тест и посмотри)
Сообщение от грег зел
|
это не суть важно где стоит в данном случае, аналогичная структура работает))
|
странно...
<input type='text' id='text' value='asd'>
<script>
alert(document.getElementById('text').value)
</script>
<script>
alert(document.getElementById('text').value)
</script>
<input type='text' id='text' value='asd'>
__________________
оляля, ололо
|
|
04.05.2012, 06:15
|
Аспирант
|
|
Регистрация: 27.06.2010
Сообщений: 49
|
|
А может тут лучше один двухмерник вместо этой каши из одномерников?
|
|
04.05.2012, 11:33
|
Новичок на форуме
|
|
Регистрация: 03.05.2012
Сообщений: 4
|
|
как сделать двухмерник?
как обращаться к элементам матрицы также, a[i][j]?
Последний раз редактировалось greg_zel, 04.05.2012 в 11:47.
|
|
04.05.2012, 11:40
|
|
сегодня в 12:34|Комментир
|
|
Регистрация: 12.04.2011
Сообщений: 1,180
|
|
greg_zel,
да,
var array = [
[1,2,3],
[4,5,6]
]
alert(array[0][0])
__________________
оляля, ололо
|
|
04.05.2012, 12:54
|
Новичок на форуме
|
|
Регистрация: 03.05.2012
Сообщений: 4
|
|
как мне создать ПУСТУЮ матрицу двумерную 8*8, затем записывать в нее?
|
|
04.05.2012, 14:00
|
|
сегодня в 12:34|Комментир
|
|
Регистрация: 12.04.2011
Сообщений: 1,180
|
|
greg_zel,
ну так и делайте:
var m = [
['','','','','','','',''],
['','','','','','','',''],
['','','','','','','',''],
['','','','','','','',''],
['','','','','','','',''],
['','','','','','','',''],
['','','','','','','',''],
['','','','','','','','']
]
m[7][7] = 'я последний элемент'
alert(m)
__________________
оляля, ололо
|
|
04.05.2012, 19:55
|
|
сегодня в 12:34|Комментир
|
|
Регистрация: 12.04.2011
Сообщений: 1,180
|
|
Ну а если по короче, то так:
function matrix(a,b) {
var arr = []
for(i=0;i<a;i++) arr[i] = []
for(i=0,k=0;i<b;k++,i++) arr[i][k] = ''
return arr
}
var m = matrix(8,8)
alert(m[7][7])
__________________
оляля, ололо
|
|
|
|