Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курс._ по _инф..doc
Скачиваний:
0
Добавлен:
17.07.2019
Размер:
270.34 Кб
Скачать

24

Государственное образовательное учреждение

высшего профессионального образования

ТУЛЬСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

кафедра робототехники и автоматизации производства

Курсовая работа

по дисциплине: Информатика

Выполнил студент гр. 220591 Олешкевич И. И.

Проверил д.т.н., профессор Котов В.В.

Тула, 2010

Содержание пояснительной записки:

№ стр:

  1. Введение. 3

  2. Анализ технического задания. 4

  3. Разработка схемы алгоритма решения задачи. 5

  4. Разработка программного обеспечения. 6

  5. Апробация разработанного программного обеспечения. 15

  6. Заключение. 18

  7. Библиографический список. 19

  8. Приложение. 20

  1. Введение.

Основная работа программы.

Задача состоит из двух пунктов:

  1. Подпрограмма выводит на экран на некоторый промежуток времени матрицу (размером, выбранным пользователем), полностью состоящую из единиц (стен). В ней пользователь должен отметить коридор, состоящий из нулей.

  2. Программа постепенно начинает заменять в матрице 0 на 8, имитируя тем самым её прохождение.

В результате в конце программы на месте старой матрицы должна стоять новая, состоящая из единиц (стен) и нулей (коридора):

до после

111111 111111

001000 881888

101011 181811

100011 188811

111111 111111

  1. Анализ технического задания.

Проанализировав задание, я установил, что для реализации алгоритма задачи будет достаточно изученных приёмов программирования. Среда, в которой может быть реализована данная задача, может быть простой.

В данном случае используется интегрированная среда (Integrated Development Enviroment) Turbo Pascal версии 7.1 от компании Borland International. Это совокупность текстового редактора, компилятора редактора связей и отладчика. Все эти средства позволяют быстро создавать довольно сложные прикладные программы. Pascal является языком высокого уровня. Чаще всего именно этот язык используется для изучения школьников и студентов младших курсов ввиду своей понятности и доступности.

Очевидно, что реализация будет требовать выполнения множественных условий:

- рутинные действия программы автоматизируются;

- реализована связь пользователя с программой путём ввода и вывода данных;

- программа достаточно понятна, к тому же выводятся различные вспомогательные сообщения для справки.

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

  1. Разработка схемы алгоритма решения задачи.

Я установил следующую последовательность действий, которая бы обеспечивала решение задачи:

  1. Задание пользователем базовой матрицы.

  2. Задание пользователем коридора из нулей.

  3. Прогон коридора программой с последовательной заменой элементов коридора – нулей – на восьмёрки.

Проанализировав эту последовательность, я определил, что программа имеет линейную структуру, но помимо этого некоторые действия программы сведены в цикл. Данные, с которыми взаимодействует пользователь во время работы программы, организованы в массив с двумя координатами, т.е. матрицу.

Пытаясь записать полный алгоритм, я установил, что самым сложным пунктом в отношении реализации окажется п.2. Поэтому я его разделил на подпункты:

2.1. Реализация связи, которая обеспечивала бы изменение записанных данных пользователем путём ввода, и вывод на экран результата, описывающего действия, осуществляемые программой.

2.2. Определение элемента-входа в матрицу.

2.3. Создание лабиринта из нулей путём связи между пользователем и программой.

2.4. Определение выхода из матрицы.

Для повышения структурированности программы я использую функции. Связь, о которой говорилось в пункте 2.1, реализована с помощью специальных клавиш – стрелок, а также клавиши Enter (нажатие стрелок осуществляет перемещение по матрице, а Enter определяет следующий элемент лабиринта). Для этого я создал функцию code, определяющую код нажатой клавиши. Вторая функция nei определяет, есть ли у активного элемента соседи-нули, и если это так, программа позволяет продолжить ход лабиринта. Определение входа в матрицу и выхода из неё в моей программе осуществляется с помощью проверки на положение активного элемента на границе матрицы, которую я записал как третью функцию border. Также для реализации п. 2.3. я использовал многоуровневый набор условий.