Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/34: Рейтинг темы: голосов - 34, средняя оценка - 4.85
4 / 4 / 0
Регистрация: 05.03.2013
Сообщений: 449

Квадрат полибия

16.11.2016, 03:23. Показов 7244. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
1) Составить двухмерный массив 5х5
2) Ввести слово, которое нужно закодировать.
3) Вывести закодированное слово.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public class PolybiySquart {
 
    public static void main(String args[])  throws java.io.IOException {
        int[][] arr = new int[5][5];
        int a = 65, z = 89;
        Randoming.randoming(arr, a, z);
        System.out.println();
        charOutMass.charOutMas(arr);
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String c = reader.readLine();
        int lenth = c.length();
        char[] CharArray = c.toCharArray();
 
            for(int i = 0; i < arr.length; i++){
                for (int j = 0; j < arr[i].length; j++){
                    for(int k = 0; k < lenth; k++) {
                        if (CharArray[i] == arr[i][j]) {
                            System.out.print((char) arr[i+1][j]);
                        }
                    }
                }
            }
        }
 
 
    }
__________________________

Кликните здесь для просмотра всего текста

Java
1
2
3
4
5
6
7
8
9
10
11
12
public class charOutMass {
    public static void charOutMas(int arr[][]) {
        char wow;
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                wow = (char) arr[i][j];
                System.out.print(wow + "\t");
            }
            System.out.println();
        }
    }
}
___________________
Java
1
2
3
4
5
6
7
8
9
10
11
12
public class chekValue {
    public static boolean chekValue(int arr [][], int x){
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                if(x == arr[i][j]){
                    return true;
                }
            }
        }
        return false;
    }
}
__________________________
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
public class Randoming {
    public static void randoming(int arr[][], int a, int z){
        int chek;
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                do {
                    chek = a + (int) (Math.random() * ((z - a) + 1));
                }while(chekValue.chekValue(arr, chek));
                arr[i][j] = chek;
            }
        }
    }
}


Собственно вопрос в следующем. Матрица составлена, но при вводе слова, дает следующий результат:
Пример:
https://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{matrix} C  F  U  I  M \\  B  V  Y  L  P \\  W  X  O  R  S \\  D  E  A  G  Q \\  K  N  J  H  T \end{matrix}
Слово, которое нужно зашифровать: SLOVO
Результат: RRRRRAAAAA

Что в строках 14-18 не правильно?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.11.2016, 03:23
Ответы с готовыми решениями:

Метод Полибия шифрование и дешифрование на JAVA
Здравствуйте! Как реализовать дешифровку слова в джаве?! и чтобы слова вводились пользователем?! Нашла в интернете такой вот код...

Шифр Полибия, ввод текста с клавиатуры
Нашел этот шифр на вашем сайте, хотелось бы узнать, а как сделать, чтобы можно было вводить текст с клавиатуры и он выводил результат?...

Шифр Полибия
Здравствуйте, товарищи форумчане! Бродил сегодня по интернету, наткнулся на статейку по шифрованию, решил реализовать один простой шифр,...

8
 Аватар для GreeNicee
185 / 155 / 88
Регистрация: 04.10.2014
Сообщений: 397
16.11.2016, 07:39
Java
1
2
3
if (CharArray[i] == arr[i][j]) {//может CharArray[k] ))?
                            System.out.print((char) arr[i+1][j]);
                        }
1
4 / 4 / 0
Регистрация: 05.03.2013
Сообщений: 449
16.11.2016, 14:46  [ТС]
GreeNicee, теперь программа выдает следующее:
Миниатюры
Квадрат полибия  
0
 Аватар для GreeNicee
185 / 155 / 88
Регистрация: 04.10.2014
Сообщений: 397
16.11.2016, 15:04
Java
1
2
3
4
5
if (CharArray[k] == arr[i][j]) {
                        if (i + 1 >= arr.length)
                            System.out.print((char) arr[0][j]);
                        else
                            System.out.print((char) arr[i + 1][j]);
1
4 / 4 / 0
Регистрация: 05.03.2013
Сообщений: 449
16.11.2016, 15:12  [ТС]
Все равно не то
Изображения
 
0
 Аватар для GreeNicee
185 / 155 / 88
Регистрация: 04.10.2014
Сообщений: 397
16.11.2016, 15:16
А что должно быть?
1
4 / 4 / 0
Регистрация: 05.03.2013
Сообщений: 449
16.11.2016, 15:21  [ТС]
GreeNicee, Релизовывать метод шифрования Полибия, т.е. при вводе слова, программа должна искать по матрице одинаковые символы и записывать в новое слово те, которые стоят в столбце под ними, если же под ними нет ничего, то над ними. К примеру из предыдущего скриншота должно получиться следующее:
Слово: CHELOVEK
Шифр: IFYBDMYA

Надеюсь правильно объяснил
0
 Аватар для GreeNicee
185 / 155 / 88
Регистрация: 04.10.2014
Сообщений: 397
16.11.2016, 15:38
Лучший ответ Сообщение было отмечено e73t4ph_2 как решение

Решение

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
for (char ch : CharArray) {
            next:
            for (int i = 0; i < arr.length; i++) {
                for (int j = 0; j < arr[i].length; j++) {
                    if (ch == (char) arr[i][j]){
                        if (i + 1 == arr.length)
                            System.out.print((char)arr[i-1][j]);
                        else System.out.print((char)arr[i+1][j]);
                        break next;
                    }
                }
            }
        }
1
4 / 4 / 0
Регистрация: 05.03.2013
Сообщений: 449
16.11.2016, 16:45  [ТС]
GreeNicee, Все супер все работает. Плюс еще добавил условие для Z:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if(ch == 'Z'){
System.out.print("Z");}
else{
 next:
            for (int i = 0; i < arr.length; i++) {
                for (int j = 0; j < arr[i].length; j++) {
                    if (ch == (char) arr[i][j]){
                        if (i + 1 == arr.length)
                            System.out.print((char)arr[i-1][j]);
                        else System.out.print((char)arr[i+1][j]);
                        break next;
                    }
                }
            }
}
И теперь все работает идеально. Спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.11.2016, 16:45
Помогаю со студенческими работами здесь

Квадрат Полибия
Всем привет. Я ещё только начинаю рабоатаь в Делфи. Помогите пожалуйста переделать задачу на Паскале в Делфи. С помощью квадрат полибия...

Квадрат Полибия
Уже написан код. Всё работает. Нужно лишь, чтобы слова разделяло пробелами. А то пишет шифр слитно... текст: абв г шифр: 00010203 ...

Квадрат Полибия
Написал скрипт шифрования текста методом Квадрата Полибия: &lt;?php $message = ''; $message = mb_convert_case($message,...

Квадрат Полибия
в принципе без разницы,можно и на русском либо на англисском))) ну пожалуйста помогите Название темы изменено модератором. Именование...

Квадрат Полибия
Шифровальная таблица для латиницы представляет собой прямоугольник с шестью столбцами и пятью строками, которые нумеруются цифрами. В...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru