- •Министерство образования и науки Российской Федерации
- •Методы проектирования программ
- •Методы программирования
- •Технология нисходящего программирования
- •Управляющая
- •Уровень II
- •Заглушка 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 строк.