Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
sergei60
47 / 28 / 4
Регистрация: 10.06.2012
Сообщений: 349
#1

Алгоритм кодирования имен цифрами - C++

11.12.2015, 08:29. Просмотров 167. Ответов 3
Метки нет (Все метки)

Решил написать код для задачки из 3 класса на решение алгоритма. Но запутался в конце кода с 0 . Как сделать ,чтобы не было пробела в слове -al ksandr-. Это зашифрованное в цифрах имя писателя. Что я сделал не так?
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
#include <iostream>  // для оператора cout
#include <cmath>     //для математич. вычислений
using namespace std;
int cript(int);
int a[10]={0,5,7,9,10,12,14,16,20,38};
const char xbuk[10]={'e','l','i','n','a','r','d','m','s','k'};
int s[19]={3,10,3,18,0,3,10,0,171,63,3,18,27,15,0,39,14,10,18};
int main(){
    int x[19];
    int j;
    cout<<"получим значения   x=";
    for (int i=0;i<10;i++){
    
         x[i]=(a[i]*6);
        if(x[i]<60) x[i]=x[i]/3;
        else
        x[i]=x[i]-57;
        cout<<x[i]<<",";
    }
    cout<<endl;
    cout<<"заданным числам:3,10,3,18, ,3,10,0,171,63,3,18,27,15, ,39,14,10,18 \n";
    cout<<"соответствует фраза    :";
    for(int i=0;i<19;i++){ //перебираем массив s
    int n=s[i];//получим элемент этого массива
    if (n){   //это не 0
    for (j=0;j<10;j++)//ищу n в массиве x
    
    if (x[j]==n) break;//нашел, он по счету j-й
    cout<<xbuk[j];//вывел j-й из xbuk
}
else cout<< " ";//иначе печатаю пробел
}
cout <<endl;
}
Вот вывод программы

получим значения x=0,10,14,18,3,15,27,39,63,171,
заданным числам:3,10,3,18, ,3,10,0,171,63,3,18,27,15, ,39,14,10,18
соответствует фраза :alan al ksandr miln

Добавлено через 10 часов 58 минут
Как сделать ,чтобы 0 не выдавал пробел между символами?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2015, 08:29     Алгоритм кодирования имен цифрами
Посмотрите здесь:

C++ Нужен исходник кодирования base64
C++ программа кодирования текста
C++ Надо ускорить алгоритм вычисления чисел с не повторяющимися цифрами
C++ Программа кодирования и декодирования
Ребятушки, у кого-ниудь есть алгоритм кодирования и декодирования по Хаффману? C++
C++ Поцедура циклического кодирования
C++ Реализация арифметического кодирования
C++ Использование имен предопределенных объектов в качестве имен переменных
C++ Найти ошибку в коде Алгоритм Плейфера (создания решетки кодирования)
Реализация кодирования в JPEG2000 C++
Оформление кода на С++ (стандарты кодирования) C++
C++ Реализовать алгоритм оптимального кодирования Хаффмана

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dimension
Dimension
555 / 436 / 135
Регистрация: 08.04.2014
Сообщений: 1,709
Завершенные тесты: 1
11.12.2015, 09:59     Алгоритм кодирования имен цифрами #2
Цитата Сообщение от sergei60 Посмотреть сообщение
if (n){ * //это не 0
Цитата Сообщение от sergei60 Посмотреть сообщение
else cout<< " ";//иначе печатаю пробел
Цитата Сообщение от sergei60 Посмотреть сообщение
cout<<"заданным числам:3,10,3,18, ,3,10,0,171,63,3,18,27,15, ,39,14,10,18 \n";
самому ведь никак не разобраться в своей же программе?
sergei60
47 / 28 / 4
Регистрация: 10.06.2012
Сообщений: 349
11.12.2015, 19:35  [ТС]     Алгоритм кодирования имен цифрами #3
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
#include <iostream>  // для оператора cout
#include <cmath>     //для математич. вычислений
using namespace std;
int cript(int);
int a[10]={0,5,7,9,10,12,14,16,20,38};
const char xbuk[10]={'E','L','I','N','A','R','D','M','S','K'};
int s[19]={3,10,3,18,99,3,10,0,171,63,3,18,27,15,99,39,14,10,18};
int main(){
    int x[19];
    int j;
    cout<<"получим значения   x=";
    for (int i=0;i<10;i++){
    
         x[i]=(a[i]*6);
        if(x[i]<60) x[i]=x[i]/3;
        else
        x[i]=x[i]-57;
        cout<<x[i]<<",";
    }
    cout<<endl;
    cout<<"заданным числам:3,10,3,18, ,3,10,0,171,63,3,18,27,15, ,39,14,10,18 \n";
    cout<<"соответствует фраза    : ";
    for(int i=0;i<19;i++){ //перебираем массив s
    int n=s[i];//получим элемент этого массива
    if (n!=99){   //если втречается число 99
    for (j=0;j<10;j++)//ищу n в массиве x
    
    if (x[j]==n) break;//нашел, он по счету j-й
    cout<<xbuk[j];//вывел j-й из xbuk
}
else cout<< " ";//иначе печатаю пробел
}
cout <<endl;
}
получим значения x=0,10,14,18,3,15,27,39,63,171,
заданным числам:3,10,3,18, ,3,10,0,171,63,3,18,27,15, ,39,14,10,18

соответствует фраза : ALAN ALEKSANDR MILN

с этим разобрался ,если бы еще можно было написать русскими буквами.....
Dimension
Dimension
555 / 436 / 135
Регистрация: 08.04.2014
Сообщений: 1,709
Завершенные тесты: 1
11.12.2015, 19:40     Алгоритм кодирования имен цифрами #4
если бы хватило ума воспользоваться поиском,то не ждали бы пока вам ответят
Yandex
Объявления
11.12.2015, 19:40     Алгоритм кодирования имен цифрами
Ответ Создать тему
Опции темы

Текущее время: 03:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru