Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   считывание матрицы (https://javascript.ru/forum/misc/28183-schityvanie-matricy.html)

StelZ 10.05.2012 17:42

считывание матрицы
 
программа должна переводить большие буквы русского алфавита в численные значения из матрицы 5х7. начало с а=11. не получается перевод букв, начиная с Ш (пишет просто цифру ряда с конца). исправьте, пожалуйста, ошибку.
Код:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
<head>
<title>Квадрат Полибия</title>
</head>
<body>
<script type="text/javascript">
var
str="12345",
str1="АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ.,",
arr0="1АБВГД",
arr1="2ЕЁЖЗИ",
arr2="3ЙКЛМН",
arr3="4ОПРСТ",
arr4="5УФХЦЧ",
arr5="6ШЩЪЫЬ",
arr6="7ЭЮЯ.,",
PolibStr=new Array(arr1, arr2, arr3, arr4, arr5, arr6);
function PolibEncrypt(ptr){
var i, inp=ptr.inp.value, outp=ptr.outp.value;
status="Шифрование";
outp="";
for (i=0; i<inp.length; i++){
tmp=str1.indexOf(inp.charAt(i));
if (tmp==-1){
alert('Текст содержит символ, не входящий в алфавит: "'+inp.charAt(i)+'" (#'+inp.charCodeAt(i)+')');
break;
}
outp+=str.charAt(Math.floor(tmp/7));
outp+=str.charAt(tmp%5);
}
ptr.outp.value=outp;
status="Готово";
return;
}
function PolibDecrypt(ptr){
var i, inp=ptr.inp.value, outp=ptr.outp.value;
status="Дешифрование";
inp="";
for (i=0; i<outp.length; i+=2){
tmp=str.indexOf(outp.charAt(i));
if (tmp==-1){
alert('Текст содержит символ, не входящий в алфавит: "'+outp.charAt(i)+'" (#'+outp.charCodeAt(i)+')');
break;
}
tmp1=str.indexOf(outp.charAt(i+1));
if (tmp1==-1){
alert('Текст содержит символ, не входящий в алфавит: "'+outp.charAt(i+1)+'" (#'+outp.charCodeAt(i+1)+')');
break;
}
inp+=str1.charAt(tmp*7+tmp1);
}
ptr.inp.value=inp;
status="Готово";
return;
}
</script>
<div align=center><a name="polib"><font size=5>квадрат Полибия</font></a></div>
<br/>
<table align=center border=1 cellspacing=2 cellpadding=2 style="font-family: Courier">
<tr><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td>></tr>
<tr><td>1</td><td>А</td><td>Б</td><td>В</td><td>Г</td><td>Д</td></tr>
<tr><td>2</td><td>Е</td><td>Ё</td><td>Ж</td><td>З</td><td>И</td></tr>
<tr><td>3</td><td>Й</td><td>К</td><td>Л</td><td>М</td><td>Н</td></tr>
<tr><td>4</td><td>О</td><td>П</td><td>Р</td><td>С</td><td>Т</td></tr>
<tr><td>5</td><td>У</td><td>Ф</td><td>Х</td><td>Ц</td><td>Ч</td></tr>
<tr><td>6</td><td>Ш</td><td>Щ</td><td>Ъ</td><td>Ы</td><td>Ь</td></tr>
<tr><td>7</td><td>Э</td><td>Ю</td><td>Я</td><td>.</td><td>,</td></tr>
</table>
<form name="polib" onsubmit="return false;">
<table valign=middle align=center><tr>
<td>Исходный текст:<br><textarea wrap=virtual name="inp" rows=10 cols=30%></textarea></td>
<td align=center><input type=button name="encr" value="Зашифровать ->" onClick="PolibEncrypt(this.form);"><br><input type=button value="<- Дешифрировать" onClick="PolibDecrypt(this.form);"><br><input type=reset value="Очистить"></td>
<td align=right>Преобразованный текст:<br><textarea wrap=virtual name="outp" rows=10 cols=30></textarea></td>
</tr>
</table>
</form>
</body>
</html>


bes 10.05.2012 19:45

Кто вас так учил код писать, читать не реально.

StelZ 10.05.2012 20:10

код не мой, это последняя программа для завтрашней курсовой..

bes 11.05.2012 23:00

Попробовал реализовать шифрование по квадрату Полибия, выложу как тему.


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