Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Министерство образования Российской Федерации
Санкт-Петербургский государственный электротехнический университет «ЛЭТИ»
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА К КУРСОВОЙ РАБОТЕ
по информатике
Задание № 17
Выполнил: Шутылева Е.А.
ФРТ
6122
Преподаватель: Варлинский Н.Н.
Санкт-Петербург
2007
Содержание
1. Содержательная постановка задачи .......................................................... 2
1.1. Условие задачи.................................................................................... 2
1.2. Пример решения задачи...................................................................... 2
2. Формализованная постановка задачи......................................................... 3
2.1. Определение параллельных плоскостей............................................ 3
2.2. Определение пар плоскостей, образующих при пересечении равные углы………………………………………………….. …………………………...3
3. Алгоритмизация.......................................................................................... 4
4. Разработка структуры данных.................................................................. 12
5. Программирование.................................................................................... 13
6. Тестирование............................................................................................. 19
Заключение.................................................................................................... 20
1. Содержательная постановка задачи.
1.1. Условие задачи.
Из множества плоскостей М, заданных коэффициентами уравнения Ax+By+Cz+D=0, выбрать плоскость или совокупность плоскостей, обладающих следующими свойствами:
1. параллельные между собой плоскости;
2. пары плоскостей, образующих при пересечении равные углы.
1.2. Пример решения задачи
Пусть заданы уравнения плоскостей:
1) 4x-5y+6z+7=0
2) 8x+10y+12z+14=0
3) 3x+4y+5z+6=0
4) 4x+5y+6z+8=0
|
|
|
Результаты:
1) Плоскость 2 параллельна плоскости 4;
2) Пары плоскостей, образующих при пересечении равные углы:
в данном случае (при таких коэффициентах) только 5-2 и 5-4,угол равен 41,494.
2.Формализованная постановка задачи.
2.1. Определение параллельных плоскостей.
Для решения задачи необходимо из множества заданных плоскостей выделить пары параллельных плоскостей.
Две плоскости, заданные каноническими уравнениями:
A1x+B1y+C1z+D1=0
A2x+B2y+C2z+D2=0
параллельны тогда, когда
A1B2=A2B1, т.е. A1B2-A2B1=0
А1С2=А2С1, т.е. А1С2-А2С1=0
Последнее условие может быть проверено лишь приближенно, поэтому при расчетах используется неравенство
где Е – погрешность оценки параллельных плоскостей. Величина Е задана в самой программе и равна Е=0.0000000001=10-10. Поэтому для поиска параллельных плоскостей используется метод последовательного перебора: берутся коэффициенты первой плоскости и сравниваются с коэффициентами последующих плоскостей; затем берутся коэффициенты второй плоскости и сравниваются с коэффициентами третьей, четвёртой и последующих плоскостей, и так до предпоследней плоскости.
2.2.Определение пар плоскостей, образующих при пересечении равные углы.
Для определения величины угла между пересекающимися плоскостями воспользуемся формулами:
A’=sqrt(A12+B12+C12); B’= sqrt(A22+B22+C22); C’= sqrt((A1-A2)2+(B1-B2)2+(C1-C2)2), где А’,B’ – нормали к плоскостям, С’ – суммарный вектор A’ и B’.
Cosα=(A’2+B’2+C’2)/2A’B’ α=arctan(sqrt((1-cos2α)/cosα))
Равенство углов определяется соотношением: |α1-α2|<E, где α1, α2 – углы между первой и второй парами пересекающихся плоскостей соответственно. Данные вычисления производятся для каждой пары плоскостей.
3.Алгоритмизация
Ввод данных
Вывод результатов
Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.