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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.65
Ольга Тимонова
0 / 0 / 0
Регистрация: 22.02.2012
Сообщений: 36
#1

Восстанавление исходного сообщения. - C++

01.03.2012, 22:45. Просмотров 2287. Ответов 22
Метки нет (Все метки)

Задача: по некоторому каналу связи передается сообщение, имеющее вид последовательности нулей и единиц. Из-за помех возможен ошибочный приём некоторых сигналов: нуль может быть воспринят как единица и наоборот. Для повышения вероятности правильного приёма сигналов было решено передавать каждый сигнал трижды. Теперь передатчик вместо 1 всегда передает 111, а вместо 0 всегда 000. Необходимо написать программу, которая будет восстанавливать исходное сообщение. При передаче могли произойти ошибки, поэтому вместо каждой тройки цифр, программа должна вывести ту цифру, которая встречается в этой тройке по крайней мере два раза.
Эту задачу нужно решить на СИ++ в программе Visual Studio.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.03.2012, 22:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Восстанавление исходного сообщения. (C++):

В алгоритме Rijendal создать блок исходного сообщения, состоящий из первых байт строки Вашего ФИО - C++
Доброй ночи!Помогите мне с заданием пожалуйста. В алгоритме Rijendal создать блок исходного сообщения (необходимого для Вашего...

Пронумеровать очерёдность каждого сообщения так, чтобы нумерация очерёдности печаталась напротив сообщения - C++
Покажите мне пожалуйста как можно пронумеровать очерёдность каждого сообщения так чтоб нумерация очерёдности печаталась напротив сообщения....

Сформировать из исходного массива новый, разместив в нем элементы исходного массива, отсортированные по три - C++
Здравствуйте! Нужна ваша помощь. Пользователем вводятся вещественные числа (не больше 100) сформировать из исходного массива новый,...

Скопировать элементы исходного массива в два других массива, размером вдвое меньше исходного - C++
/*Написать программу, копирующую последовательно элементы одного массива размером 10 элементов в 2 массива размером 5 элементов...

Побитовое исключение или всех пар байт исходного сообщения - C#
Здравствуйте, нужно сделать побитовое исключение ИЛИ всех пар байт исходного сообщения. Правильно ли я понимаю, что мне нужно каждый байт...

Восстанавление Проводника Windows (explorer.exe) - Windows XP
при включении windows выдает ошибка и не грузится проводник и естественно нету рабочего стола и всего нужного для удобной работы...

22
valeriikozlov
Эксперт С++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
02.03.2012, 05:54 #2
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>
using namespace std;
int f(char *s)
{
    int i, col=0;
    for(i=0; i<3; i++)
        if(s[i]=='1')
            col++;
    return col>1 ? 1:0;
} 
 
int main()
{
    char s[100];
    cin>>s;
    for(int i=0; i<(int)strlen(s); i+=3)
        cout<<f(s+i);
    return 0;
}
работает так: вводите строку из нулей и единиц (без пробелов) и нажимаете enter. Длина строки должна быть кратна 3.
0
Ольга Тимонова
0 / 0 / 0
Регистрация: 22.02.2012
Сообщений: 36
02.03.2012, 14:44  [ТС] #3
valeriikozlov, Большое спасибо!!!
0
Ольга Тимонова
0 / 0 / 0
Регистрация: 22.02.2012
Сообщений: 36
21.03.2012, 17:50  [ТС] #4
valeriikozlov, прога не работает в Visual Studuo.....что делать?!

Добавлено через 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
#include <stdio.h>
#include <Windows.h>
#include <string.h>
#include <math.h>
void main () {
    SetConsoleOutputCP(1251);   
    int i=0,n,f,col;
    char s[100];
    {
    printf("Введите сообщение\n");
    gets(s);
 
    i=0;
    WHILE s[i]='\0';
    i++;
    n=strlen(s);
    do 
    }
    for(i=0; i<n; i++)
                if(s[i]=='1')
                        col++;
    if 
        printf ("1");
    else
          printf ("0");
    getchar();getchar();
}
0
Hemull
47 / 47 / 1
Регистрация: 12.03.2012
Сообщений: 108
21.03.2012, 17:58 #5
Ольга Тимонова, что именно не работает?
вы "переделали" под использование сишного ио. зачем?
0
Ольга Тимонова
0 / 0 / 0
Регистрация: 22.02.2012
Сообщений: 36
21.03.2012, 18:00  [ТС] #6
Hemull, в переделанной много ошибок.....это я сама знаю.....вот я прошу, чтобы помог знающий человек: что нужно дополнить, чтобы прога заработала...
0
Hemull
47 / 47 / 1
Регистрация: 12.03.2012
Сообщений: 108
21.03.2012, 18:12 #7
но та, что предоставил valeriikozlov, вполне рабочая!вводите строку из 0 и 1. программа в цикле перебирает тройки и возвращает новую строку, построенную в зависимости от того, 0 или 1 чаще встречалось в этой тройке

Добавлено через 1 минуту
блин,как тут аттач прикрутить?
0
Ольга Тимонова
0 / 0 / 0
Регистрация: 22.02.2012
Сообщений: 36
21.03.2012, 18:12  [ТС] #8
Hemull, она не работает в Visual Studuo.....(((
0
Hemull
47 / 47 / 1
Регистрация: 12.03.2012
Сообщений: 108
21.03.2012, 18:19 #9
Ольга Тимонова, вот я ж и спросил, что именно у вас не работает?какая студия?может какие-то ошибки при компиляции?
0
Ольга Тимонова
0 / 0 / 0
Регистрация: 22.02.2012
Сообщений: 36
21.03.2012, 18:25  [ТС] #10
Hemull, переделанную исправить нужно...компилятор ошибки выдает....да я и сама знаю, что она не доделанная....... можешь помочь? может первую переделать как-нибудь, чтобы она в Visual Studuo заработала.....просто мне именно в этом компиляторе нужно.....(((
0
Hemull
47 / 47 / 1
Регистрация: 12.03.2012
Сообщений: 108
21.03.2012, 18:33 #11
Цитата Сообщение от Ольга Тимонова Посмотреть сообщение
может первую переделать как-нибудь, чтобы она в Visual Studuo заработала
хорошо.давайте сначала. чтоб переделать. нужно знать что именно и что у вас не так.вы можете скрин выложить?
0
Ольга Тимонова
0 / 0 / 0
Регистрация: 22.02.2012
Сообщений: 36
21.03.2012, 18:44  [ТС] #12
Hemull, не могу...у меня дома этой проги нет...(((
здесь нужно дополнить...а я не знаю как.....
0
Troll Face
2 / 2 / 0
Регистрация: 16.03.2012
Сообщений: 32
21.03.2012, 18:58 #13
Цитата Сообщение от Ольга Тимонова Посмотреть сообщение
Hemull, переделанную исправить нужно...компилятор ошибки выдает....да я и сама знаю, что она не доделанная....... можешь помочь? может первую переделать как-нибудь, чтобы она в Visual Studuo заработала.....просто мне именно в этом компиляторе нужно.....(((
visual studio 2010? тогда нужно форматный вывод сделать.
0
Ольга Тимонова
0 / 0 / 0
Регистрация: 22.02.2012
Сообщений: 36
21.03.2012, 18:58  [ТС] #14
Troll Face, Visual Studio 2008
0
valeriikozlov
Эксперт С++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
21.03.2012, 20:29 #15
Ольга Тимонова, проверяйте:
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
#include <stdio.h>
#include <Windows.h>
#include <string.h>
#include <math.h>
int main () {
        SetConsoleOutputCP(1251);       
        int i,n,col, j;
        char s[100];
        printf("Введите сообщение\n");
        gets(s);
        n=(int)strlen(s);
        i=0;
        while(i<n)
        {
            col=0;
            for(j=i; j<i+3; j++)
                if(s[j]=='1')
                    col++;
            if(col>1) 
                printf ("1");
            else
                printf ("0");
            i+=3;
        }
        getchar();
        return 0;
}
кстати первая версия, которую выкладывал, тоже должна была работать в Вашем компиляторе.

Не по теме:

на Паскале раньше писали

1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.03.2012, 20:29
Привет! Вот еще темы с ответами:

Получить новое число y из исходного, поменяв местами две цифры исходного числа - Turbo Pascal
Дано вещественное число x. Получить новое число y из исходного, поменяв местами две цифры исходного числа, стоящие слева и справа от...

Из исходного текстового файла все повторяющиеся слова переписать в другой файл удалив их из исходного - C (СИ)
из исходного текстового файла все повторяющиеся слова переписать в другой файл удалив их из исходного. Дополнительных массивов не...

В файле mail.tpl не выводится заголовок сообщения {$subject} и текст сообщения {$message} - PHP
ребят помогите разобраться, изначально у меня все выводилось через функцию popupWindow вот сама функция JS function...

При быстрой победе в игре крестики_нолики не выводилось после сообщения победителя, другие сообщения - C#
Как сделать что при быстрой победе в игре крестики_нолики не выводилось после сообщения победителя, ходит Х или 0. Может использовать...


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

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

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