[Вопрос решен] Напишите программу Шифр Цезаря на Java, которая зашифровывает...

Напишите программу Шифр Цезаря на Java, которая зашифровывает введенный текст. Используете кодовую таблицу символов. При запуске программы в консоль необходимо вывести сообщение: «Введите текст для шифрования», после ввода текста, появляется сообщение: «Введите ключ».

После того как введены все данные, необходимо вывести преобразованную строку с сообщением «Текст после преобразования : » Далее необходимо задать вопрос пользователю: «Выполнить обратное преобразование? (y/n)», если пользователь вводит «y», тогда выполнить обратное преобразование Если пользователь вводит «n», того программа выводит сообщение «До свидания!»

(1) Смотреть решение

Ответ нейросети AfinaAI

Привет!​ Я решил создать программу на Java, которая применяет Шифр Цезаря для зашифровки текста.​ Хочу поделиться с вами своим опытом и показать, как это можно сделать.​Для начала, необходимо задать кодовую таблицу символов, которую будем использовать.​ В моей программе я использовал латинский алфавит в нижнем регистре (от ‘a’ до ‘z’) и символы пробела и точки.​ Теперь давайте приступим к написанию программы.​java
import java.​util.​Scanner;

public class CaesarCipher {
public static void main(String[] args) {
Scanner scanner new Scanner(System.​in);

System.​out;println(″Введите текст для шифрования⁚″);
String text scanner.​nextLine;

System.​out.​println(″Введите ключ⁚″);
int key scanner.​nextInt;

String encryptedText encrypt(text, key);
System.​out.​println(″Текст после преобразования⁚ ″ encryptedText);

System.​out.​println(″Выполнить обратное преобразование?​ (y/n)»);
String choice scanner.​next;

if (choice.​equalsIgnoreCase(″y″)) {
String decryptedText decrypt(encryptedText, key);
System.out.println(″Текст после обратного преобразования⁚ ″ decryptedText);
} else {
System.out.​println(″До свидания!​″);
}
}

public static String encrypt(String text, int key) {
String encryptedText ″″;

for (int i 0; i < text.​length; i ) { char c text.​charAt(i); if (c > ‘a’ nn c < 'z') {
c (char) ((c ⎼ ‘a’ key) % 26 ‘a’);
} else if (c ‘ ‘) {
c ‘.’;
}

encryptedText c;
}

return encryptedText;
}

public static String decrypt(String text, int key) {
String decryptedText ″″;
for (int i 0; i < text.​length; i ) { char c text.​charAt(i); if (c > ‘a’ nn c < 'z') { c (char) ((c ⏤ 'a' ⏤ key 26) % 26 'a'); } else if (c '.​') { c ' '; } decryptedText c; } return decryptedText; } } В этой программе я использовал функцию `encrypt`, которая принимает входной текст и ключ шифрования.​ Она проходит по каждому символу в тексте и сдвигает его на `key` позиций вперед по алфавиту.​ Если символ является пробелом, мы заменяем его на точку, чтобы иметь возможность восстановить пробелы при выполнении обратного преобразования.​ Функция `decrypt` работает точно так же, только сдвигает символы назад на `key` позиций по алфавиту и восстанавливает пробелы из точек.​ После запуска программы, она запросит ввод текста для шифрования и ключа. Затем будет выведена преобразованная строка. Программа также спросит пользователя, хочет ли он выполнить обратное преобразование. Если пользователь ответит 'y', программа выполнит дешифровку, иначе просто выведет ″До свидания!​″.​ Надеюсь, мой опыт будет полезен для вас!​ Удачи в изучении шифрования и программирования на Java!​

Читайте также  3.14. Две стороны остроугольного треугольника равны 6 см и 8 см, а синус угла между ними равен 0,6. Найдите синусы остальных углов треугольника и третьей стороны.Решите по теореме косинусов с² = a² b² – 2abcosC

AfinaAI