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

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

Войти
Регистрация
Восстановить пароль
 
kenny58
0 / 0 / 0
Регистрация: 21.02.2011
Сообщений: 19
#1

Преобразование кода - C++

27.04.2012, 10:43. Просмотров 595. Ответов 4
Метки нет (Все метки)

Добрый день. Не могли бы вы помочь мне разобраться с таким заданием, заранее Спасибо!

По некоторому каналу связи передается сообщение, имеющее вид последовательности нулей и единиц. Из-за помех возможен ошибочный прием некоторых сигналов: нуль может быть воспринят как единица и наоборот. Для повышения вероятности правильного приема сигналов было решено передавать каждый сигнал трижды. Теперь передатчик вместо 1 всегда передает 111, а вместо 0 всегда 000.

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

Ввод
Одна строка, в которой могут быть только символы "0" и "1". Длина строки - число, кратное трём, большее двух и меньшее 760.
Вывод
Вы должны вывести в одну строку раскодированное сообщение.

Ввод
110111010001
Вывод
1100
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.04.2012, 10:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Преобразование кода (C++):

Преобразование кода - C++
Друзья, помогите преобразовать код. Создавал в КодБлокс, а препод требует в Визуалке(((, а с визуалкой я не работал... #include <stdio.h>...

Преобразование кода в bat - C++
Извиняюсь заранее за глупый вопрос, гуглил, но ничего по этому вопросу не нашел. вот код программы, простенький дайсомет на 6-гранник: ...

Преобразование двоичного кода в текст - C++
есть код: struct home { char name; long number; int dom; int kvartira; };

Преобразование двоичного кода в ASCII - C++
Ребята, у меня вопрос. Вот я, например, имею строку "10011001" или подобную из восьми единиц и нулей. Вопрос: как преобразовать эту строку...

Преобразование кода для Visual C++ - C++
Дана задача:В текстовом файле хранится база отдела кадров предприятия. На предприятии 100 сотрудников. Каждая строка файла содержит...

Преобразование кода клавиши в int - C++
Доброй ночи Столкнулся вот с такой проблемой Программа ждет нажатия клавиш 1 или 2 (другие клавиши не нажать) Теперь мне надо...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ForEveR
В астрале
Эксперт С++
7972 / 4734 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
27.04.2012, 12:05 #2
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
#include <iostream>
#include <string>
#include <map>
#include <boost/token_iterator.hpp>
 
int main()
{
   std::string s = "110111010001";
   int offsets[] = {3};
   boost::offset_separator f(offsets, offsets + sizeof(offsets) / sizeof(*offsets));
   typedef boost::token_iterator_generator<boost::offset_separator>::type token_iter;
   for (token_iter iter = boost::make_token_iterator<std::string>(s.begin(), s.end(), f),
        end = boost::make_token_iterator<std::string>(s.end(), s.end(), f);
        iter != end;
        ++iter)
   {
      std::map<char, int> current;
      for (std::string::const_iterator str_iter = iter->begin(); str_iter != iter->end(); ++str_iter)
      {
         ++current[*str_iter];
      }
      std::map<char, int>::iterator f_iter = std::find_if(current.begin(), current.end(), 
      [](const std::map<char, int>::value_type& value)
      {
         return value.second == 2 || value.second == 3;
      });
      if (f_iter == current.end())
      {
         std::cerr << "Invalid sequence: " << *iter << std::endl;
         return 1;
      }
      std::cout << f_iter->first;
   }
   std::cout << std::endl;
}
http://liveworkspace.org/code/ebe090...bf1773f4f8158d
1
zuq
95 / 95 / 2
Регистрация: 10.04.2011
Сообщений: 256
27.04.2012, 12:24 #3
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 <algorithm>
 
std::string func(std::string src) {
 
    std::string ans;
 
    for(size_t i(0); i < src.length()/3; ++i)
        std::count(src.begin() + i*3, src.begin() + i*3 + 3, '1') > 1 ? ans += '1' : ans += '0';
 
    return ans;
}
 
int main() {
 
    std::cout << func("110111010001");
 
    return 0;
}
1
kenny58
0 / 0 / 0
Регистрация: 21.02.2011
Сообщений: 19
27.04.2012, 12:33  [ТС] #4
Спасибо. Чучуть по наглею, а можно ли на более понятном языке

Использую только библиотеку <iostream>
0
amfisat
67 / 67 / 1
Регистрация: 16.06.2009
Сообщений: 240
27.04.2012, 12:40 #5
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
#include <iostream>
#include <cstring>
using namespace std;
 
const int MAX = 760;
 
int main()
{
    int k = 0;
    char output[255];
    char mes[MAX];
    cout <<"Enter the message: ";
    cin >> mes;
    if ((strlen(mes)%3 != 0)) 
    {cout << "Error!"; exit(1);}
    else {
        for (unsigned int i=0; i<strlen(mes); i+=3)
        {
            if (mes[i] == mes[i+1] || mes[i] == mes[i+2]) 
                output[k++] = mes[i];
            else if (mes[i+1] == mes[i+2])
                output[k++] = mes[i+1];
        }
    }
    for (unsigned i=0; i<k; i++)
        cout << output[i];
    cout << endl;
    return 0;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.04.2012, 12:40
Привет! Вот еще темы с ответами:

Преобразование последовательного кода в параллельный - C++
Программа karp вычисляет PI, используя интегральную аппроксимацию. Вам предоставлена последовательная версия программы karp, и от вас...

Преобразование кода со статическим выделением памяти в динамическое - C++
имеется код #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; int main() { const int n=100; const int...

Преобразование кода в ряд структур, создание динамического массива - C++
Здравствуйте, у меня вопрос, как данный ниже код можно преобразовать в структурах, чтобы массив был динамическим #include &quot;stdafx.h&quot; ...

Преобразование кода без указателя в код с использованием указателя - C++
Правильно ли выполнил? Исходный код без указателя #include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;fstream&gt; using namespace...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
27.04.2012, 12:40
Ответ Создать тему
Опции темы

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