- •Министерство образования и науки Российской Федерации
- •Методы проектирования программ
- •Методы программирования
- •Технология нисходящего программирования
- •Управляющая
- •Уровень 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. Результаты тестирования
- •Содержание
3.5. Помехоустойчивое кодирование
1. Коррекция ошибок блочным кодом с проверкой на четность строк и диагоналей (кодирование, декодирование) ([11], с. 4).
2. Кодирование двоичных данных непрерывным двухстепенным кодом ([11], с. 5) и исправление одиночных ошибок.
3. Исправление многократных ошибок непрерывным двухстепенным кодом с проверкой четностей слов и диагоналей ([11], с. 5).
4. Коррекция ошибок блочным двумерным кодом ([11], с. 8).
5. Коррекция ошибок модифицированным блочным двумерным кодом.
6. Применение помехоустойчивого непрерывного двухвекторного кода для повышения достоверности передачи данных ([11], с. 16).
7. Коррекция ошибок непрерывным трехвекторным кодом ([11], с.17).
8. Исправление ошибок непрерывным 3мин-вектор-кодом ([11], с. 20).
9. Коррекция ошибок блочным трехвекторным кодом ([11], с. 36).
10. Кодирование и исправление ошибки в двоичном слове данных СВ-кодом ([11], c. 50).
3.6. Игровые задачи
1. "Семь лунок". Вдоль доски расположено семь лунок, в которых лежат слева 3 черных, а справа 3 белых шара. Передвинуть черные шары на место белых, а белые на место черных. Шар можно передвинуть либо в соседнюю с ним пустую лунку, либо в пустую лунку, находящуюся непосредственно за ближайшим шаром.
2. "Прыгающие шарики". Эта игра похожа на предыдущую. Исходная позиция - 8 лунок, в которых расставлены 4 черных (слева) и 3 белых (справа) шара. Поменять местами черные и белые шары. В отличие от предыдущей игры черные шары можно передвигать только вправо, а белые только влево.
3. Вдоль доски расположены девять лунок и в каждой лунке лежит красный, белый или синий шар. Одним ходом разрешается менять местами два любых шара. Добиться того, чтобы все красные шары шли первыми, все синие - последними, белые - посередине. Если общее число лунок равно N, то для решения задачи достаточно сделать не более N-1 хода.
4. "Пятнадцать". На квадратном поле размером 4х4 с помощью датчика случайных чисел расставлены 15 фишек с номерами от 1 до 15. Имеется одна свободная позиция. Расставить фишки по возрастанию их номеров. Передвигать фишки можно только на свободную соседнюю позицию.
5. "Вращающийся квадрат". Дан квадрат размером 4х4 клетки, в которых с помощью датчика случайных чисел расставлены буквы от А до Р ([2] с. 205). Упорядочить буквы в квадрате по алфавиту. Квадрат имеет подквадраты, которые можно вращать по часовой стрелке на одну клетку. Подквадраты имеют размер 2х2 и указываются номером левой верхней клетки. Имеется операция, которая может быть выполнена только один раз: обмен местами двух букв.
6. "Кости". Играющий называет любое число в диапазоне от 2 до 12 и ставку, которую он делает в этот ход. Программа с помощью датчика случайных чисел дважды выбирает числа от 1 до 6 ("бросает кубик", на гранях которого цифры от 1 до 6). Если сумма выпавших цифр меньше 7 и играющий задумал число меньшее 7, он выигрывает сделанную ставку. Если сумма выпавших цифр больше 7 и играющий задумал число большее 7, он также выигрывает сделанную ставку. Если играющий угадал сумму цифр, он получает в четыре раза больше очков, чем сделанная ставка. Ставка проиграна, если не имеет место ни одна из описанных ситуаций. В начальный момент у играющего 100 очков.
7. "Ипподром". Играющий выбирает одну из трех лошадей, состязающихся в бегах, и выигрывает, если его лошадь приходит первой. Скорость передвижения лошадей на разных этапах выбирается программой с помощью датчика случайных чисел.
8. Игра в слова. Программа выбирает слово и рисует на экране столько прямоугольников, сколько букв в этом слове. Отгадать, какое слово загадано программой. В каждый ход играющий указывает одну букву. Если названа буква, входящая в состав слова, она подставляется в соответствующий прямоугольник, и добавляются очки по количеству одинаковых букв. В противном случае играющий теряет одно очко. В начальный момент у играющего 15 очков.
9. Компьютер «загадывает» с помощью датчика случайных чисел четырехзначное число с разными цифрами. Угадать это число. На каждом шаге играющий называет четырехзначное число, а программа сообщает, сколько цифр числа угадано и сколько цифр угадано и стоит на нужном месте. Количество угадываний ограничить.
10. "Жизнь". Игра моделирует жизнь поколений гипотетической колонии живых клеток, которые выживают, размножаются или погибают в соответствии со следующими правилами. Клетка выживает, только если она имеет двух или трех соседей из восьми возможных ([2], с. 207). Если у клетки только один сосед или вовсе ни одного, она погибает в изоляции. Если клетка имеет четырех или более соседей, она погибает от перенаселения. В любой пустой позиции, у которой ровно три соседа, в следующем поколении появляется новая клетка.
11. Требуется ввести курсор в область экрана (небольшой круг), расположение которого неизвестно играющему. Передвижение курсора сопровождается звуковым сигналом: если курсор приближается к области, то звуковой сигнал выше, если удаляется - ниже.
12. "Морской бой". На поле 10х10 позиций стоят невидимые вражеские корабли: 4 корабля по одной клетке, 3 корабля по две клетке, 2 корабля по три клетки и один корабля в четыре клетки. Необходимо поразить каждую из клеток кораблей. Позиции указываются русскими буквами от А до К (по строкам) и цифрами от 1 до 10 (по столбцам). Конфигурация и положение кораблей на поле выбираются с помощью датчика случайных чисел. Если клетка корабля угадана играющим верно, она отмечается крестиком; в противном случае точкой.
13. "Сбей самолет". По экрану летят вражеские самолеты. Цель - сбить их. Пусковая установка находится в нижней строке экрана. Пусковую установку можно перемещать по строке вперед и назад.
14. Составить программу, играющую в "крестики-нолики" на игровых полях разных размеров.