Создание программы для определения вершин пирамиды с выпуклым основанием по данным точкам

27864
знака
2
таблицы
19
изображений

КУРСОВОЙ ПРОЕКТ

по дисциплине

«Программирование на языке высокого уровня»

на тему:

«Создание программы для определения вершин пирамиды с выпуклым основанием по данным точкам»


Введение

Целью данного проекта – является закрепление материала, изложенного в курсе «Программирование на языке высокого уровня» на основе какой-либо обобщающей задачи. В качестве таковой была выбрана задача определения пирамиды с выпуклым основанием по данным N точкам.

Данная задача предполагает укрепление знаний в линейной алгебре и закрепление их в виде решения поставленной задачи на языке высокого уровня(Pascal)


Постановка Задачи

Разработать подпрограмму для определения вершин пирамиды с выпуклым основанием по данным точкам.

Создание демонстрационной программы для показа найденного решения. А так же создание библиотеки для работы с векторами в пространстве.

Теоретические сведения

Векторы

Вектором называется направленный отрезок.

Описание: Вектор

У вектора есть начало и есть конец. Обозначается вектор строчными латинскими буквами a, b, c, ... или указанием его начала и конца, на первом месте всегда указывается начало. На чертежах вектор отмечается стрелкой. Иногда слово «вектор» не пишут, а ставят стрелочку над буквенным обозначением.

Вектор AB, AB, a

Описание: Вектор

Вектор AB и вектор CD называются одинаково направленными, если полупрямые AB и CD одинаково направлены

Вектор AB и вектор CD называются противоположно направленными, если полупрямые AB и CD противоположно направлены.

a и b одинаково направленные.

a и c противоположно направленные.

Абсолютной величиной вектора называется длина отрезка, изображающего вектор. Обозначается как |a| .

Вектором в пространстве называется направленный отрезок.

Координатами вектора с началом в точке A1(x1; y1; z1) и концом в точке A2(x2; y2; z2) называются числа x2-x1, y2-y1, z2-z1. Вектор обозначается в пространстве так:

Описание: Вектор в пространстве

Описание: Координаты вектора

Есть вектора a. Пусть A (x; y) – начло вектора, а A` (x`; y`) – конец вектора. Координатами вектора a называются числа a1=x-x`, a2=y-y`. Для обозначения того, что вектор a имеет координаты a1 и a2, используют запись a (a1; a2) или (a1; a2).

Абсолютная величина вектора a (a1; a2) равна

Описание: Корень суммы квадратов

Если начало вектора совпадает с его концом, то это нулевой вектор , обозначается (0).

Сложение векторов

Суммой векторов a(a1; a2) и b(b1; b2) называется вектор c(a1+b1; a2+b2).

Для любых векторов a(a1; a2), b(b1; b2), c(с1; с2) справедливы равенства:

Описание: сложение векторов a+b=b+a, a+(b+c)=(a+b)+c

Описание: сложение векторов треугольник

Теорема Каковы бы ни были три точки A, B и C, имеет место векторное равенство

Описание: сложение векторов a+b=c

Доказательство.

Пусть A(x1; y1), B(x2; y2), C(x3; y3) – данные три точки.

Вектор AB имеет координаты (x2 – x1; y2 – y1), вектор BC имеет координаты (x3 – x2; y3 – y2). Следовательно, вектор AB + BCимеет координаты (x3 – x1;y3 – y1). А вектор AC имеет координаты (x3 – x1;y3 – y1). Значит, AC = AB+ BC. Теорема доказана.

Сложение векторов. Правило параллелограмма


Описание: два вектора

Правилом параллелограмма сложения векторов называется следующий способ:

Пусть есть векторы AB и AC у которых начало вектора совпадает, а концы не совпадают

Описание: параллелограмм

Достроим данный угол до параллелограмма, так что AC = BD и AB = CD.

Описание: параллелограмм и диагональ

Тогда AB + BD = AD, а так как BD = AC, то AB + AC = AD

Описание: три вектора, сумма


Сложение векторов. Правило треугольника

Описание: сложение векторов правило треугольника

Правилом треугольника сложения векторов называется следующий способ:

Пусть есть произвольные векторы a и b. Надо от конца вектора a отложить вектор b`, равный вектору b. Тогда вектор, начало которого совпадает с началом вектора a, а конец совпадет с концом вектора b`, будет суммой a + b.

Свойство умножения вектора на число

Теорема

Абсолютная величина вектора λa равна |λ| |a|. Направление вектора λa при a≠ 0 совпадает с направлением вектора a, если λ>0, и противоположно направлению вектора a, если λ<0.

Описание: Свойство умножения вектора на число

Доказательство.

Построим векторы OA и OB равные a и λa соответственно (O – начало координат). Пусть a1 и a2 – координаты вектора a. Тогда координатами точки A будут числа a1 и a2 координатами точки B – числа λa1 и λa2. Уравнение прямой OA имеет вид: αx + βy = 0.

Так как уравнению удовлетворяют координаты точки A (a1; a2), то ему удовлетворяют и координаты точки B (λa1; λa2). Отсюда следует, что точка B лежит на прямой OA. Координаты c1 и c2 любой точки C, лежащей на луче OA, имеют те же знаки, что и координаты a1 и a2 точки A, и координаты любой точки, которая лежит на луче, дополнительном к OA, имеют противоположные знаки.

Поэтому, если λ > 0, то точка B лежит на луче OA, а следовательно, векторы a и λa одинаково направлены. Если λ < 0, то точка B лежит на дополнительном луче и векторы a и λa противоположно направлены.

Абсолютная величина вектора λa равна:

Описание: Свойство умножения вектора на число

Теорема доказана.

Теорема

Равные векторы имеют равные соответствующие координаты.

Доказательство

Рассмотрим два случая: 1) векторы не лежат на одной прямой.

Описание: Координаты вектора. Векторы не на одной прямой

Пусть есть вектор a с началом в точке A (x; y) и концом в точке A` (x`; y`). При параллельном переносе получаем вектор b, у которого тогда начало будет в точке B(x+c; y+d), а конец в точке B`(x`+c; y`+d). Отсюда видно, что оба вектора будут иметь одни и тебе координаты (x-x`; y-y`).

2) векторы лежат на одной прямой.

Описание: Координаты вектора. Векторы на одной прямой

Пусть есть прямая l на которой лежат равные векторы AA` и BB`. A(x; y), A`(x`; y`), B(x1;y1) и B(x1`; y1`). Проведем прямую l1 параллельную l и отложим на ней вектор CD равный AA` и BB`, C (x0; y0) и D (x0`; y0`). Так как AA` = CD, из предыдущего пункта x-x`=x0-x0` и y-y`=y0-y0`. С другой стороны BB` = CD и x1-x1`=x0-x0`, y1-y1`=y0-y0`. Сравнивая равенства получаем x-x`=x1-x1` и y-y`=y1-y1`. Теорема доказана.

Произведение вектора a(a1; a2) на число λ называется вектор (λa1; λa2), т.е. (a1; a2) λ = (λa1; λa2).

Для любого вектора a и чисел λ, μ

Описание: Умножение вектора на число

Для любого вектора a и b и числа λ

Описание: Умножение вектора на число


Коллинеарный вектор

Описание: Коллинеарный вектор

Два ненулевых вектора называются коллинеарными, если они лежат на одной прямой или на параллельных прямых. Коллинеарные векторы либо одинаково направлены, либо противоположно направлены.

Коллинеарный вектор. Свойства

Теорема

Если есть два отличных от нуля коллинеарных вектора, то существует число λ такое, что

Описание: Коллинеарный вектор. Свойства формула1

Доказательство.

Пусть a и b одинаково направлены.

Описание: Коллинеарный вектор. Свойства формула2

- это векторы, которые одинаково направлены и имеют одну и ту же абсолютную величину |b|. Значит, они равны:

Описание: Коллинеарный вектор. Свойства формула3

Когда векторы a и b противоположно направлены аналогично заключаем, что

Описание: Коллинеарный вектор. Свойства формула4

Теорема доказана.

Теорема

Любой вектор с можно представить в виде

Описание: Коллинеарный вектор. Свойства формула5

Скалярным произведением векторов a (a1; a2) и a (b1; b2) называется число a1b1+a2b2.

Описание: Квадрат модуля

Для любых векторов a (a1; a2), b (b1; b2), c (с1; с2)

Описание: Скалярное произведение

Углом между ненулевыми векторами AB и AC называется угол ABC. Углом между любыми двумя ненулевыми векторами a и b называется угол между равными им векторами с общим началом.

Скалярное произведение. Свойство

Теорема

Скалярное произведение векторов равно произведению их абсолютных величин на косинус угла между ними.

Описание: Скалярное произведение. Свойство

Доказательство.

Пусть a и b – данные векторы и φ – угол между ними. Имеем:

Описание: Скалярное произведение. Формула1

или

Описание: Скалярное произведение. Формула2

Скалярное произведение ab таким образом, выражается через длины векторов a, b и a + b т. е. систему координат можно выбрать любую, а величина скалярного произведения не изменится. Выберем систему координат xy так, чтобы начало координат совпало с началом вектора a, а сам вектор лежал на положительной полуоси оси Ox. Тогда координатами вектора a будут числа |a| и 0, а координатами вектора a – |a| cos φ и |a| sin φ . По определению

Описание: Скалярное произведение. Формула3

Теорема доказана.

Из теоремы следует, что если векторы перпендикулярны, то их скалярное произведение равно нулю.


Плоскость, многоугольники

Плоскость

Теорема

Через прямую и не лежащую на ней точку можно провести плоскость, и при том только одну.

Описание: Плоскость и точка

Доказательство

Пусть AB – данная прямая и С – не лежащая на ней точка. Проведем через точки A и С прямую. Прямые AB и AC различны, так как точка С не лежит на прямой AB. Проведем через прямые AB и AC плоскость α. Она проходит через прямую AB и точку С.

Докажем, что плоскость α, проходящая через прямую AB и точку С, единственна.

Допустим, существует другая, плоскость α.`, проходящая через прямую AB и точку С. По аксиоме о том, что если две различные плоскости имеют общую точку, то они пересекаются по прямой, проходящей через эту точку, плоскости α и α` пересекаются по прямой. Эта прямая должна содержать точки A, B, C. Но они не лежат на одной прямой. Что противоречит предположению. Теорема доказана.


Выпуклый многоугольник

Описание: многоугольник

Ломаная называется замкнутой, если ее концы соединены отрезком.

Если все звенья простой замкнутой ломаной не лежат на одной прямой, то это многоугольник. Тогда точки ломанной называются вершинами многоугольника, а звенья – сторонами многоугольника.

Многоугольник с n вершинами, называется n-угольником.

Описание: многоугольник выпуклый

Многоугольник называется выпуклым, если он лежит в одной полуплоскости относительно любой прямой, содержащей его сторону.A1A2A3A4A5A6A7 – выпуклый многоугольник.

Описание: многоугольник невыпуклый

B1B2B3B4B5 – невыпуклый многоугольник.

Выпуклые многоугольники. Свойство

Теорема.

Сумма углов выпуклого n-угольника равна 180°*(n-2).

Описание: многоугольник выпуклый

Доказательство.

Нужно заметить, n ≥ 3.

Для n = 3 многоугольник превращается в треугольник и теорема справедлива.

Для n > 3 проведем n-3 диагонали: A2An, A3An, …, An-1An. Получим n-2 треугольника: Δ A1A2An, Δ A2A3An, …, An-2An-1An. Сумма углов всех треугольников равна сумме углов многоугольника. Так как сумма углов треугольнике равна 180 ° и число треугольников равно n – 2, то сумма всех углов многоугольника равна 180° * (n - 2). Теорема доказана.


ОПИСАНИЕ ОБЩЕГО АЛГОРИТМА

Пункт1.Пользователь вводит N точек.

Пункт2.Программа проверяет, лежат ли все данные точки в одной плоскости, если лежат-то решения нет, вершины пирамиды не будут найдены, а на дисплей выведется сообщение «точки лежат в одной плоскости».(переход к пункту 6)

Пункт3. Если все данные точки не лежат в одной плоскости, то программа берет N-1 точек (исключаемую точку принимая за возможную вершину пирамиды) и выполняет построение уравнения плоскости по 3-м точкам ,

Пункт4.Выполним проверку на принадлежность к данной плоскости оставшихся точек .В случае ,если хотя бы одна точка из оставшихся точек не принадлежит к плоскости, то переходим к пункту 6.

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

В случае удачной проверки на выпуклость программа выдаст сообщение о том, что были определены вершины пирамиды с выпуклым основанием

Пункт6.вывод ответа

Описание структур данных

Для хранения точек был использован динамическая структура данных- односвязанный список. Элемент списка представляет собой запись с 2 полями:

-полем данных

-полем указателя на следующий элемент

В свою очередь поле данных представляет собой запись Coordinates с 3-я полями:x,y,z

Так же для работы со списком использовались дескрипторы ,которые представляли собой записи с 3-я полями

-start(указатель на начальный(фиктивный ) элемент)

-ptr(указатель на текущий элемент)

-Number(число элементов в записи)

Type

Coordinates=record {коориднаты}

x,y,z:real;

end;

P_Points=^point; {Описание типа Points}

point=record

data:Coordinates;

Next:P_Points;

end;

P_Descriptor=record {Дескриптор для работы со списком точек}

Start,Ptr:P_Points;

Number:Word;

end;

P_Vectors=^Vector; {Описание типа Vector}

Vector=record

data:Coordinates;

Next:P_Vectors;

end;

V_Descriptor=record {Дескриптор для работы со списком векторов}

V_Start,V_Ptr:P_Vectors;

V_Number:Word;

end;

Описание модуля

Спецификация подпрограмм для работы со списком

1.Спецификация процедуры InitListOfPoint;

1) Procedure InitListOfPoint(var P:P_Descriptor);;

2)  Назначение: инициализирует фикивный элемент списка;

3)  Входные параметры: P

4)  Выходные параметры: P.

2.Спецификация процедуры PutPoint;

1) Procedure PutPoint(var P:P_Descriptor);

2)  Назначение: создает элемент Buf и помещает его в список;

3)  Входные параметры: P;

4)  Выходные параметры: P;

3.Спецификация процедуры WritePoints;


Информация о работе «Создание программы для определения вершин пирамиды с выпуклым основанием по данным точкам»
Раздел: Информатика, программирование
Количество знаков с пробелами: 27864
Количество таблиц: 2
Количество изображений: 19

Похожие работы

Скачать
115184
0
12

... не разработана. В следующей главе мы выявим особенности и методики применения основных идей квантового обучения в обучении математике. Глава 2. Особенности применения квантового обучения при обучении математике 2.1. Реализация основных идей квантового обучения в преподавании математики Рассмотрим реализацию основных идей квантового обучения в преподавании математике в соответствии с разбиением ...

Скачать
50549
0
0

... ' традиционные способы добычи пищи, ставили человека перед необходимостью радикально изменять обстоятельства жизнедеятельнос­ти, способствовали появлению культурных и социальных инноваций. Античная наука. 1.Возникновение письменности. Грандиозным по своей исторической значимости и последствиям событием было возникновение письменности. Письменность по сравнению с речью ...

Скачать
240958
1
0

... проходят крыловидные мышцы и верхнечелюстная артерия, лежит часть крыловидного венозного сплетения и зачелюстная вена. Через крыловидно-верхнечелюстную щель яма сообщается с крылонебной ямкой.   Общая артрология и синдесмология В начале развития скелета зачатки костей связаны между собой мезенхимой непрерывно. Из нее возникает соединительная ткань, которая формирует два вида соединений – ...

Скачать
330445
3
30

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

0 комментариев


Наверх