Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Java
Перезагрузить страницу Поворотная решетка что это такое
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
susuwatari susuwatari вне форума
Новичок
 
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 27.11.2010
По умолчанию Поворотная решетка что это такое - 15.02.2011, 18:57

для того, чтобы зашифровать текст, решетка с прорезями накладывается на расчерченный квадрат, после чего буквы текста последовательно записываются в прорези. Когда все прорези заполнены, решетка поворачивается на 90 градусов, в прорези записывается продолжение текста, после чего решетка снова поворачивается и затем процедура повторяется еще два раза. Если текст не поместился в один квадрат, таким же образом заполняется следующий.

Проблема в исключениях
Java Код:
public static char[][] Turn (char[][] res){    
        char[][] mass;
        mass = res;
        for(int i=1; i<=mass.length;i++){
          for(int j=1; j<=mass[i].length;j++){
            res[j][mass.length-i+1] = mass[i][j];
            }
        }
         return res;
         }
   
   
public static char[][] EncodeText(String s,char[][] mask){
                 
  char[][]mx;
    for(int i=1; i<=mask.length;i++){
    for(int j=1; j<=mask[i].length;j++){
            mx[i][j]=' ';
            }
        }
    int count = 1;
      while (count <= s.length()){
        for(int i=1; i<=mask.length;i++){
        for(int j=1; j<= mask[i].length;j++){
            if (mask[i][j] == 'x') { //исключение
                      mx[i][j]= s.charAt(count);
                      count=count+1;
                          }
                    }
                }
             Turn(mask);
         }
         return mx;
                 
     }
public static String DecodeText (char[][] encoded,char[][] mask){
         String s = "";
    while (s.length() <mask.length*mask.length){
      for(int i=1; i<=mask.length;i++){
        for(int j=1; j<= mask[i].length;j++){
            if (mask[i][j] == 'x') //исключение
                s = s + encoded[i][j];
            }
        }
             Turn(mask);
             
     }
        return s;
}
Ответить с цитированием
  (#2 (permalink)) Старый
Fuud Fuud вне форума
Member
 
Сообщений: 4,076
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 03.09.2004
По умолчанию 16.02.2011, 12:55

Во-первых, у вас не получилось объектно-ориентированности: вместо оперирования двумерными массивами надо было создать класс маски, например такой:
Java5 Код:
public class Mask{
  public Mask(boolean[][] mask){/*something*/}

  public Point getNextInputPoint(Point currentPoint){
  /*взвращает следующую точку, в которую можно поместить символ, или null, если такой нет*/
  }

  public Mask turn(){
  /*возвращает маску, повернутую на 90 градусов относительно текущей. Текущая не изменяется.*/
  }
}

Во-вторых, значения в маске принимают только два значения: можно ставить символ или нет. Следовательно, она должна содержать не char, а boolean.

В-третьих, назначение параметров, локальных переменных, классов, полей и т. д. должно быть понятно без комментариев. Вот, например, в методе Turn параметр res: мне на вскидку приходят в голову только две расшифровки: result и resource.

В-четвертых, названия методов в java пишутся с маленькой буквы (так принято, подробнее - тут).

В-пятых, я не понял, что у вас не получилось.
Ответить с цитированием
  (#3 (permalink)) Старый
Gun-Down Gun-Down вне форума
;)
 
Сообщений: 306
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 23.07.2010
По умолчанию 16.02.2011, 14:38

индексация в массивах от 0 до length-1, у вас -- 1..length. исключение ArrayIndexOutOfBounds?
Ответить с цитированием
  (#4 (permalink)) Старый
susuwatari susuwatari вне форума
Новичок
 
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 27.11.2010
По умолчанию 17.02.2011, 01:30

Цитата:
Сообщение от Gun-Down Посмотреть сообщение
исключение ArrayIndexOutOfBounds?
оно самое

Fuud, спасибо за идею)попробую сделать через маску
Ответить с цитированием
  (#5 (permalink)) Старый
sombik sombik вне форума
Новичок
 
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 22.10.2012
По умолчанию 22.10.2012, 10:41

Цитата:
Сообщение от Fuud Посмотреть сообщение
Во-первых, у вас не получилось объектно-ориентированности: вместо оперирования двумерными массивами надо было создать класс маски, например такой:
Java5 Код:
public class Mask{
  public Mask(boolean[][] mask){/*something*/}

  public Point getNextInputPoint(Point currentPoint){
  /*взвращает следующую точку, в которую можно поместить символ, или null, если такой нет*/
  }

  public Mask turn(){
  /*возвращает маску, повернутую на 90 градусов относительно текущей. Текущая не изменяется.*/
  }
}

Во-вторых, значения в маске принимают только два значения: можно ставить символ или нет. Следовательно, она должна содержать не char, а boolean.

В-третьих, назначение параметров, локальных переменных, классов, полей и т. д. должно быть понятно без комментариев. Вот, например, в методе Turn параметр res: мне на вскидку приходят в голову только две расшифровки: result и resource.

В-четвертых, названия методов в java пишутся с маленькой буквы (так принято, подробнее - тут).

В-пятых, я не понял, что у вас не получилось.
Ну, начну....
Во-первых, хватит троллить и заниматься ерундой. Вас попросили посмотреть проблему, а не учить человека жизни. Порой решение проблемы в 1 минуту времени, а вы заставляете его изучить тонну информации, никак не связанные с его проблемой.
Во-вторых, какая ему разница от ваших конструкций ООП....да и где вы слышали о конструкциях ООП?!:?! You are crazy? Есть только 3 паттерна, они же 3 базовых правила создания ООП приложений. НИКАКИХ КОНСТРУКЦИЙ!!!!!....не придумывайте всякой чуши, не смешите людей, идите и учите JAVA с нуля.
В-третьих, про название методов и все остальное. Я в своих приложениях для себя создаваемых пишу на скорую руку как хочу. Таким же правилом и воспользовался автор темы. Какая Вам разница!?!?!?! Я могу называть хоть 2 буквами переменные, зато у меня будет 1к строк комментов, описывающих, что и как.(но смысла от проблемы автора в вашем троллерском комменте не увидел, но - двигаемся дальше)

В четвертых, это опустим, вы сейчас пойдете читать книгу - "как работать/общаться с людьми", Вас вообще к людям нельзя подпускать!

В пятых, ну чё?! Выебнулся, написал? А где же решение проблемы? Духу не хватило? Или мозгов?


++++++++++++++++++++++++++++++++++++

По поводу решения проблемы автора:

Массив char[][] mx необходимо инициализировать(в вашем случае)
можно так: char[][] mx = new char[?][?];
Вместо вопросиков можно подставить что-то типо:
mask.Length или их это оперы, посмотрите сами, что вам по духу ближе, но размерность укажите, иначе он будет неразмерным(объектом без длины), а изменить размерность - значит создать новый объект....
Надеюсь помог, чем мог.
Ответить с цитированием
Ads.
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Методы и средства защиты информации шифр Поворотная решетка Азим Delphi 3 16.04.2011 23:39
что такое МСР FiJer Материнские платы 1 14.11.2009 18:20
Что такое DLL Коллектив авторов DLL 4 25.08.2009 19:52
Что такое bws? Blazern Техническая поддержка 1 02.08.2008 11:43
Почему прпала решетка imported_Nas J2ME 2 04.06.2007 10:35
Что такое PG Northwood PostgreSQL 10 10.11.2006 15:12
МГУ и всё такое... &lt;&lt;LexuS&gt;&gt; Офтопик 6 07.01.2006 00:58
Что такое класс и что такое конструктор IgorR С/С++ 2 17.05.2005 20:56
Что такое nInitial и что такое nGrow 5lim Вопросы начинающих программистов 7 01.02.2005 11:08
Что такое BJ2 ИА Железо. Написание драйверов 0 21.06.2004 12:48
Что такое NET Алексеев Николай Delphi 1 07.06.2004 10:01



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов