Форум программистов, компьютерный форум, киберфорум
Другие языки программирования
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 24.02.2018
Сообщений: 26
1

Шифрование Цезаря на Кумир

16.06.2020, 14:56. Просмотров 2427. Ответов 1

Добрый вечер. Нужна помощь! Не могу составить программу шифрования Цезаря на Кумире. Может кто помочь?
Есть код на C, нужно по его подобию составить в под Кумир.
C
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include <stdio.h>
#define is_upper(c)  ((c) >= 'A' && (c) <= 'Z')
#define is_lower(c)  ((c) >= 'a' && (c) <= 'z')
char* cesar_code(int k, char* s);
char* cesar_decode(int k, char* s);
 
 
int main(void){
  int i;
  int    k;
  printf("Введите текст для зашифровки/дешифровки [на английском]:\n");
       char s[20];
  gets(s); 
    printf("Введите ключ:\n");
   scanf ("%d", &k);
 
  
   
   
    printf("source str: %s\n", s);
    printf("coder  str: %s\n", cesar_code(k, s) );
    printf("decode str: %s\n", cesar_decode(k, s) );
    return 0;
}
 
//шифратор
char* cesar_code(int k, char* s){
    int   i;
    char* t = s;
 
    k %= 26;
    if(k < 0)
        k = -k;
 
    for(; *s; ++s){
        if(is_lower(*s)){
            i  = (*s - 'a' + k) % 26;
            *s = 'a' + i;
        } else if(is_upper(*s)){
            i  = (*s - 'A' + k) % 26;
            *s = 'A' + i;
        }
    }
    return t;
}
 
//дешифратор
char* cesar_decode(int k, char* s){
    int   i;
    char* t = s;
 
    k %= 26;
    if(k < 0)
        k = -k;
 
    for(; *s; ++s){
        if(is_lower(*s)){
            i = *s - 'a' - k*2;
            if(i < 0)
                i += 26;
            *s = 'a' + i;
        } else if(is_upper(*s)){
            i = *s - 'A' - k*2;
            if(i < 0)
                i += 26;
            *s = 'A' + i;
        }
    }
    return t;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.06.2020, 14:56
Ответы с готовыми решениями:

Шифрование Цезаря
Подскажите ребят, есть текст уже в текстовике, его нужно зашифровать. #include &lt;iostream&gt; using...

Шифрование Цезаря
Доброго времени суток, нужна Ваша помощь. Написан код и требуется, не много изменений. Шифр Цезаря,...

Шифрование методом Цезаря
Кто может дать код, который бы шифровал строку(str) Методом Цезаря? Заранее спасибо.

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

1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
30759 / 20091 / 7849
Регистрация: 22.10.2011
Сообщений: 34,909
Записей в блоге: 6
16.06.2020, 23:24 2
Лучший ответ Сообщение было отмечено Gamelink как решение

Решение

Переводить с Си не буду, вот реализация шифрования методом Цезаря:
Код
использовать Строки

алг thread2668846
нач
  лит s, enc
  цел k

  вывод "Введите строку: "
  ввод s
  вывод "Введите ключ: "
  ввод k

  вывод "Исходная строка:", s, нс
  enc := ЗашифроватьЦезарем(k, s);
  вывод "Зашифрованная строка:", enc, нс
  вывод "Расшифрованная строка:", РасшифроватьЦезарем(k, enc), нс
кон

алг лит ЗашифроватьЦезарем(цел v, лит s)
нач
  цел i, code
  лит t
  t := ""
  нц для i от 1 до длин(s)
    code := код(s[i]) + v
    если code >= 256 то code := code - 256 все
    t := t + символ(code)
  кц
  знач := t
кон

алг лит РасшифроватьЦезарем(цел v, лит s)
нач
  цел i, code
  лит t
  t := ""
  нц для i от 1 до длин(s)
    code := код(s[i]) - v
    если code < 0 то code := code + 256 все
    t := t + символ(code)
  кц
  знач := t
кон
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.06.2020, 23:24

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Шифрование методом Цезаря
Здравствуйте. Неправильно работает шифр и неправильно работает с последней буквой &quot;я&quot;, не...

Шифрование алгоритмом Цезаря
Появился такой косяк: есть кнопка, шифрующая текст методом Цезаря, но работает она неправильно...

Шифрование БД методом Цезаря
Доброго времени суток!!! У меня есть огромная проблема, срок решения которой- 2 дня!!! Мне надо...

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

Шифрование методом Цезаря
Шифрование методом Цезаря со сдвигом на 6 нужна блок–схема

Шифрование методом Цезаря
На Java Eclipse нужна програмка которая бы шифровала вводимое слово методом Цезаря,то есть алфавит...


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

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

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