Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
AAK22
0 / 0 / 0
Регистрация: 11.02.2013
Сообщений: 19
1

написать на с++ программу для Кода Цезаря, сдвиг на 3 буквы, чтобы в консоле конвертировал на 3 буквы вперед (алфавита)

11.02.2013, 22:37. Просмотров 1083. Ответов 17
Метки нет (Все метки)

написать на с++ программу для Кода Цезаря, сдвиг на 3 буквы, чтобы в консоле конвертировал на 3 буквы(алфавита)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2013, 22:37
Ответы с готовыми решениями:

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

Нужно написать программу, печатающую все буквы латинского алфавита от Z до A
Помогите пожалуйста! Нужно написать программу, печатающую все буквы латинского...

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

Файл содержит буквы латинского алфавита. Заменить буквы 'р' на 'w'
Помогите с задачей.Файл содержит буквы латинского алфавита. Заменить буквы 'р'...

В текстовом файле t записаны буквы латинского алфавита и цифры. Занести в текстовый файл h из текстового файла t только латинские буквы.
В текстовом файле t записаны буквы латинского алфавита и цифры. Занести в...

17
xtorne21st
интересующийся
304 / 275 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
11.02.2013, 22:48 2
Цитата Сообщение от AAK22 Посмотреть сообщение
написать на с++ программу для Кода Цезаря, сдвиг на 3 буквы, чтобы в консоле конвертировал на 3 буквы(алфавита)
Деталько опишите, что это такое "Код Цезаря" и что конкретно нужно сделать
1
AAK22
0 / 0 / 0
Регистрация: 11.02.2013
Сообщений: 19
11.02.2013, 22:53  [ТС] 3
Код Цезаря - зашифрованный текст, составить программу, чтобы потом в консоле зашифрованный текст выводил в нормальном виде
0
xtorne21st
интересующийся
304 / 275 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
11.02.2013, 23:23 4
Цитата Сообщение от AAK22 Посмотреть сообщение
Код Цезаря - зашифрованный текст, составить программу, чтобы потом в консоле зашифрованный текст выводил в нормальном виде
Покажите на примере, что должно вводиться с клавиатуры и выводиться на экране.
0
AAK22
0 / 0 / 0
Регистрация: 11.02.2013
Сообщений: 19
11.02.2013, 23:27  [ТС] 5
Цитата Сообщение от xtorne21st Посмотреть сообщение
Покажите на примере, что должно вводиться с клавиатуры и выводиться на экране.
допустим наш алфавит АБВГДЕ.. и тд. с клавы вводишь "В" потом после нажатия клавишы "Enter" конвертируется в букву "Е" сдвиг на 2 буквы
0
hofmn
Helter Skelter
62 / 62 / 19
Регистрация: 19.09.2012
Сообщений: 133
11.02.2013, 23:32 6
Работает только латиница:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string.h>
using namespace std;
 
int main()
{
        char buff[50] = {0};
 
        cout << "Шифровать: ";
        cin >> buff;
 
        for (unsigned int i = 0; i < strlen(buff); i++)
                buff[i] += 3;
                
        cout << "Результат: " << buff << endl;
        
        return 0;
}
1
AAK22
0 / 0 / 0
Регистрация: 11.02.2013
Сообщений: 19
11.02.2013, 23:38  [ТС] 7
Цитата Сообщение от hofmn Посмотреть сообщение
Работает только латиница:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string.h>
using namespace std;
 
int main()
{
        char buff[50] = {0};
 
        cout << "Шифровать: ";
        cin >> buff;
 
        for (unsigned int i = 0; i < strlen(buff); i++)
                buff[i] += 3;
                
        cout << "Результат: " << buff << endl;
        
        return 0;
}
вот так, только вот желательно чтобы целые тексты расшифровывать, а не 1 букву)
0
xtorne21st
интересующийся
304 / 275 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
11.02.2013, 23:44 8
Работает так-же с кириллицей
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string>
#include <locale> // optional
 
int main()
{
    std::locale::global(std::locale(""));
 
    std::wstring line;
 
    std::wcout << L"Введите строку: ";
    std::getline<wchar_t>(std::wcin, line);
 
    for (std::wstring::iterator i = line.begin(); i < line.end(); ++i)
        *i = *i + 3;
 
    std::wcout << line;
 
    return 0;
}
0
AAK22
0 / 0 / 0
Регистрация: 11.02.2013
Сообщений: 19
11.02.2013, 23:47  [ТС] 9
Цитата Сообщение от xtorne21st Посмотреть сообщение
Работает так-же с кириллицей
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string>
#include <locale> // optional
 
int main()
{
    std::locale::global(std::locale(""));
 
    std::wstring line;
 
    std::wcout << L"Введите строку: ";
    std::getline<wchar_t>(std::wcin, line);
 
    for (std::wstring::iterator i = line.begin(); i < line.end(); ++i)
        *i = *i + 3;
 
    std::wcout << line;
 
    return 0;
}
3 ошибки error C2783: 'class std::basic_istream<_E,_Tr> &__cdecl std::getline(class std::basic_istream<_E,_Tr> &,class std::basic_string<_E,_Tr,_A> &)' : could not deduce template argument for '_Tr'
0
xtorne21st
интересующийся
304 / 275 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
11.02.2013, 23:52 10
А вы чем компилируете?

Добавлено через 2 минуты
Попробуйте заменить 12 строку на:
C++
1
std::getline(std::wcin, line);
0
AAK22
0 / 0 / 0
Регистрация: 11.02.2013
Сообщений: 19
11.02.2013, 23:57  [ТС] 11
Цитата Сообщение от xtorne21st Посмотреть сообщение
А вы чем компилируете?

Добавлено через 2 минуты
Попробуйте заменить 12 строку на:
C++
1
std::getline(std::wcin, line);
заменил, ошибок 0, запускается, но консоль ничего не читает, пишу букву и сразу закрывает
0
hofmn
Helter Skelter
62 / 62 / 19
Регистрация: 19.09.2012
Сообщений: 133
12.02.2013, 00:07 12
Цитата Сообщение от AAK22 Посмотреть сообщение
вот так, только вот желательно чтобы целые тексты расшифровывать, а не 1 букву)
Не совсем понял, что вы имели в виду, но вот:

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
#include <iostream>
using namespace std;
 
int main()
{
        string buff, choise;
        
        cout << "[1] - шифровать, [2] - расшифровать" << endl
             << "Ваш выбор: ";
        cin >> choise;
        
        if (choise == "1")
        {
            cin.ignore();
            cout << "Шифровать: ";
            getline (cin, buff);
     
            for (unsigned int i = 0; i < buff.size(); i++)
                    buff[i] += 3;
                    
            cout << "Результат: " << buff << endl;
        }
        
        else if (choise == "2")
        {
            cin.ignore();
            cout << "Расшифровать: ";
            getline (cin, buff);
     
            for (unsigned int i = 0; i < buff.size(); i++)
                    buff[i] -= 3;
                    
            cout << "Результат: " << buff << endl;
        }
        else cout << endl << "Введите 1 или 2!";
        
        return 0;
}
0
AAK22
0 / 0 / 0
Регистрация: 11.02.2013
Сообщений: 19
12.02.2013, 00:10  [ТС] 13
Цитата Сообщение от hofmn Посмотреть сообщение
Не совсем понял, что вы имели в виду, но вот:

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
#include <iostream>
using namespace std;
 
int main()
{
        string buff, choise;
        
        cout << "[1] - шифровать, [2] - расшифровать" << endl
             << "Ваш выбор: ";
        cin >> choise;
        
        if (choise == "1")
        {
            cin.ignore();
            cout << "Шифровать: ";
            getline (cin, buff);
     
            for (unsigned int i = 0; i < buff.size(); i++)
                    buff[i] += 3;
                    
            cout << "Результат: " << buff << endl;
        }
        
        else if (choise == "2")
        {
            cin.ignore();
            cout << "Расшифровать: ";
            getline (cin, buff);
     
            for (unsigned int i = 0; i < buff.size(); i++)
                    buff[i] -= 3;
                    
            cout << "Результат: " << buff << endl;
        }
        else cout << endl << "Введите 1 или 2!";
        
        return 0;
}
как выше написали до этого, также, но там если писать текст через пробел, то он конвертирует только слово до пробела, а в этой программе 6 ошибок
0
hofmn
Helter Skelter
62 / 62 / 19
Регистрация: 19.09.2012
Сообщений: 133
12.02.2013, 00:16 14
Цитата Сообщение от AAK22 Посмотреть сообщение
как выше написали до этого, также, но там если писать текст через пробел, то он конвертирует только слово до пробела, а в этой программе 6 ошибок
Здесь работает и с пробелами.
У меня ошибок нет, странно.
0
AAK22
0 / 0 / 0
Регистрация: 11.02.2013
Сообщений: 19
12.02.2013, 00:17  [ТС] 15
Цитата Сообщение от hofmn Посмотреть сообщение
Здесь работает и с пробелами.
У меня ошибок нет, странно.
не знаю, 6 ошибок..ладно и на том спасибо!
0
xtorne21st
интересующийся
304 / 275 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
12.02.2013, 00:18 16
Цитата Сообщение от AAK22 Посмотреть сообщение
заменил, ошибок 0, запускается, но консоль ничего не читает, пишу букву и сразу закрывает
Если у вас Windows попробуйте в конце перед return 0; поставить std::cin.get();
0
AAK22
0 / 0 / 0
Регистрация: 11.02.2013
Сообщений: 19
12.02.2013, 00:23  [ТС] 17
Цитата Сообщение от xtorne21st Посмотреть сообщение
Если у вас Windows попробуйте в конце перед return 0; поставить std::cin.get();
тоже самое, консоль пуст
0
xtorne21st
интересующийся
304 / 275 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
12.02.2013, 00:30 18
Цитата Сообщение от AAK22 Посмотреть сообщение
тоже самое, консоль пуст
Ок тогда в таком случаи в std::locale::global(std::locale("")); попробуйте между двойными кавычками поствить Rus или Russian или russian, точно не помню как правильно.
0
12.02.2013, 00:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.02.2013, 00:30

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

Русские буквы в консоле
Привет. Совсем недавно начал изучать C++ и тут такое дело... //Заменить...

Объявить два диапазонных типа: один буквы русского алфавита, второй буквы английского алфавита
Объявить два диапазонных типа: один буквы русского алфавита, второй буквы...


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

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

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