Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Консультации по информатике


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты данной рассылки

Гаряка Асмик
Статус: Профессор
Рейтинг: 5242
∙ повысить рейтинг »
lamed
Статус: Профессор
Рейтинг: 3367
∙ повысить рейтинг »
Абаянцев Юрий Леонидович aka Ayl
Статус: Профессионал
Рейтинг: 2023
∙ повысить рейтинг »

/ НАУКА И ОБРАЗОВАНИЕ / Точные и естественные науки / Информатика

Номер выпуска:199
Дата выхода:16.11.2010, 13:30
Администратор рассылки:Калашников О.А. (Руководитель)
Подписчиков / экспертов:139 / 131
Вопросов / ответов:1 / 1

Вопрос № 180621: Разработка алгоритма и программы одной из схем кодирования. Входные данные произвольное двоичное последовательности. Выходные данные адекватные графическое представлении исход сигнала и закодированной последовательности....



Вопрос № 180621:

Разработка алгоритма и программы одной из схем кодирования. Входные данные произвольное двоичное последовательности. Выходные данные адекватные графическое представлении исход сигнала и закодированной последовательности.

Отправлен: 08.11.2010, 13:12
Вопрос задал: Васильев Дмитрий Иванович (Посетитель)
Всего ответов: 1
Страница вопроса »


Отвечает lamed (Профессор) :
Здравствуйте, Васильев Дмитрий Иванович! Используется очень простой и, как следствие, не оптимальный алгоритм печати.
Code::Blocks/GCC.
Код:
#include <stdio.h>
// Разработка алгоритма и программы одной из схем кодирования.
// Входные данные произвольное двоичное последовательности.
// Выходные данные адекватные графическое представлении исход
// сигнала и закодированной последовательности.
#define SIZE 100

void encode(char s[], const char t[]);
void show(const char t[]);
int main(void)
{
int c, prev=EOF;
int i;
char s1[SIZE], s2[SIZE];

printf("Input string ");
scanf("%s", s1);
printf(&q uot;\n");
show(s1);

encode(s2, s1);

printf("\nOutput string %s\n", s2);
printf("\n");
show(s2);

return 0;
}

void encode(char s[], const char t[])
{
int i;
int prev=EOF;
for (i=0; t[i]!='\0'; i++)
{
s[i]='0'+(t[i]>=prev);
prev=t[i];
}
s[i]='\0';
}

void show(const char t[])
{
int i, j;
int c;
int prev=EOF;

// единицы
for (i=0; (c=t[i])!='\0'; i++)
{
if (i>0 && c!=prev)
putchar(' ');
if (c=='1')
printf("___");
else
printf(" ");
prev=c;
}
putchar('\n');

// вертикальные линии
for (j=0; j<3; j++)
{
prev=EOF;
for (i=0; (c=t[i])!='\0&# 39;; i++)
{
if (i>0 && c!=prev)
putchar('|');
printf(" ");
prev=c;
}
putchar('\n');
}

// нули
for (i=0; (c=t[i])!='\0'; i++)
{
if (i>0 && c!=prev)
putchar(' ');
if (c=='0')
printf("---");
else
printf(" ");
prev=c;
}
putchar('\n');
}

Пример работы.
Код:
Input string 0100101
___ ___ ___
| | | | |
| | | | |
| | | | |
--- ------ ---

Output string 1101101

______ ______ ___
| | | |
| | | |
| | | |
--- ---

Удачи!

Ответ отправил: lamed (Профессор)
Ответ отправлен: 14.11.2010, 16:13
Номер ответа: 264038

Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 264038 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:


  • Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2010, Портал RFPRO.RU, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2010.6.23 от 10.11.2010

    В избранное