Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Шифр Цезаря

Автор: TARTAR87
Дата сообщения: 09.06.2016 17:01
[more] В шифре Цезаря каждый символ заменяется на другой символ, третий по счету в алфавите после данного, с цикличность. То есть символ A заменяется на D, символ B - на E, символ C - на F, ..., символ Z на C. Аналогично строчные буквы заменяются на строчные буквы. Все остальные символы не меняются.

Дана строка, зашифруйте ее при помощи шифра Цезаря. Решение оформите в виде функции CaesarCipher (S, k), возвращающей новую строку. <сode>S — исходная строка, k — величина сдвига. Функцию нужно вызывать со значением k=3.

Указание: сделайте функцию CaesarCipherChar(c, k), шифрующую один символ.
import java.util.Scanner;

public class Shifr {
    
     private static int bigChar(int checkChr) {
     if (checkChr > 90)
     return checkChr - 25;
     else if (checkChr < 65)
     return checkChr + 25;
     return checkChr;
     }
    
     private static int littleChar(int checkChr) {
     if (checkChr > 122)
     return checkChr - 25;
     else if (checkChr < 97)
     return checkChr + 25;
     return checkChr;
     }
    
     private static String codCaesar(char [] codidStr, int offset) {
     for (int i = 0; i < codidStr.length; i++) {
     if (codidStr[i] >= 'A' && codidStr[i] <= 'Z') {
     codidStr[i] = (char)bigChar(codidStr[i] + offset);
     }
     else if (codidStr[i] >= 'a' && codidStr[i] <= 'z') {
     codidStr[i] = (char)littleChar(codidStr[i] + offset);
     }
     }
     return new String(codidStr);
     }
    
    
    

     public static void main(String[] args) {
         
     Scanner r = new Scanner(System.in);
     char[] charForCoding = r.nextLine().toCharArray();
    
    
     int k = 3;
     System.out.println(codCaesar(charForCoding,k));
    
     }}
[/more]

Добавлено:
[more] В шифре Цезаря каждый символ заменяется на другой символ, третий по счету в алфавите после данного, с цикличность. То есть символ A заменяется на D, символ B - на E, символ C - на F, ..., символ Z на C. Аналогично строчные буквы заменяются на строчные буквы. Все остальные символы не меняются.

Дана строка, зашифруйте ее при помощи шифра Цезаря. Решение оформите в виде функции CaesarCipher (S, k), возвращающей новую строку. <сode>S — исходная строка, k — величина сдвига. Функцию нужно вызывать со значением k=3.

Указание: сделайте функцию CaesarCipherChar(c, k), шифрующую один символ.
package cyberforum;

import java.util.Scanner;

public class CyberForum {

private static int bigChar(int checkChr) {
if (checkChr > 90)
return checkChr - 25;
else if (checkChr < 65)
return checkChr + 25;
return checkChr;
}

private static int littleChar(int checkChr) {
if (checkChr > 122)
return checkChr - 25;
else if (checkChr < 97)
return checkChr + 25;
return checkChr;
}

private static String codCaesar(char [] codidStr, int offset) {
for (int i = 0; i < codidStr.length; i++) {
if (codidStr[i] >= 'A' && codidStr[i] <= 'Z') {
codidStr[i] = (char)bigChar(codidStr[i] + offset);
}
else if (codidStr[i] >= 'a' && codidStr[i] <= 'z') {
codidStr[i] = (char)littleChar(codidStr[i] + offset);
}
}
return new String(codidStr);
}

public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
System.out.println("Введите текст для кодирования");
char[] charForCoding = reader.nextLine().toCharArray();
System.out.println("Введите ключ кодирования/декодирования 1-25");
System.out.println("Для декодирования введите отрецательное значения ключа");
int k = reader.nextInt();
System.out.println(codCaesar(charForCoding,k));

} [/more]

Добавлено:
Помогите, пожалуйста, решить задачу, а то у меня зачет, а у меня ошибку выдает..
программирование на JAVA

В шифре Цезаря каждый символ заменяется на другой символ, третий по счету в алфавите после данного, с цикличность. То есть символ A заменяется на D, символ B - на E, символ C - на F, ..., символ Z на C. Аналогично строчные буквы заменяются на строчные буквы. Все остальные символы не меняются.

Дана строка, зашифруйте ее при помощи шифра Цезаря. Решение оформите в виде функции CaesarCipher (S, k), возвращающей новую строку. <сode>S — исходная строка, k — величина сдвига. Функцию нужно вызывать со значением k=3.

Указание: сделайте функцию CaesarCipherChar(c, k), шифрующую один символ.

Страницы: 1

Предыдущая тема: Помогите создать макрос масштабирование


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.