0 / 0 / 0
Регистрация: 30.03.2016
Сообщений: 13
|
||||||
1 | ||||||
Переделать код паскаля под джаву15.05.2017, 18:36. Показов 4734. Ответов 11
Метки нет (Все метки)
Помогите пожалуйста переделать код паскаля для использования в джаве.
0
|
15.05.2017, 18:36 | |
Ответы с готовыми решениями:
11
Переделать код паскаля под джаву Нужно перевести код из Паскаля на Джаву Delphi на Java (перевести этот код на Джаву) Нужно код из Паскаля, переделать под Делфи |
164 / 170 / 139
Регистрация: 28.11.2016
Сообщений: 301
|
|||||||||||
16.05.2017, 11:58 | 2 | ||||||||||
Сообщение было отмечено Иван123456 как решение
Решение
Вариант программы переписан максимально близко к коду Паскаль
1
|
51 / 51 / 23
Регистрация: 05.04.2010
Сообщений: 127
|
||||||
16.05.2017, 12:05 | 3 | |||||
1
|
0 / 0 / 0
Регистрация: 30.03.2016
Сообщений: 13
|
|
16.05.2017, 17:49 [ТС] | 4 |
Огромное спасибо)
0
|
0 / 0 / 0
Регистрация: 30.03.2016
Сообщений: 13
|
|
17.05.2017, 18:14 [ТС] | 5 |
Выдает вот такую ошибку
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 29 at java.lang.String.substring(String.java:1963) at javaapplication3.Deshifr.main(Deshifr.java:36) C:\Users\Ivan\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1 СБОРКА ЗАВЕРШЕНА СО СБОЕМ (общее время: 1 секунда) Как исправить??
0
|
164 / 170 / 139
Регистрация: 28.11.2016
Сообщений: 301
|
|
17.05.2017, 18:35 | 6 |
Означает что Вы обращаетесь к строке с индексом 29 который больше длины строки.
И так как происходит это с substring похоже есть путаница в работе с substring. Давайте сюда проблемный файл.
1
|
0 / 0 / 0
Регистрация: 30.03.2016
Сообщений: 13
|
|
17.05.2017, 19:05 [ТС] | 7 |
Код
public class Deshifr { public static void main(String[] args) { String[] a = new String[]{"0000","0001","0010","0011","0100","0101","0110","0111","1000","1001","1010","1011","1100","1101","1110","1111"}; String[] m = new String[]{"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"}; byte g; String s,t,kod="",rez; char[] h = new char[1000000]; short st,d,n; int i,j; float p; Scanner scanner = new Scanner(System.in); System.out.println("¬ведите код"); s = scanner.nextLine(); n=0; for (i=1 ; i < s.length() ; i++) { n++; t = s.substring(n, n+1); for (j = 0; j < 15; j++) if (t.equals(m[j])) { kod += a[j]; } } n=1; st=7; j=1; p=0; for (i = 0; i < kod.length(); i++) { t = kod.substring(n, n+1); g = Byte.decode(t); p = (float) (p + g * Math.pow(Math.E,Math.exp(2) * st)); n++; if (st > 0) st--; else { st = 7; d = (short) Math.round(p); h[j] = (char) d; p=0; j++; } } for (i=0; i < s.length() / 2; i++) System.out.println(h[i]); } }
0
|
164 / 170 / 139
Регистрация: 28.11.2016
Сообщений: 301
|
||||||
17.05.2017, 20:24 | 8 | |||||
Class Deshifr
Кликните здесь для просмотра всего текста
Теперь переводит строку в последовательность 0,1 без затыков. Проверяйте.
1
|
0 / 0 / 0
Регистрация: 30.03.2016
Сообщений: 13
|
|
18.05.2017, 14:59 [ТС] | 9 |
Не выдает ошибок, но при выводе в консоле почему то не отображаемые символы, использую NetBeans
0
|
164 / 170 / 139
Регистрация: 28.11.2016
Сообщений: 301
|
|
18.05.2017, 15:03 | 10 |
Я не разбирался что у Вас там за алгоритм кодировки, судя по тому что Вы используете математические функции, это некая формула. И естественно в результате получаются байты данных, которые не будут отображаться как обычные символы.
Если Вы хотите их отображать в Binary или Hex формате надо преобразовать двоичные данные в ASCII символы 0/1 или hex.
1
|
0 / 0 / 0
Регистрация: 30.03.2016
Сообщений: 13
|
|
18.05.2017, 15:20 [ТС] | 11 |
Суть в том что вводилась строка текста любого, потом выводилась его так сказать 16 ричная версия, и вот эта программа делала все обратно, это нужно для удобства шифрования данных с помощью разнообразных старых алгоритмов так как они не использовали русский, а в качестве примера привести надо.
0
|
164 / 170 / 139
Регистрация: 28.11.2016
Сообщений: 301
|
|
18.05.2017, 16:00 | 12 |
Предлагаю поработать с отладчиком, в нем все хорошо видно.
Если не получится, выкладывайте алгоритм, исходные и выходные данные. можно на почту temp20170516@mail.ru Почта временная, но пару недель продержится PS: плюсовать каждый пост не нужно, один на тему достаточно.
0
|
18.05.2017, 16:00 | |
18.05.2017, 16:00 | |
Помогаю со студенческими работами здесь
12
Переделать под с Паскаля в Делфи Переделать программу из турбо паскаля под АВС Переделать код из Паскаля в С++ Переделать код из Паскаля в С++ Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |