С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Koshuk
0 / 0 / 0
Регистрация: 19.06.2015
Сообщений: 11
1

Шифрование строки методом циклической замены

20.06.2015, 22:49. Просмотров 869. Ответов 7
Метки нет (Все метки)

Дана строка - предложение на украинском языке и число k (0 < k < 10). Зашифровать строку , выполнив циклическую замену каждой буквы на букву того же регистра , расположенную в алфавите на k -й позиции после буквы , которую шифруем (например, для k = 2 "А" перейдет в " В", " а " - в " в "," Б "- в" Г " , " я "- в " б " и т.д.). Знаки препинания и пробелы не изменять .
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.06.2015, 22:49
Ответы с готовыми решениями:

Шифрование текста методом табличной замены
Способ шифрования текста состоит в табличной замене каждого символа другим...

Простое шифрование методом замены символов
Всем привет. Нужна помощь в написании программы, которая бы шифровала и...

Шифрование текста методом замены букв
Помогите написать код: при нажатии на кнопку в окне memo должны меняться...

Шифрование/дешифрование файла методом простой замены
Плз очень нужна программа на Delphi (способ перестановки символов при ключе...

Шифрование методом Цезаря/простого перемещения/двойного перемещения/простой замены
Всем привет, так случилось что мне задали за пару дней сделать программу...

7
antonboom
bmstu-team
301 / 136 / 91
Регистрация: 10.01.2012
Сообщений: 420
Записей в блоге: 10
21.06.2015, 00:12 2
Лучший ответ Сообщение было отмечено Koshuk как решение

Решение

Вот для английского. Таблица ASCII в помощь.
Delphi
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
program Project2;
 
{$APPTYPE CONSOLE}
 
uses SysUtils;
 
var s, delim: string;
    i: integer;
    x, k: byte;
begin
  k:= 5;
  s:= 'Hello World!';
  delim:= ' ,;!()?.:-';
  for i:= 1 to length(s) do
    if pos(s[i], delim) = 0 then
      begin
        x:= ord(s[i]);
        if ((x < 91) and (x + k > 90)) or ((x < 123) and (x + k > 122)) then
          s[i]:= chr(k + x - 26)
        else
          s[i]:= chr(k + x);
      end;
 
  writeln(s);
  readln;
end.
0
Koshuk
0 / 0 / 0
Регистрация: 19.06.2015
Сообщений: 11
21.06.2015, 02:07  [ТС] 3
Спасибо большое

Добавлено через 34 минуты
На укр. даже еще не переходил, уже ошибки

Когда k:=5;
Все работает
Когда
k:=StrToInt(edit1.text);
То сбой
0
northener
пофигист широкого профиля
3429 / 2328 / 631
Регистрация: 15.07.2013
Сообщений: 13,797
21.06.2015, 02:16 4
Цитата Сообщение от Koshuk Посмотреть сообщение
Когда k:=5;
Все работает
Когда
k:=StrToInt(edit1.text);
То сбой
Естественно. Ты не сказал какая программа тебе нужна. Тебе дали рабочий пример консольной программы.
0
Koshuk
0 / 0 / 0
Регистрация: 19.06.2015
Сообщений: 11
21.06.2015, 02:21  [ТС] 5
Ну так я немного по-химичил и она заработала , но вот когда хочу вводить к через едит, то сбой дает
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var s, delim: string;
    i: integer;
    x,k: byte;
    begin
    //k:=5;
  k:=StrToInt(edit1.text);
  //s:= 'Hello World!';
  s:= edit1.Text;
  delim:= ' ,;!()?.:-';
  for i:= 1 to length(s) do
    if pos(s[i], delim) = 0 then
      begin
        x:= ord(s[i]);
        if ((x < 91) and (x + k > 90)) or ((x < 123) and (x + k > 122)) then
          s[i]:= chr(k + x - 26)
        else
        s[i]:=chr(k + x);
         Label1.Caption:= s;
 
      end;
0
northener
пофигист широкого профиля
3429 / 2328 / 631
Регистрация: 15.07.2013
Сообщений: 13,797
21.06.2015, 02:27 6
Цитата Сообщение от Koshuk Посмотреть сообщение
то сбой дает
Какой "сбой"?
0
Koshuk
0 / 0 / 0
Регистрация: 19.06.2015
Сообщений: 11
21.06.2015, 02:47  [ТС] 7
Вот
уже под русский переделал
0
Миниатюры
Шифрование строки методом циклической замены  
Puporev
Модератор
55506 / 42595 / 29443
Регистрация: 18.05.2008
Сообщений: 100,754
21.06.2015, 06:55 8
Лучший ответ Сообщение было отмечено Koshuk как решение

Решение

Так k нужно вводить в 1 Эдит, а строку в 2.
Delphi
1
2
k:=StrToInt(edit1.text);
s:= edit2.Text;
1
21.06.2015, 06:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.06.2015, 06:55

Шифрование символьной строки методом ИСКЛЮЧАЮЩЕГО ИЛИ
кто-то знает что это ?

Шифрования текста методом замены
Мне надо, чтобы эта программа, шифровала текст, на русском или английском языке...

Шифрование методом Триссимуса
у меня проблема. есть программа шифрования текста полибианским квадратом, там...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru