рефераты рефераты
Главная страница > Курсовая работа: Создание программы для определения вершин пирамиды с выпуклым основанием по данным точкам  
Курсовая работа: Создание программы для определения вершин пирамиды с выпуклым основанием по данным точкам
Главная страница
Банковское дело
Безопасность жизнедеятельности
Биология
Биржевое дело
Ботаника и сельское хоз-во
Бухгалтерский учет и аудит
География экономическая география
Геодезия
Геология
Госслужба
Гражданский процесс
Гражданское право
Иностранные языки лингвистика
Искусство
Историческая личность
История
История государства и права
История отечественного государства и права
История политичиских учений
История техники
История экономических учений
Биографии
Биология и химия
Издательское дело и полиграфия
Исторические личности
Краткое содержание произведений
Новейшая история политология
Остальные рефераты
Промышленность производство
психология педагогика
Коммуникации связь цифровые приборы и радиоэлектроника
Краеведение и этнография
Кулинария и продукты питания
Культура и искусство
Литература
Маркетинг реклама и торговля
Математика
Медицина
Реклама
Физика
Финансы
Химия
Экономическая теория
Юриспруденция
Юридическая наука
Компьютерные науки
Финансовые науки
Управленческие науки
Информатика программирование
Экономика
Архитектура
Банковское дело
Биржевое дело
Бухгалтерский учет и аудит
Валютные отношения
География
Кредитование
Инвестиции
Информатика
Кибернетика
Косметология
Наука и техника
Маркетинг
Культура и искусство
Менеджмент
Металлургия
Налогообложение
Предпринимательство
Радиоэлектроника
Страхование
Строительство
Схемотехника
Таможенная система
Сочинения по литературе и русскому языку
Теория организация
Теплотехника
Туризм
Управление
Форма поиска
Авторизация




 
Статистика
рефераты
Последние новости

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

1  Procedure VECTMult(a,b:Coordinates;var c:Coordinates);

2Назначение: производит векторное перемножение вектора а и b и заносит результат в вектор с ;

3Входные параметры: а,b,c  ;

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

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

1) Function collinearity(a,b:Coordinates):boolean;

2Назначение: возвращает collinearity:=истина , если векторы а и b коллинеарные, иначе- collinearity:=ложь ;

3Входные параметры: a,b;

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

5 возврат : collinearity

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

1) Function MixeMult(a,b,c:Coordinates):real

2Назначение: возвращает MixeMult:= значение смешанного произведения векторов а и b

3Входные параметры: a,b;

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

5Возврат : MixeMult

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

1) Function coplanarity(a,b,c:Coordinates):boolean

2Назначение: возвращает coplanarity :=истина ,если векторы а,b и c компланарны,иначе- coplanarity :=ложь .

3Входные параметры: a,b,c;

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

Спецификация подпрограмм для определения вершин пирамиды

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

1) Procedure ploskost(a,b,c:coordinates;var ax,bx,cx,dx:real);;

2)  Назначение: Строит по 3-м точкам уравнение плоскости вида Ax+By+Cz+D=0 и заносит в ax,bx,cx,dx соответствующие коэффициенты

3)  Входные параметры:a,b,c,ax,bx,cx,dx;

4)  Выходные параметры: ax,bx,cx,dx.

2.Спецификация функции proverka_na_ploskost;

1) function proverka_na_ploskost(var P:P_descriptor;var mno:mnoj; n:byte):boolean;;

2)  Назначение: проверяет условие принадлежности n точек(указатели которых хранятся в множестве mno) к плоскости ,построенной с помощью процедуры ploskost,возращает значение истины в случае удачной проверки, иначе-ложь;

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

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

5)  Возврат : f

3.Спецификация функции Vypuklost;

1) Function Vypuklost(var P:P_descriptor;mno:mnoj;n:byte):boolean;;

2)  Назначение: Проверяет многоугольник на выпуклость, путем перебора n точек из множества mno ,формированием их в векторы и последующим векторным перемножением . Возвращает значение истины, если при все N точках знак векторного умножения сохраняется, иначе -ложь;

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

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

5)  Возврат : Q

4.Спецификация функции FinDaPyramid;

1) Procedure FinDaPyramid(var P:P_descriptor;mno:mnoj);

2)  Назначение: определяет вершины пирамиды с выпуклым основанием и выводит на дисплей, если же нет решений -выводит соотсветсвующее сообщение ;

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

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


Блок-схема


Скругленный прямоугольник: выход


Тестовые Данные

-Введем 5 точек

Точка 1(2,-1,-1)

Точка 2(1, 2, 3)

Точка 3(4, 1 1)

Точка 4(0, 1, 2)

Точка 5(7, 1, 1)

-Построим по 3-м точкам уравнение плоскости

Уравнение каждой плоскости имеет вид: Ax + By + Cz + D = 0. Так что наша задача по заданным координатам 3-ех точек плоскости найти коэффициенты A, B, C и D. Эти коэффициенты находятся по формулам:

Описание: http://www.webmath.ru/web/images/uravn_ploskost.gif

где x, y, z - координаты наших точек, а 1-2-3 это номера точек A-B-C.

Соответственно находим эти коэффициенты и подставляем их в формулу

--В итоге, получаем уравнение вида Ax + By + Cz + D = 0.

A = -2

B = 10

C = -8

- D = -6

Подставим коэффициенты. Уравнение плоскости:

-2 x + 10 y - 8 z + 6 = 0

Далее, проверим 4 и 5 точку на принадлежность к этой плоскости:

Берем точку 4(0, 1, 2) и подставляем в уравнение -2 x + 10 y - 8 z + 6 = 0

-2(0)+10(1)-8(2)+6=0

0=0

Точка 4 принадлежит плоскости.

Берем точку 5(7, 1, 1) и подставляем в уравнение -2 x + 10 y - 8 z + 6 = 0

-2(7)+10(1)-8(1)+6=0

-6<>0

Точка 5 не лежит в плоскости.

-Далее проверим многоугольник на выпуклость.

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

После последовательного выполнения векторного произведения, видим, что многоугольник выпуклый следовательно, данные 5 точек являются вершинами пирамиды с выпуклым основанием, вершины пирамиды:

(2,-1,-1)

(1, 2, 3)

(4, 1, 1)

(0, 1, 2)

(7, 1, 1)

(интерфейс программы)

Описание: C:\Documents and Settings\Asus\Рабочий стол\курсовой\3.JPG

(ввод точек)

Описание: C:\Documents and Settings\Asus\Рабочий стол\курсовой\1.JPG

(вычисление вершин пирамиды с выпуклым основанием и вывод их на дисплей)


Описание: C:\Documents and Settings\Asus\Рабочий стол\курсовой\2.JPG


Заключение

пирамида вершина подпрограмма вектор

В курсовом проекте было предусмотрено следующее:

• создание библиотеки для работы с векторами в пространстве ;

• определение вершин пирамиды в с выпуклым основанием;


Список используемой литературы

1)  Брусенцева В.С. Конспект лекций по программированию

2)  Фаронов В. С. Turbo Pascal. Начальный курс. Учебное пособие. - М.: Нолидж»,1998 – 616 с.

3)  Привалов И.И .Аналитическая геометрия. Учебник издательство «Лань» -304с .

4)  Соболь Б.В. Практикум по высшей математике. издательство Ростов. 2006-640с


Приложение

Текст программ

Модуль MyUnit;

Unit MyUnitVector;

interface

Const {константы ошибок}

         ListOk=0;

         ListNotMem=1;

         ListUnder=2;

         ListEnd=3;

Type

         mnoj=set of byte;

         {Определение типов}

         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;

Var

         ListError:0..3; mno:mnoj;

        

{подпрограммы для формирования списка хранения и обработки списка векторов}

Procedure InitListOfVectors(var V:V_Descriptor);

Procedure PutVector(var V:V_Descriptor;c:Coordinates);

procedure CreateVector (a,b:Coordinates;var c:Coordinates);

Procedure WriteVectors(var V:V_Descriptor);

Procedure BeginOfVectors(var V:V_Descriptor);

{Подрограммы для работы с векторами}

Procedure AdditionVectors(a,b:Coordinates;var c:Coordinates);

Procedure MultOnNumber (Number:real; a:Coordinates;var c:Coordinates);

Function lengthOfVector(a:Coordinates):real;

Function Scalar(a,b:Coordinates):real;

Function angle(a,b:coordinates):real;

Function projection(a,b:coordinates):real;

Procedure VECTMult(a,b:Coordinates;var c:Coordinates);

Function collinearity(a,b:Coordinates):boolean;

Function MixeMult(a,b,c:Coordinates):real;

Function coplanarity(a,b,c:Coordinates):boolean;

{Подпрограммы для нахождения пирамиды в пространстве}

Procedure FinDaPyramid(var P:P_descriptor;mno:mnoj);

Procedure ploskost(var P:P_descriptor;a,b,c:coordinates;var ax,bx,cx,dx:real);

function proverka_na_ploskost(var P:P_descriptor;var mno:mnoj; n:byte):boolean;

Function Vypuklost(var P:P_descriptor;mno:mnoj;n:byte):boolean;

function Sign(T:real):byte;

{подпрограмм для формирования списка хранения и обработки точек}

Procedure InitListOfPoint(var P:P_Descriptor);

Procedure PutPoint(var P:P_Descriptor);

Procedure WritePoints(var P:P_Descriptor);

Страницы: 1, 2, 3, 4, 5

рефераты
Новости