Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
0 / 0 / 1
Регистрация: 07.12.2014
Сообщений: 7
1

Каждую букву заменить соответствующим ей числом

26.01.2015, 23:05. Показов 2972. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Сама задача:

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

В начале каждая буква заменяется соответствующим ей числом: a на 0, b на 1, c на 2, ..., z на 25. После этого к первому числу добавляется 5, ко второму числу добавляется первое число, к третьему - второе и т .д. После этого если какое-то число превышает 25, то оно заменяется остатком от деления этого числа на 26. И, наконец, числа обратно заменяются буквами.

Зашифруем слово secret:

Шаг 0. secret

Шаг 1. 18 4 2 17 4 19

Шаг 2. 23 27 29 46 50 69

Шаг 3. 23 1 3 20 24 17

Шаг 4. xbduyr

В итоге получилось слово xbduyr.

Входные данные: файл input.in содержит зашифрованное слово, состоящее из малых латинских букв, длиной не более 100 символов.

Выходные данные: в файл output.out выведите исходное слово.

У самого ни черта не выходит...
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.01.2015, 23:05
Ответы с готовыми решениями:

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

Заменить каждую букву «а» предшествующем символом. Если буква «а» первая, то заменить ее на последнюю.
Напишите пожалуйста решение!СПАСИБО! Заменить каждую букву «а» предшествующем символом. Если буква...

Каждую букву Y в строке заменить на две буквы ZZ
Ввести строку с клавиатуры. В этой строке каждую букву Y заменить на две буквы ZZ Добавлено...

Заменить каждую первую букву в слове заглавной.
Запросить у пользователя строку S, содержащую несколько слов, разделенных символом пробела....

2
5079 / 2651 / 2349
Регистрация: 10.12.2014
Сообщений: 10,028
27.01.2015, 06:48 2
Лучший ответ Сообщение было отмечено Buged как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
const
  C = 'abcdefghijklmnopqrstuvwxyz';
 
var
  S : String;
  i, k : Byte;
begin
  S := 'secret'; WriteLn(S);
 
  k := (Pos(S[1], C) + 4) mod 26;
  S[1] := C[k + 1];
  for i := 2 to Length(S) do
    begin
      k := (Pos(S[i], C) + k - 1) mod 26;
      S[i] := C[k + 1];
    end;
    
  WriteLn(S);
end.
1
0 / 0 / 1
Регистрация: 07.12.2014
Сообщений: 7
28.01.2015, 02:01  [ТС] 3
Цитата Сообщение от JuriiMW Посмотреть сообщение
Код Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
const
C = 'abcdefghijklmnopqrstuvwxyz';
var
S : String;
i, k : Byte;
begin
S := 'secret'; WriteLn(S);
k := (Pos(S[1], C) + 4) mod 26;
S[1] := C[k + 1];
for i := 2 to Length(S) do
begin
k := (Pos(S[i], C) + k - 1) mod 26;
S[i] := C[k + 1];
end;
WriteLn(S);
end.
А в обратную сторону?
У меня не получается никак сделать расшифровку
Криворукий,знаю

Добавлено через 8 часов 50 минут
Ребят может кому надо будет
Вод код который расшифровывает:
Pascal
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
var
  f : array[1..100] of integer;
  f2 : array[1..100] of integer;
  S : String;
  i, k : Byte;
  input:Text;
  output:Text;
begin
assign(input,'input.dat');
  assign(output,'output.dat');
  reset(input);
  rewrite(output);
  read(input,S);
   for i:=1 to length(S) do 
    begin
   k:=(Pos(S[i], C)-1);
   f[i]:=k;
   end;
   writeln(f);
   if f[1] > 4 then
    begin
     f2[1]:=f[1]-5;
     S[1]:=C[f2[1]+1];
     
   end;
     if f[1] <= 4 then
    begin
     f2[1]:=f[1]-21;
     S[1]:=C[f2[1]+1];
     
   end;
   for i:=2 to length(S) do
   begin
   f[i]:=f[i]+26;
   end;
   writeln(f);
    for i:=2 to length(S) do
   begin
   if f[i]<f[i-1] then
    f[i]:=f[i]+26;
    f2[i]:=f[i]-f[i-1];
   if f[i] > f[i-1] then
   f2[i]:=f[i]-f[i-1] ;
   end;
   writeln(f2);
   for i:=2 to length(S) do
   begin
 
    S[i] := C[f2[i]+1];
    end;
     writeln(output,S,' расшифровано');
   close(output);
   end.
0
28.01.2015, 02:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.01.2015, 02:01
Помогаю со студенческими работами здесь

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

Заменить каждую букву текста непосредственно следующей за ней по алфавиту
Чтобы зашифровать текст, записанный с помощью русских букв и знаков препинания, его можно...

Заменить каждую первую букву слов, начинающихся с гласной буквы, на прописную
Написать программу, которая считывает английский текст из файла и выводит его на экран, заменив...

В заданном тексте заменить каждую гласную букву символом ‘*’, а согласную – символом ‘+’,
В заданном тексте заменить каждую гласную букву символом ‘*’, а согласную – символом ‘+’, ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru