Содержание
Введение 4
1 Анализ поставленных задач 5
2 Обоснование метода решения поставленных задач 6
3 Обоснование выбора структур данных 7
4 Описание алгоритма решения задачи 8
5 Описание пользовательского интерфейса 10
6 Описание результатов 13
Заключение 14
Список литературы 15
Приложение А 16
Приложение Б 18
Введение
Практика является важным этапом подготовки квалифицированных специалистов. Она является видом учебно-вспомогательного процесса, в ходе которого закрепляются теоретические знания.
Целью практики является разработка приложения «Исследование треугольника» и игры «Сапер».
Для достижения целей необходимо решить следующие задачи:
1. Провести анализ поставленных задач;
2. Выбрать метод решения задачи;
3. Обосновать выбор структур данных;
4. Описать алгоритм решения задачи;
5. Написать код программы.
1 Анализ поставленных задач
В ходе данной практики необходимо решить задачи, связанные с исследованием свойств треугольников, а также реализация игры «Сапер».
В поставленной задаче «Исследование треугольников» по введенным точкам требуется определить, является ли введенная фигура треугольником, а затем исследовать его. Свойства треугольников зависят от характеристик их элементов- углов и сторон. Существует множество видов треугольников: прямоугольные, тупоугольные, остроугольные, равнобедренные и равносторонние. В данной задаче требуется определить, является ли треугольник равнобедренным, равносторонним или прямоугольным.
Во второй задаче требуется написать игру «Сапер» (в текстовом или графическом виде). «Сапёр» — компьютерная игра, которая, по сути, является головоломкой, в которой плоское или объёмное игровое поле разделено на смежные ячейки (квадраты, шестиугольники, кубы и т. п.), некоторые из которых «заминированы». Целью игры является открытие всех ячеек, не содержащих мины. Игрок открывает ячейки, стараясь не открыть ячейку с миной. Открыв ячейку с миной, он проигрывает. Если под открытой ячейкой мины нет, то в ней появляется число, показывающее, сколько ячеек, соседствующих с этой, «заминировано». Используя эти числа, игрок пытается рассчитать расположение мин, однако иногда даже в середине и в конце игры некоторые ячейки всё же приходится открывать наугад. Если под соседними ячейками тоже нет мин, то открывается некоторая «незаминированная» область до ячеек, в которых есть цифры. Открыв все «незаминированные» ячейки, игрок выигрывает.
Существует несколько сложностей игры «Сапер», в поставленной задаче требуется реализовать легкую сложность, которая включает в себя игровое поле размером 9*9 ячеек и 10 мин.
2 Обоснование метода решения поставленных задач
Задача на исследование треугольников.
Для разработки алгоритма решения поставленной задачи я решил использовать математические формулы и свойства. Из введенных точек можно легко составить прямые и векторы, и уже с их помощью изучать фигуру. Чтобы определить, является ли фигура треугольником, достаточно в уравнение прямой из двух точек подставить третью точку, и узнать, не является ли третья точка частью прямой. Проверить следует три прямые и три точки соответственно.
Дальнейшее изучение треугольника основывается на свойствах векторов. В частности, я использовал формулу длины векторов, чтобы сравнивать стороны треугольника и делать выводы, является ли он равнобедренным или равносторонним. Чтобы узнать, является ли треугольник прямоугольным, достаточно воспользоваться еще одним свойством векторов: если скалярное произведение векторов равно 0, то они перпендикулярны. Я попарно скалярно умножаю векторы и сравниваю результат с 0. Если было такое совпадение - треугольник является прямоугольным.
Игра «Сапер».
Для реализации данной игры, прежде всего, я разработал алгоритм составления игрового поля: случайным образом генерируется местоположение «мин», а затем поле заполняется числами, указывающими на количество «мин» вокруг. Далее, я разработал алгоритм ввода пользователем координат открываемой ячейки и алгоритм, который производил открытие игрового поля в соответствии с введенными координатами и проверку на окончание игры.