- •Методы проектирования программ
- •Методы программирования
- •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 Результаты тестирования
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. Составить программу, играющую в "крестики-нолики" на игровых полях разных размеров.