GeoSELECT.ru



Программирование / Реферат: Кодирование речевой информации (Программирование)

Космонавтика
Уфология
Авиация
Административное право
Арбитражный процесс
Архитектура
Астрология
Астрономия
Аудит
Банковское дело
Безопасность жизнедеятельности
Биология
Биржевое дело
Ботаника
Бухгалтерский учет
Валютные отношения
Ветеринария
Военная кафедра
География
Геодезия
Геология
Геополитика
Государство и право
Гражданское право и процесс
Делопроизводство
Деньги и кредит
Естествознание
Журналистика
Зоология
Инвестиции
Иностранные языки
Информатика
Искусство и культура
Исторические личности
История
Кибернетика
Коммуникации и связь
Компьютеры
Косметология
Криминалистика
Криминология
Криптология
Кулинария
Культурология
Литература
Литература : зарубежная
Литература : русская
Логика
Логистика
Маркетинг
Масс-медиа и реклама
Математика
Международное публичное право
Международное частное право
Международные отношения
Менеджмент
Металлургия
Мифология
Москвоведение
Музыка
Муниципальное право
Налоги
Начертательная геометрия
Оккультизм
Педагогика
Полиграфия
Политология
Право
Предпринимательство
Программирование
Психология
Радиоэлектроника
Религия
Риторика
Сельское хозяйство
Социология
Спорт
Статистика
Страхование
Строительство
Схемотехника
Таможенная система
Теория государства и права
Теория организации
Теплотехника
Технология
Товароведение
Транспорт
Трудовое право
Туризм
Уголовное право и процесс
Управление
Физика
Физкультура
Философия
Финансы
Фотография
Химия
Хозяйственное право
Цифровые устройства
Экологическое право
   

Реферат: Кодирование речевой информации (Программирование)



Государственный комитет Российской Федерации по связи и
информатике

МОСКОВСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ СВЯЗИ
И ИНФОРМАТИКИ

Кафедра ВТ и УС



Научно-исследовательская работа студента

по теме

Кодирование речевой информации



Выполнил:
Студент гр. А19301
Рыбалко С.О.

Проверил:
Профессор кафедры ВТиУС,
д.т.н. Ульянов В.Н.



Вступление


Необходимость кодирования речевой информации возникла не так давно, но
на сегодняшний момент, в связи с бурным развитием техники связи, особенно
мобильной связи, решение этой проблемы имеет большое значение при
разработке систем связи.
Огромное распространение в наше время получили бытовые радиотелефоны.
Они позволяют пользователю не быть привязанным к одному месту в течении
телефонного разговора, нет необходимости стремглав мчаться к телефону,
услышав звонок (если, конечно, вы вообще его звонок услышите). К тому же
во многих моделях существуют различные удобства для пользователя: связь
между трубкой и базовым аппаратом, громкая связь (хороша в случае, когда
“сели” аккумуляторы в трубке). По всем вышеперечисленным преимуществам эти
аппараты завоевали большую популярность и получили большое распространение.

Но поскольку аппаратов стало много, то возникла проблема определения
“свой-чужой”, а поскольку обмен данными между трубкой и базовым аппаратом
ведется на радиочастотах (27 МГц, 900 МГц),разговор по радиотелефону можно
легко подслушать, появилась необходимость кодирования (или шифрования)
речевой информации.
Сразу необходимо оговориться, что речевая информация принципиально
отличается от другого вида - текстов (рукописных и в электронном виде). При
шифровании текста мы имеем дело с ограниченным и определенно известным нам
набором символов. Поэтому при работе с текстом можно использовать такие
шифры, как шифры перестановки, шифры замены, шифры взбивания и т.д. Речь же
нельзя (во всяком случае на сегодняшнем уровне развития технологи
распознавания речи)представить таким набором каких-либо знаков или
символов. Поэтому применяются другие методы, которые, в свою очередь,
делятся на аналоговые и цифровые. В настоящее время больше распространены
цифровые методы, на них- то мы и остановимся.
Принцип цифрового кодирования заключается в следующем: аналоговый
сигнал от микрофона подается на АЦП, на выходе которого имеем n-разрядный
код (при подборе хорошей частоты дискретизации пользователь на другом конце
линии может и не догадаться, что голос его собеседника оцифровали, а потом
(на базовом аппарате) перевели обратно в аналоговую форму). Затем этот код
шифруется с помощью всевозможных алгоритмов, переносится в диапазон
радиочастот, модулируется и передается в эфир.
Злоумышленник в своем “шпионском” приемнике услышит просто шум (при
хорошем кодировании). Правда, из опыта подслушивания (случайного)
радиопереговоров людей, пользующихся скремблерами можно без труда
определить, что этот шум имеет совсем не естественное происхождение,
поскольку после нажатия тангетты шум исчезал, а затем снова появлялся. Но
определить, о чем говорили эти люди, было невозможно без серьезных знаний в
области криптологии и соответствующей аппаратуры. В телефонных переговорах
этой проблемы нет, поскольку канал дуплексный, и необходимость в тангетте
отпадает, а шифрование происходит непрерывно в течении всего разговора.
Систем шифрования, разумеется, великое множество, но для бытовых (а,
следовательно, максимально дешевых) радиотелефонов применимы лишь
некоторые, простые, но в то же время достаточно надежные.



Система кодирования речи


Предлагаемая система кодирования речи удовлетворяет двум основным
требованиям: она дешева в исполнении и обладает достаточной надежностью от
взлома (взломать можно любую, даже самую стойкую криптографическую
систему).


Обоснование выбора метода кодирования


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


Недостатки:
переход к более сложному носителю информации приводит, естественно, к
известному усложнению систем связи.
Теоретические и экспериментальные исследования показывают, что
исключение более половины полосы частот6 занимаемой шумоподобным сигналом,
не нарушают нормальной работы системы. Естественно, что при этом имеет
место снижение помехоустойчивости, пропорциональное ширине полосы
вырезаемого участка спектра. Следовательно, рассматриваемый метод передачи
позволяет решить задачу нормального приема сигналов при наличии весьма
мощных мешающих станций в полосе пропускания. Тем самым может быть решена
задача, с которой метод частотной селекции принципиально не может
справиться.


Описание метода кодирования


[pic]

Слабое место многих систем кодирования - это статистическая слабость
кода, то есть , анализируя статистику за некоторый период, можно составить
мнение о том, что это за система и тогда действовать более направлено. То
есть резко сокращается время поиска ключа. Данная система оперирует
шумоподобными сигналами, которые по своим свойствам, в том числе и
статистическим, практически идентична белому гауссовскому шуму.
Немного проясним ситуацию. По определению сложности закона генерации
ряда чисел, если сложность последовательности {gi} равна m, то любые m+1
последовательные ее значения зависимы. Если же эта зависимость представима
линейной, то получается реккурентное соотношение следующего вида:
c0gi+c1gi-1+...+cmgi-m=0
При этом c0 c0 обязаны быть ненулевыми. Каждый последующий член
последовательности определяется из m предыдущих. Простой их вид реализации
получается, когда все составные принимают лишь значения 0 и 1, что делает
их очень удобно представляемыми на ЭВМ.
Таблицы арифметических операций в GF(2) будут следующими:
|+|0 |1 |
|0|0 |1 |
|1|1 |0 |
|*|0 |1 |
|0|0 |0 |
|1|0 |1 |



Поля бит можно представить как вектора, каждая компонента которых
принимает значения из GF(2). Такие вектора удобно рассматривать как
многочлены:
(10010101)=x7+x4+x2+1.
Неразложимость многочлена: над полем комплексных чисел любой многочлен
разложим на линейные множители или, по-другому имеет столько корней, какова
его степень. Однако это не так для других полей - в полях действительных
или рациональных чисел многочлен x2+x+1 корней не имеет. Аналогично, в поле
GF(2) многочлен x2+x+1 тоже не имеет корней.
Теперь рассмотрим вопрос использования полиномов в практике
вычислений на ЭВМ. Рассмотрим электронную схему деления данных в поле из n
бит на полином:
F(x)=c0+c1x+...+cnxN

|N |N-1 |... |... |2 |1 |
| |Е |Е |Е |Е |Е |
| | | | | | |
| | | | | | |

Получаемая последовательность будет выражена формулой:
S(x)=a(x)/f(x), где a(x) - исходные данные, f(x) - соответствующие
коэффициенты многочлена.
Естественно, что желательно получить как можно более длинный период
последовательности от многочлена заданной степени, а максимально возможная
ее длина - 2N-1 в GF(2N). Последовательности максимальной длины формируются
по правилу: Если многочлен f(x) степени n делит многочлен xK-1 лишь при
K>2N-1, то период его любой ненулевой последовательности равен 2N-1.
Существуют таблицы коэффициентов м-последовательностей.

Свойства м-последовательностей:
В каждом периоде последовательности число 1 и 0 отличается не более, чем на
единицу.
Среди групп из последовательных 1 и 0 в каждом периоде половина имеет
длительность в один символ, четвертая часть имеет длительность в два
символа, восьмая часть имеет длительность в четыре символа и т.д.
Корреляционная функция последовательности имеет единственный значительный
пик амплитуды 1 и при всех сдвигах равна 1/m (m- длина последовательности).
Корреляция между векторами вычисляется по формуле:
[pic]

Где А - число позиций, в которых символы последовательностей x и y
совпадают, а В - число позиций, в которых символы последовательностей x и y
различны.

Генератор псевдослучайных чисел



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

Формирование кода


Для формирования кода используется 5-разрядный первичный ключ,
получаемый из генератора псевдослучайных чисел. Таким образом, на начальном
этапе формирования ключа мы имеем количество комбинаций 25-2=30 (-2
поскольку комбинация 00000 является недопустимой). Потом первичный ключ
подается на два генератора (два для увеличения количества кодов - см.
ниже), вырабатывающие по этому ключу 31-разрядные м-последовательности. Эти
последовательности перемножаются по модулю 2, циклически сдвигаясь, и
образуя два вложенных цикла, выдают 312 вариантов ключа. Итого, общее число
допустимых комбинаций составляет 30*312 .
Эти 312 вариантов хранятся в ОЗУ базового аппарата. Выбор одного ключа
осуществляется путем повторного обращения к генератору псевдослучайных
чисел. Итого, получаем неплохую для данных условий криптографической защиты
цифру 30*313=~900000 комбинаций, не говоря о том, что надо еще догадаться,
какой метод применяется для кодирования. При этом статистические свойства
данной последовательности практически не отличаются от м-
последовательности.



Схема формирования кода



Взяли Не взяли



Программа формирования кода


| |Команда |Asm |Примечание |
| |MOV |ECX, ADDR1 |Загрузка регистров 31- |
| |MOV |EBX, ADDR2 |разрядными значениями ПСП |
| |MOV |ADDR3, 1Fh |Организация счетчиков |
| |MOV |ADDR4, 1Fh | |
| |MOV |AL, ADDR3 |Загрузка значения счетчика № 1 |
|M1: |JZ |M3 |Если это “0” - выход |
| |PCL |ECX, 1 |Сдвиг значения ПСП1 |
| |DEC |AL |Декремент счетчика № 1 |
| |MOV |ADDR3, AL |Значение счетчика - в память |
|M2: |MOV |AL, ADDR4 |Загрузка значения счетчика № 2 |
| |JZ |M1 |Если “0”- переход на внешний цикл |
| |MOV |EDX, ECX |Умножение по модулю 2 одной ПСП на |
| |XOR |EDX, EBX |другую |
| |RCL |EBX |Декремент счетчика № 2 |
| |MOV |[AL], EDX |Заносим очередное значение в память |
| |JMP |M2 |Замыкание внутреннего цикла |
|М3 |END | | |

Также возможна аппаратная реализация схемы формирования кода, но
принципиального значения это не имеет, поскольку быстродействие здесь роли
не играет - код формируется при положенной трубке, а это время больше
минуты.
Программа составлена для процессора i80386 и оперирует расширенными
(32-разрядными) регистрами. Можно, конечно, реализовать ее на более дешевом
процессоре (из семейства SISC - это i8086, i8080, i80186 или i80286), но
программа усложнится, к тому же увеличится время выполнения программы, но
это не главное; самое главное, что кодирование речи также осуществляется
программно, и здесь время выполнения программы критично. Также можно
реализовать программу на RISC-процессоре. Этот способ более перспективный.



Генераторы м-последовательностей



Генератор ПСП1
Формирование ПСП происходит аппаратно, хотя можно осуществить это
программным способом, используя МП i80386 с его 32-раз-рядными регистрами.
Время выполнения и, следовательно, частота, на которой работают элементы,
некритичны, поскольку формирование ПСП и самого ключа происходит в то
время, когда трубка покоится на базовом аппарате.

|Регистр сдвига |
|1 |2 |3 |4 |5 |


=1



Генератор ПСП2

|Регистр сдвига |
|1 |2 |3 |4 |5 |



=1



Структурная схема приема сигнала



[pic]
На представленной схеме приемника отражены основные, принципиальные
моменты приема сигнала.
Итак, фазоманипулированный сигнал (см. диаграмму внизу) приходит с
высокочастотной части приемника (здесь не изображена) и попадает на
полосовой фильтр, пропускающий конкретный диапазон частот. Таким образом
устраняются помехи , имеющие частоту вне пропускаемого диапазона.
Затем сигнал идет на блоки умножения, на которые также подается с
опорного кварцевого термостатированного генератора . Сигналов два, они
сдвинуты по фазе относительно друг друга на 180 градусов. Это необходимо
для последующего сравнения. Итак, цепь разветвилась. После умножения
получается сигнал, изображенный на диаграмме. (моделирование в Matlab 4.2c)
[pic]
После сигнал подается на фильтр нижних частот, сглаживающих сигнал
(см. диаграмму 2 и 3 ниже). Если фаза сигнала опорного генератора совпадает
с пришедшим сигналом, мы имеем нечто похожее на
Затем сигнал подается на АЦП, причем частота дискретизации выбрана
таким образом, что на каждый элемент приходится два отсчета (см. диаграмму
4 ниже). Это необходимо для надежного декодирования сигнала.
Декодирование выполняется путем умножения (программного) оцифрованных
отсчетов на ключ.

Сигнал свертывается, и из 31-разрядного кода получается один бит полезной
информации, которая затем по уровню анализируется и делается вывод о
пришедшей информации: это 1 или 0.
Вторая ветвь схемы служит для фазовой автоподстройки во время
разговора. Сигнал умножается (программно) на ключ и инверсное значение
ключа, затем сглаживается в интеграторе. Далее формируется сигнал ошибки,
который, будучи поданным на опорный генератор, подстраивает его фазу по
максимальному абсолютному значению напряжения ошибки.

1.



2.


3.


4.

Вх. сигнал

После умножения и филь-трации



После оцифровки


[pic]



Схема передачи сигнала


Схема передатчика несравненно более проста по сравнению со схемой
приемника. Это объясняется определенностью, что передавать, тогда как
сигнал на входе приемника невозможно предугадать.



Оценка быстродействия



Если исходить из предположения, что частота, с которой оцифровывать
речь, равна 8 кГц, а АЦП двенадцатиразрядный, то получим следующие данные:

Частота прихода сигнала на кодер (декодер)

fкод/декод=fд*Nразр АЦП=8*103*12=96 кГц

Тформ ПСП=1/fкод/декод=10,4 мкс

При использовании микропроцессора i80386 с тактовой частотой 33 Мгц:

Ттакт МП=1/fМП=30,3 нс

Допустимое количество тактов для выполнения программы кодирования или
декодирования (необходимо учесть, что при приеме кроме декодирования
выполняется умножение на ключ и его инверсию для системы ФАПЧ):

Nтакт доп=Тформ ПСП /Tтакт МП=10,4*10-6/30,3*10-9=

=343 такта

Этого более чем достаточно для обработки информации, следовательно,
система имеет резерв для дальнейших расширений и улучшений.



Заключение


Представленная система кодирования речи для бытовых радиотелефонов не
претендует на какую-то особую оригинальность. Здесь использовались идеи,
которые появились еще в 50-е годы с работами К. Шеннона, развившего
идею А.В.Котельникова о том, что потенциальная помехоустойчивость системы
связи при действии гауссовых помех инвариантна по отношению к ширине полосы
частот. Долгое время (до 80-х годов) эти идеи не находили применения из-за
несовершенства технической базы, прежде всего регистров и микропроцессоров.
Сейчас многие новые разработки в области связи используют эти идеи из-за их
очевидных преимуществ: простоты реализации, низкой стоимости и хорошей
устойчивости таких кодов к помехам. Можно привести пример одной из первых
систем, использовавшей шумоподобные сигналы - это система “RAKE”. После нее
началось широкое применение шумоподобных сигналов в наземной и космической
связи.
Применение помехоустойчивого и в то же время защищенного (в
достаточной степени) от несанкционированного прослушивания кодирования, на
взгляд автора этих строк, очень хороший вариант для бытовых применений.



Список литературы


|1|Пугачев В.С. |Теория вероятности и |М. Наука |
| | |математическая статистика |1979г. |
|2|Возенкрафт Дж. |Теоретические основы техники |М. Мир |
| |Джекобс И. |связи |1969г. |
|3|под редакцией Калмыкова|Радиотехнические системы передачи|М. Радио и |
| |В.В. |информации |Связь 1990 |
| | | | |
| | | | |
|4|Варакин Л.Е. |Теория сложных сигналов |М. Советское |
| | | |радио 1970 |
| | | | |
|6|Петрович Н.Т. |Системы связи с шумоподобными |М. Советское |
| |Размахнин М.К. |сигналами |радио 1969 |
|7|Петрович Н.Т. |Широкополосные каналы связи с |М. ВЗЭИС 1965 |
| |Размахнин М.К. |шумоподобными сигналами | |
| | | | |
| | | | |
|8|Жельников В. |Криптография от папируса до |М., ABF, 1996 |
| | |компьютера | |
|9|составитель |Использование Turbo Assembler при|Киев, |
| |Чекатков А.А. |разработке программ |Диалек-тика, |
| | | |1995 |
| |Громаков Ю.А. |Стандарты и системы подвижной |М. 1996г. |
| | |радиосвязи | |



Оглавление



Вступление 1


Система кодирования речи 3

Обоснование выбора метода кодирования 3
Описание метода кодирования 4
Генератор псевдослучайных чисел 7

Формирование кода 7

Схема формирования кода 8
Программа формирования кода 9
Генераторы м-последовательностей 10

Структурная схема приема сигнала 11


Схема передачи сигнала 13


Оценка быстродействия 14


Заключение 15


Список литературы 16


Оглавление 17



Для заметок


-----------------------
Москва
1997 г.

Второй генератор М-последовательности

Первый генератор М-последовательности

Сдвиг ПСП1

Сдвиг ПСП2

Организация цикла до 31 по первому генератору

Организация цикла до 31 по второму генератору

Взять из датчика случайных чисел еще 5 разрядов

По этому адресу выбрать код из ОЗУ

Проверка регистра на “все нули”. Если это так, читать из регистра еще
раз, если нет - передача содержимого регистра в генераторы (их два)

Взять из датчика случайных чисел 5 разрядов (из регистра)

ПСП(i)=ПСП1Е ПСП2

Ожидание, когда трубку возьмут и после этого положат

sin

cos

К ВЧ цепям передатчика

ОЗУ

Микрофон

Модулятор

Кодер (программно)

ЦАП






Реферат на тему: Кодировщик-декодировшик

Министерство образования РФ
Уральский государственный технический университет -УПИ
Кафедра "Технология и средства связи"



ОТЧЁТ
по учебной практике



Преподаватель: Петров Р.А.
Студент: Черепанов К.А.
Группа: Р-207



Екатеринбург
2000
СОДЕРЖАНИЕ



1.Задание...............................................................
..........................................………...3
2.Описание
применения........….....................................................
.................……….3
2.1. Назначение
программы...............................................................
..........……….3
2.2. Условия
применения.........…....................................................
..............………3
2.3. Описание
задачи..................…...............................................
................……….3
3.Описание
программы..................…............................................
.................………..4
3.1. Общие
сведения................................................................
................….……….4
3.2. Функциональное
назначение..…...........................................................
………4
3.3. Описание логической
структуры...................................................…………..4
3.4. Используемые технические
средства.....................................................….......5
3.5. Вызов и
загрузка................................................................
....................………..5
3.6. Входные и выходные
данные............….................................................………5

4. Текст
программы......................................…........................
.......................………..6



1.Задание

Задано число к и последовательность чисел от 1 до к 1......к.
Необходимо зашифровать литерную последовательность, находящуюся в файле в
соответствии с введенной последовательностью. Выходные данные записать в
файл. Например, если к равно 4 и последовательность S3,S2,S4,S1 то символы
S1,S1,S3,S4 преобразуются в S3,S2,S4,S1. Если количество символов не кратно
к, то в конце последовательности необходимо добавить пробелы.


2. Описание применения

2.1. Назначение программы

Программа coDec предназначена для шифрации и дешифрации символьного
массива, находящегося в файле.

2.2. Условия применения

Программа предъявляет очень скромные требования к ресурсам
вычислительной установки. Тем не менее, в случае необходимости использовать
для компиляции и сборки программы С на машинах типа PC необходимо иметь
8Мбайт оперативной памяти. Программа в состоянии брать из любого каталога
файлы и также записывать файлы в произвольную директорию, указанную вами.
Однако не следует пренебрегать общими принципами шифрации и дешифрации
информационных данных , то есть воспринимать сей труд как панацею зашиты от
посторонних лиц. Любая закодированная порция данных может быть с легкостью
преобразована в исходный текст подбором ключа, путем перестановки литер для
нахождения логичного варианта.

3. Описание задачи

Задача, поставленная на практике, состояла в необходимости набора некоего
числа к и последовательности 1.....к, и перегруппировке символьного массива
из одного файла в символьный массив другого файла, в соответствии с раннее
введенной последовательностью.
Кодирование достигается следующим образом: из символьного массива файла
источника последовательно берутся символы и записываются в новый символьный
массив В[ ] (B[i+1]=c), далее из этого массива происходит также
последовательно запись в файл, за исключением того, что индексы
записываемых символов равны последовательности (B[pointer], где pointer
равен массиву последовательности).
Декодирование: принцип работы декодирования противоположен кодированию и
состоит в том, что новому массиву В[ ] с индексами последовательности
присваиваются считываемые символы (B[pointer]=c), а затем производится
запись этого массива, но уже с индексами от 1 до к (B[i+1]).


3. Описание программы

3.1.Общие сведения

Программа coDec предназначена для шифрации и дешифрации символьного
массива, находящегося в файле.

Для выполнения программы достаточно вычислительной установки типа PC
с процессором i386 и выше и 8 Мбайт оперативной памяти, оснащенной любой из
следующих операционных систем: MS DOS (начиная с версии 5.0), Windows 95,
Windows NT версий 4.0.

Программа coDec написана на языке Visual C++, реализованном, например,
в компиляторе MS Developer Studio v.4.2 для операционных систем Windows NT
и Windows 95.

3.2. Функциональное назначение

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

3.3. Описание логической структуры

Примечания вида "см. Текст", встречающиеся в этом разделе, означают
ссылки на документ «Текст программы».

Описание головной программы

В Разделе 1 (см. Текст) производится подлключение стандартных
библиотек компилятора для обеспечения функционирования отдельных операторов
и всей программы в целом.

В Разделе 2 (см. Текст) осуществляется описание переменных.

В Разделе 3 (см. Текст) производится выбор дальнейшего действия
программы: кодирования (0) или декодирования (1) литерной
последовательности, содержащейся в исходном файле, в выходной файл.

Конструкция while (1) обеспечивает постоянное выполнение цикла до тех
пор, пока не выполнится условие if, которое прерывает его действие
оператором break.

В Разделе 4 находится цикл ввода длины кодовой
последовательности, который автоматически проверяет условие правильности
введенного значения.
Сообщение "Error!!! K must be integer from 1 to 10" означает, что введенный
вами символ не удовлетворяет требованиям и необходимо повторить ввод
заново.

В Разделе 5 организован цикл последовательности с проверкой вычисления
контрольной суммы, путем подсчета введенной суммы и суммы из массива W[ ] с
последующим сравнением обоих результатов. Если суммы не совпадают, цикл
повторяется снова, в противном случае выполняется последующий оператор.
Сообщение " Error!!! Repeat input" говорит о том, что последовательность
неправильна и необходимо повторить ввод заново.

Раздел 6 образован для ввода и открытия для чтения исходного файла,
открытия и записи выходного файла. Литера «r» обозначает, что файл
открывается для чтения, соответственно «w»-для записи. При открытии
происходит автоматическая проверка существования в указанной директории
файла. Если программа не в состоянии найти или открыть его выводиться
сообщение об ошибке «Error!!! Can't open file» и снова запрашивается имя,
если же ошибок не найдено выполняется следующее действие-запрос имени файла
для результатов.

Раздел 7 предназначен для шифрации данных. Его организация устроена по
принципу, описанному в разделе 2.3. При этом, если в последней
последовательности не хватает n символов до к, программа автоматически
приписывает дополнительные пробелы. Конструкция if (feof(fp)&&i==0) return
0 - образована для исключения дополнительного цикла, который может
возникнуть, если количество символов в файле кратно к, в этом случае
выполняется лишний цикл, приводящий к добавлению дополнительных пробелов и,
следовательно, увеличению файлов. При достижении конца файла EOF шифрации
прекращается.

Раздел 8 Дешифрация и запись в файл-приемник-устроен практически по
тому же принципу как и в разделе 7.Различия между операциями кодирования и
декодирования приводятся в подразделе «Описание задачи». Дешифрация также
прекращается при достижении конца файла.

Раздел 9 закрывает раннее открытые файлы.

3.4. Используемые технические средства

Для выполнения программы достаточно компьютера типа IBM PC с
процессором i386 и выше и 8 Мбайт оперативной памяти, оснащенной любой из
следующих операционных систем: MS DOS (начиная с версии 5.0), Windows 95,
Windows NT версий 4.0.

3.5. Вызов и загрузка

Запуск программы происходит путем запуска файла coDec. exe

3.6 Входные и выходные данные

Файлы-источники при кодировке по возможности должны быть с расширением
txt, в то время как файл-приемник может иметь любое. Вызвано это
причинами, описанными ранее в пункте 3.2. При декодировке ограничений нет.


4. Текст программы

// Шифратор-дешифратор
Раздел №1
# include
# include
# include
# include
# include
# include


int main ()
{ Раздел
№2
FILE *fp,*fp2; / *указатели на поток*/
int i,k,Sum,Sum_contr,pointer,select;
int W[]={1,2,3,4,5,6,7,8,9,10}; /*массив проверки*/
int Y[10]; /*массив для кодовой перестановки*/
char B[11]; /*массив для перестановленных
символов*/
char c; /*переменная для хранения символа*/
char fname[20], fname2[20]; /*массивы для имен файлов*/

/* О с н о в н о е т е л о п р о г р а м м ы */
Раздел №3
/*Выбор кодирования-декодирования*/
while (1)
{
printf ("nChoose coder(0) or decoder (1) ");
scanf("%d",&select);
if ((select==0)||(select==1)) break;
while (getchar()!='n');
}
Раздел №4
/*Ввод длины кодовой последовательности*/
while (1)
{
printf ("nInput length of code k(1 to 10) ");
scanf ("%d", &k);/* ввод десятичного целого*/
if (k>=1&&k

Новинки рефератов ::

Реферат: Joulude puhad (estonii) (Иностранные языки)


Реферат: Жизненный путь Некрасова (Литература : русская)


Реферат: Мяленцiй Сматрыцкi - Бияграфiя (История)


Реферат: Кондорсе про основні епохи історичного процессу (Социология)


Реферат: Мусоргский - "Картинки с выставки", "Гном" (Музыка)


Реферат: Билеты по шести разделам психологии за весенний семестр 2001 года (Психология)


Реферат: Сообщение на тему: Суксцессия (Биология)


Реферат: Образовательная система Италии (Педагогика)


Реферат: Роль МПВО в 1941-1945 (Безопасность жизнедеятельности)


Реферат: "Слово о полку Игореве", языческие и христианские мотивы (Литература)


Реферат: Анализ стихотворения В. Маяковского "Послушайте!" (Литература : русская)


Реферат: История российского предпринимательства (Предпринимательство)


Реферат: Информационные компьютерные технологии (Компьютеры)


Реферат: Kроссворд (Иностранные языки)


Реферат: Стресс сельскохозяйственных животных (Сельское хозяйство)


Реферат: Буддийское вероучение и культ (Религия)


Реферат: Война 1812 года до перелома в сторону России (История)


Реферат: Правопреемство в международном праве (Международное публичное право)


Реферат: Доказательства и процесс доказывания в гражданском праве (Гражданское право и процесс)


Реферат: Молодіжні рухи в україні 19-20 сторіччя (Социология)



Copyright © GeoRUS, Геологические сайты альтруист