1 / 1 / 2
Регистрация: 12.04.2010
Сообщений: 121
1

Построение помехозащитного кода для сообщения из символов алфавита с использованием бита четности

26.08.2011, 12:48. Показов 1531. Ответов 6
Метки нет (Все метки)

Напишите программу построения помехозащитного кода для сообщения из символов заданного алфавита (алфавит англ.) с использованием бита четности. Программа должна разбивать сообщение на блоки по 7 бит и добавлять 8 бит четности.
Т.е. элементов в англ.алф. 27. Первые 27 цифр, начиная с нуля, перевести в двоичную систему счисления,но выводится должно семизначное число,т.е. с переди дописываем не достающие нули. Потом подсчитываем кол-во единиц в двоичном числе, и если их кол-во нечётно,то сзади дописываем единицу,а если чётно,то ноль. И нужно каждое число отнести к букве алфавита,а потом при вводе сообщения выводить двоичный код для каждой буквы из этого сообщения.
помогите пжл,буду очень благодарен.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.08.2011, 12:48
Ответы с готовыми решениями:

Определить контрольный бит при передаче произвольного двоичного сообщения с использованием битов четности
Привет народ. Совершенно не шарю в Pascal. Есть такая задача. Составить математическую модель,...

Проверка символов входящего сообщения на принадлежность алфавита
Проверка символов входящего сообщения на принадлежность алфавита.

Чтение бита четности
Здравствуйте. У меня есть вопрос: Как считать бит четности через с++? Написана программа которая...

Разветвляющийся алгоритм. Изменить цвет и фон сообщения в зависимости от четности числа
Составьте программу которая при вводе четного числа выводила бы какие - либо сообщения белым...

6
Почетный модератор
64253 / 47553 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
26.08.2011, 12:56 2
Цитата Сообщение от Стас45rus Посмотреть сообщение
Т.е. элементов в англ.алф. 27. Первые 27 цифр, начиная с нуля,
Всегда думал что в английском алфавите 26 букв.
И о каких 27 цифрах идет речь? В школе учили что в СС10 их всего 10 от 0 до 9.

Добавлено через 3 минуты
Кроме того буквы имеют 2 регистра и коды их разные, т.е. всего 52 символа.
0
1 / 1 / 2
Регистрация: 12.04.2010
Сообщений: 121
26.08.2011, 13:09  [ТС] 3
27 букв-это вместе с пробелом. Если не можете помочь,то лучше ничего не писать,чем цитировать мои сообщения.
0
Почетный модератор
64253 / 47553 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
26.08.2011, 13:17 4
Вот в этой теме
Программа выводит каждый элемент цикла в двоичной системе счисления
я тебе писал для 6-значных чисел. Неужели трудно переделать для 8-значных и не для от 1 до 10, а от 65 до 90(прописные английские) и 32(пробел)?
0
1 / 1 / 2
Регистрация: 12.04.2010
Сообщений: 121
26.08.2011, 13:20  [ТС] 5
Вот и именно, что незнаю. Я с языком Паскаль знаком 2 недели
0
Почетный модератор
64253 / 47553 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
26.08.2011, 14:30 6
Я почему-то в той теме и ответил
Программа выводит каждый элемент цикла в двоичной системе счисления
0
4148 / 1802 / 213
Регистрация: 06.10.2010
Сообщений: 4,033
26.08.2011, 20:13 7
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Pascal
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
39
40
41
42
43
44
45
46
47
48
49
50
51
type
 _byte=array[0..high(word)-1] of byte;
 
const
 input:  array[0..7] of byte=(0,1,2,3,4,5,6,128);
 
var
 output: ^_byte;
 i:      word;
 
function encode (input: pointer; size: word): pointer;
var
  c:      byte;
  buf:    word;
  output: pointer;
begin
  size:=(size*8+6) div 7;
  getmem(output,size);
  encode:=output;
  c:=0;
  for size:=size downto 1 do
  begin
    buf:=word(input^);
    asm
    mov cl,c
    shr [buf],cl
    and [buf],1111111b
    jp  @1               {если количество единиц нечётно}
      or [buf],10000000b {устанавливаем старший бит}
    @1:
    end;
    c:=c+7;
    if c>7 then
    begin
      c:=c-8;
      inc(longint(input));
    end;
    byte(output^):=buf;
    inc(longint(output));
  end;
end;
 
begin
output:=encode(@input,8);
for i:=0 to 7 do
  write(input[i]:8);
writeln;
for i:=0 to 9 do
  write(output^[i]:8);
readln;
end.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.08.2011, 20:13
Помогаю со студенческими работами здесь

Выборка русских символов алфавита для обучения нейронной сети.
Ищу большую выборку! Срочно!

Сколько различных кодов Хаффмена существует для алфавита из k символов?
Сколько различных кодов Хаффмена существует для алфавита из k символов?

как взять значение определенного бита из байта? и как организовать такое в цикля для каждого бита?
FASM моя первая задача - вычислить n-e число фибоначчи бинарное возведение в степень допустим...

Проверка четности адреса кода
Помогите пожалуйста, понять не могу.. Задание: Элемент исходного массива суммируется с константой,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru