![](/user_photo/1546_yXJjJ.png)
- •Методы проектирования программ
- •Методы программирования
- •1.1 Технология нисходящего программирования
- •Уровень II
- •Управляющая
- •Восходящее программирование
- •1.3 Повышение качества проектирования программ
- •2 Организация выполнения курсовой работы
- •2.1 Этапы выполнения курсовой работы
- •2.2 Требования к пояснительной записке
- •3 Задания на курсовое проектирование
- •3.1 Числовые задачи
- •3.2 Создание и введение баз данных. Справочники
- •3.3 Контролирующие и обучающие программы
- •3.4 Звукогенерация. Графика и движение
- •3.5 Помехоустойчивое кодирование
- •3.6 Игровые задачи
- •Психологическое тестирование
- •3.8 Моделирование арифметических операций
- •Задачи по программированию / с.А. Абрамов и др. - м.: Наука, 1988. – 224 с.
- •Савельев а. Я. Прикладная теория цифровых автоматов. – м.: Высш.Шк., 1987. – 272 с.
- •10. Фаронов в. В. Турбо Паскаль 7.0. Начальный курс. – м.: Нолидж, 2001. –
- •11. Шафеева о. П. Обнаружение и исправление ошибок в вычислительных системах многовекторными кодами. Учеб. Пособие. – Омск: ОмПи, 1991. –76 с.
- •Курсовой проект (работа)
- •3. Разработка алгоритмов. 4. Особенности разработки программы.
- •Разработка алгоритмов кодирования – декодирования
- •1 Анализ задания и формулировка задач на проектирование
- •2 Разработка алгоритмов для контроля передачи данных
- •2.1 Кодирование двоичных данных кодом с проверкой на четность
- •2.2 Декодирование данных
- •2.3 Универсальный алгоритм кодирования-декодирования
- •3 Особенности разработки программы
- •4 Инструкция пользователя
- •5 Результаты тестирования
2 Разработка алгоритмов для контроля передачи данных
2.1 Кодирование двоичных данных кодом с проверкой на четность
Для кодирования N-разрядного двоичного слова необходимо вычислить (N+1)-й разряд по правилу четности.
Пусть исходное слово - это массив А из N-разрядов, тогда массив-код будет содержать (N+1)-разряд. Для определения четности можно использовать операцию сложения по модулю два, либо подсчитать сумму единиц в массиве A, а затем определить, четна она или нет. Если сумма четна, то A[N+1]=0, в противном случае A[N+1]=1.
В данной работе для реализации выбран последний способ. Тогда схема алгоритма (СА) вычисления контрольного разряда имеет вид рис. 2.2.
Дополнительно на СА (см. рис. 2.1) введены обозначения: i - номер разряда, S - сумма единиц слова.
После ввода самого N-разрядного слова A (бл. 2) вычисляется значение (N+1)-го контрольного бита (бл. 3-5), затем печатается или выводится в канал ПД весь (N+1)-разрядный код (бл. 6).
Рисунок В. 2.2 СА кодирования двоичного слова
2.2 Декодирование данных
При декодировании слова, поступившего из канала ПД, проверяется, сохранена ли в процессе передачи четность, установленная кодером или нет. Для этого должны быть использованы те же правила, что и при кодировании. СА декодирования разработана на основе указанных замечаний и приведена на рис. 2.3.
Здесь С массив-код из М=N+1 элементов, S сумма единиц кода. После ввода разрядности слов в коде (М) и самого слова (бл.1) вычисляется сумма единиц в коде (бл. 2, 3). Затем производится проверка: если сумма равна нулю, то ошибок не произошло (бл. 5) в принятом из канала передачи данных коде, далее выдается ин-формационная часть кода (без контрольного бита) (бл. 6) для дальнейшей обработки. В случае обнаружения ошибки выдается соответствующее сообщение.
Рисунок В. 2.3 СА декодирования кода
2.3 Универсальный алгоритм кодирования-декодирования
Анализ СА (см. рис. 2.2. и рис. 2.3.) показывают, что в обоих случаях вычисляется сумма, т.е. есть общая часть. Поэтому возможно объединение алгоритмов кодирования и декодирования в единый алгоритм. При этом вычисление суммы следует выделить в подпрограмму, тогда универсальный алгоритм примет вид рис. 2.3, на котором использованы следующие обозначения:
М разрядность кода или слова;
R режим (R=1 кодирование, R=2 декодирование),
C[1..M] код для декодирования,
C[1..M] слово из М информационных разрядов для кодирования
РисунокВ. 2.4Схема универсального алгоритма
3 Особенности разработки программы
Для программной реализации алгоритма рис. 2.4. выбран универсальный язык программирования Turbo Pascal [6]. Программа разработана в строгом соответствии со СА и представлена файлом на дискете. Она занимает 16 байт в памяти и состоит из 40 строк.