Фрагмент для ознакомления
1
ВВЕДЕНИЕ 4
ГЛАВА 1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ 6
1.1 Вектор в трехмерном пространстве. Действия с вектором 6
1.2 Свойства объектно-ориентированного программирования 8
1,3 Функционал класса вектора 9
ГЛАВА 2. РЕАЛИЗАЦИЯ ПРОГРАММНОГО СРЕДСТВА 11
2.1 Реализация класса вектор в трехмерном пространстве 11
2.2 Реализация пользовательского интерфейса 12
2.3 Разработанные тесты для программы 18
ЗАКЛЮЧЕНИЕ 21
СПИСОК ЛИТЕРАТУРЫ 22
ПРИЛОЖЕНИЕ А 24
Фрагмент для ознакомления
2
Объектно-ориентированное программирование является основной технологией программирования при разработке сложных программных продуктов. Большинство современных языков программирования, включая с++ . Основной элемент объектно-ориентированного программирования является класс.
Язык программирования с++ является универсальным алгоритмическим языком, который позволяет решить задачи из различных предметных областей.
Язык СИ имеет ряд характеристик, которые его делают его популярным среди разработчиков программных продуктов:
простая языковая база;
наличие стандартных библиотек, которые позволяют содержат математические функций, функций работы с файлами и др.;
ориентация на процедурное программирование;
использование системы типов, которые позволяют выполнять контроль операций;
доступ к памяти через использование указателей;
небольшое число ключевых слов;
области видимости имён;
структуры и объединения — определяемые пользователем собирательные типы данных, которыми можно манипулировать как одним целым.
Цель выполняемой работы – разработка класса для работы с векторами в трехмерном пространстве.
Задачи, которые необходимо решить:
выполнить анализ предметной области;
разработать функционал класса;
разработать методы класса, которые включают конструкторы, методы перегрузки операций;
разработать программное средство для работы с векторами в трехмерном пространстве;
выполнить отладку и тестирование программы.
Для разработки, отладки и тестирования программы предлагается использовать среду разработки программ Dev C++. Для построения схемы алгоритма программу MS Visio 2010.
ГЛАВА 1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ
1.1 Вектор в трехмерном пространстве. Действия с вектором
В трехмерном пространстве вектор представляет собой направленный отрезок с начальной точкой А и конечной точкой В, который можно перемещать параллельно самому себе. Изображение вектора представлено на рисунке 1.
Рисунок 1 – Вектор в трехмерном пространстве
Вектор представляется тремя координатами.. Вектор может быть задан координатами начальной A(x1, y1, z1) и конечной точки B(x2, y2, z2). В этом случае координаты вектора AB представляются как разность координат начла и конца вектора:
(AB) ̅={x_2-x_1,y_2-y_1,z_2-z_1 }={X_1,Y_1,Z_1} (1)
Сложение является доступной операцией для вектора в трехмерном пространстве. Эта операция может использоваться для конечного числа слагаемых. Сложение двух векторов
с ̅=a ̅+b ̅ (2)
выполняется покоординатно по формуле:
с ̅={x_3,y_3,z_3 }={x_1,y_1 〖,z〗_1 }+{x_2,y_2 〖,z〗_2 }={x_1+x_2,y_1+y_2 〖,z〗_1+z_2} (3)
Вычитание двух векторов также как и сложение выполняется покоординатно. Пусть необходимо рассчитать :
с ̅=a ̅-b ̅ (4)
Тогда расчет выполняется по формуле:
с ̅={x_3,y_3,z_3 }={x_1,y_1 〖,z〗_1 }-{x_2,y_2 〖,z〗_2 }={x_1-x_2,y_1-y_2 〖,z〗_1-z_2} (5)
Еще одна операция для вектора – умножение вектора на число, выполняется покоординатно:
с ̅=λ∙a ̅ (6)
с ̅={x_3,y_3,z_3 }=λ∙{x_1,y_1 〖,z〗_1 }={λ∙x_1,λ∙y_1,λ∙〖 z〗_1) (7)
При λ>0 – полученный вектор сонаправлен исходному; λ<0 – вектор противоположно направлен исходному; |λ|>1 – длина вектора увеличивается в λ раз; |λ|<1 – длина исходного вектора уменьшается в λ раз.
Скалярное произведение двух векторов
P=a ̅∙b ̅ (8)
вычисляется как сумма произведений соответствующих координат исходных векторов:
P=a ̅∙b ̅=x_1 〖∙x〗_2+y_1∙y_2+z_1∙z_2 (9)
С помощью скалярного произведения векторов можно вычислить угол между векторами. Косинус угла φ между двумя векторами вычисляется по формуле:
cos〖φ=(a ̅∙b ̅)/(|a ̅ |∙|b ̅ | )〗 (10)
Длина вектора – числовое значение равное длине отрезка, расположенного между начальной и конечной точкой вектора, направление вектора не учитывается. Длина рассчитывается по формуле
L=√(x_1^2+y_1^2+z_1^2 ) (11)
Показать больше
Фрагмент для ознакомления
3
1. Грег Перри Программирование на C для начинающих / Грег Перри , Дин Миллер. - М.: Эксмо, 2015. - 368 c.
2. Н. Культин C/C++ в задачах и примерах / Н. Культин. - М.: БХВ-Петербург, 2008. - 288 c.
3. Стивен Прата Язык программирования C. Лекции и упражне-ния / Стивен Прата. - М.: Вильямс, 2015. - 928 c.
4. Ашарина, И.В. Объектно-ориентированное программирование в С++: лекции и упражнения: Учебное пособие для вузов / И.В. Ашарина. - М.: РиС, 2015. - 336 c.
5. . Ашарина, И.В. Язык С++ и объектно-ориентированное про-граммирование в С++. Лабораторный практикум: Учебное пособие для вузов / И.В. Ашарина, Ж.Ф. Крупская. - М.: ГЛТ , 2015. - 232 c.
6. Павловская, Т. С/С++.Процедурное и объектно-ориентированное программирование / Т. Павловская. - СПб.: Питер, 2018. - 496 c.
7. Лафоре, Р. Объектно-ориентированное программирование в С++ / Р. Лафоре. - СПб.: Питер, 2018. - 928 c.
8. Хорев, П.Б. Объектно-ориентированное программирование / П.Б. Хорев. - М.: Academia, 2018. - 352 c.
9. Иванова Г. С. Объектно-ориентированное программирование : учебник для студентов вузов / Г. С. Иванова, Т.Н. Ничушкина. Москва : МГТУ им. Н.Э. Баумана, 2014. 455 с.
10. Николаев Е.И. Объектно-ориентированное программирование : учебное пособие / Е.И. Николаев. Ставрополь : СКФУ, 2015. 225 с.
11. Рацеев С.М. Программирование на языке Си : учебное пособие / С.М. Рацеев. Ульяновск : УлГУ, 2015. 318 с.
12. Буч, Грейди Язык UML. Руководство пользователя / Грейди Буч , Джеймс Рамбо , Айвар Джекобсон. - М.: ДМК, 2019. - 432 c
13. Йордон, Эдвард Объектно-ориентированный анализ и проек-тирование систем / Эдвард Йордон , Карл Аргила. - М.: ЛОРИ, 2019. - 264 c.
14. Ларман, Крэг Применение UML 2.0 и шаблонов проектирова-ния. Введение в объектно-ориентированный анализ, проектирование и итеративную разработку / Крэг Ларман. - М.: Вильямс, 2020. - 736 c.
15. Леоненков, А. В. Объектно-ориентированный анализ и проек-тирование с использованием UML и IBM Rational Rose / А.В. Леоненков. - М.: Бином. Лаборатория знаний, Интернет-университет информационных технологий, 2020. - 320 c.