Математическое решение задач с графической иллюстрацией результатов

Автор работы: Пользователь скрыл имя, 10 Ноября 2012 в 10:46, реферат

Описание

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

Содержание

Введение
1 Общая часть
1.1 Постановка задачи
1.2 Описание математического метода решения задачи
1.3 Описание решения поставленной задачи
2 Специальная часть
2.1 Алгоритм работы программы
2.1.1 Процедура создания главной формы
2.1.2 Процедура ввода значений с клавиатуры
2.1.3 Процедура выбора случайных значений
2.1.4 Процедура открытия из текстового файла
2.1.5 Процедура сохранения в текстовый файл
2.1.6 Процедура вычисления
2.1.6.1 Процедура вывод
2.1.6.2 Процедура повтор
2.1.7 Процедура очистки окна вывода информации
2.1.8 Процедура выхода из программы
2.2 Системно – технические требования программы
2.3 Руководство пользователя
Заключение
Литература
Приложение А Листинг программы
Приложение Б Таблица спецификации глобальных переменных

Работа состоит из  1 файл

Документ Microsoft Word2003.doc

— 1.80 Мб (Скачать документ)

 

МИНИСТЕРСТВО  ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

 

 

КР.230103.10.23.03.ПЗ                                                  ГОУ СПО ИАТ

 

 

 

 

 

Математическое  решение задач  с графической иллюстрацией результатов


       Зав. Отделением

Петкевич Л.В

Дата

Руководитель

Петкевич Л.В

Дата

 

Зав. Циклом

Вокина М.А.

Дата

 

Выполнил

Белькевич А. Н.

Дата

   



 

 

 

 

 

 

2010

Содержание

 

Введение

4

1 Общая часть

5

1.1 Постановка  задачи

5

1.2 Описание  математического метода решения  задачи

6

1.3 Описание  решения поставленной задачи

6

2 Специальная  часть

7

2.1 Алгоритм  работы программы

7

2.1.1 Процедура  создания главной формы

7

2.1.2 Процедура  ввода значений с клавиатуры

7

2.1.3 Процедура  выбора случайных значений

7

2.1.4 Процедура  открытия из текстового файла

7

2.1.5 Процедура  сохранения в текстовый файл

7

2.1.6 Процедура  вычисления

8

2.1.6.1 Процедура  вывод

  8

2.1.6.2 Процедура  повтор

  8

2.1.7 Процедура  очистки окна вывода информации

9

2.1.8 Процедура  выхода из программы

9

2.2 Системно  – технические требования программы

9

2.3 Руководство  пользователя

9

Заключение

10

Литература

11

Приложение  А Листинг программы

12

Приложение  Б Таблица спецификации глобальных переменных

37


 

 

 

Таблица спецификации процедур и функций

38

Приложение  В Функциональная модель

39

Блок-схема

41


 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Введение

 

С начала 60-70хх началось бурное развитие компьютеризации  всех крупных промышленных центров. Ближе к 80-ым, компьютеры стали появляться и в учебных заведениях, предмету «Информатика» стали уделять огромное внимание. Стали появляться языки программирования высокого уровня такие, как Delphi, C++.        Далее пойдет речь о языке программирования Delphi. В России Borland Delphi появляется в конце 1993 г. и сразу же завоевывает широкую популярность. Новые версии выходят практически каждый год. В них реализуются все новые мастера, компоненты и технологии программирования. Действительно, процесс разработки в Delphi предельно упрощен. В первую очередь это относится к созданию интерфейса, на который уходит 80% времени разработки программы. Вы просто помещаете нужные компоненты на поверхность Windows-окна (в Delphi оно называется формой) и настраиваете их свойства с помощью специального инструмента (Object Inspector). С его помощью можно связать события этих компонентов (нажатие на кнопку, выбор мышью элемента в списке и т.д.) с кодом его обработки - и вот простое приложение готово.       Целью выполненной курсовой работы является разработка программного продукта. Приложение должно в заданном множестве точек найти три треугольника с вершинами на плоскости, так чтобы второй треугольник лежал строго внутри первого, а третий внутри второго.


 

 


1 Общая часть             1.1 Постановка задач         

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

  1. Спецификацию программы;
  2. Функции выполняемые разрабатываемой программой;

Индивидуальные  задания по курсовой  работе сформулированы в общем виде, поэтому студенту даётся возможность импровизации .

 

    1.  Описание математического метода решения задачи

 

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

В нашем случае для выполнения курсовой потребуются следующие формулы:

1 Нахождения  длины отрезка по координатам  его концов. 
, где АВ длина отрезка, а А.Х, А.У, В.Х и В.У координаты его концов.

2 Формула принадлежности  точки треугольнику. S=s1+s2+s3, где s площадь треугольника, а s1, s2, s3 площади треугольников, получаемых при соединении проверяемой точки с вершинами треугольника.

   3 Нахождения площади треугольника по его вершинам.

abs ((X1-X3)*(Y2-Y3)-(X2-X3)*(Y1-Y3))

 


    1.  Описание решения поставленной задачи 

 

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

 В цикле  ищем первый треугольник потом второй лежащий в первом и третий, лежащий в двух этих треугольниках.

 

  1. Специальная часть 

      

2.1 Алгоритм работы программы 

     

2.1.1 Процедура создания главной формы                                                           Рисуется координатная сетка, переменной cnt присваивается значение 1.

2.1.2 Процедура ввода значений с клавиатуры


В процедуре Button1Click в первую очередь проверяем значение переменной cnt, если оно больше 50 то выводится информационное сообщение, что точек больше ввести нельзя. Затем значения из редакторов ввода заносятся в переменные и проверяются на условие, если они больше 50 или меньше -50, то выдаётся ошибка о том, что неверно введены координаты и чистятся редакторы ввода, в противном случае данные заносятся в массив Point с индексом cnt и также заносятся в listBox, потом переменная cnt увеличивается на 1 и чистятся редакторы ввода.

2.1.3 Процедура  выбора случайных значений

В процедуре Button5Click сперва чистятся listBox и редакторы ввода, потом случайно выбирается число точек множества, к нему добавляется 7, на случай если выберется 0. Затем в цикле выбирается 0 или 1, если выбирается 0, то генерируется положительные координаты точек, иначе отрицательные. Координаты заносятся в массив Point с индексом cnt и также заносятся в listBox, потом переменная cnt увеличивается на 1.

2.1.4 Процедура открытия из текстового файла

В процедуре Button2Click данные загружаются из текстового файла в listBox, а затем из него заносятся в массив Point.

2.1.5 Процедура сохранения в текстовый файл

В процедуре Button3Click данные из listBox записываются в текстовый файл.

2.1.6 Процедура  вычисления

В процедуре Button2Click проверяется количество точек в массиве Point, если оно меньше шести то выдаётся ошибка. Затем проверяется свойство Caption, нажатой кнопки. Если оно равно «вывести », то выполняется процедура «Вывод», а если «повтор», то очищается окно вывода и выполняется процедура «Повтор».

2.1.6 1 Процедура «Вывод»

В процедуре Button2Click проверяется количество точек в массиве Point, если оно меньше девяти то выдаётся ошибка. Затем проверяется свойство Caption, нажатой кнопки. Если оно равно «вывести », то выполняется процедура «Вывод», а если «повтор», то очищается окно вывода и выполняется процедура «Повтор».

В процедуре vivod первых трёх циклах ищем три точки, в заданном множестве точек, образующие треугольник. В следующих трёх циклах ищем такие три точки, которые лежат внутри этого треугольника и сами  образуют треугольник. Если такие точки найдены, то выводим оба треугольника на экран, затем выходим из всех шести циклов запоминая индексы точек и меняем свойство Caption нажатой кнопки на «повторить». Если же таких точек не найдены то выводится информационное сообщение о том, что не найдено точек удовлетворяющих заданному условию.

2.1.6 2 Процедура «Повтор»

В процедуре povtor выполняются те же действия, что и в процедуре «Вывод», только поиск начинается не от начала множества точек, а от места остановки предыдущего поиска и если точек не найдено, то свойство Caption, нажатой кнопки, меняется на «вывести».


2.1.7 Процедура  очистки окна вывода информации

В процедуре N2Click Чистит окно вывода графической информации. Заново рисуется координатная сетка, переменной cnt присваивается значение 1.

 

2.1.8 Процедура выхода из программы

В процедуре N5Click Главная форма закрывается, работа с приложением завершается.  


2.2 Системно –  технические требования программы

 

Программа может  работать на любых платформах windows, начиная от windows 2000, на других операционных системах программа не тестировалась, требуется свободного места на жёстком диске 440 кб.

 

2.3 Руководство пользователя

 

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

2) Чтобы начать  водить  точки множества самому, необходимо в меню выбрать  новый проект. Откроется дополнительная панель, где водятся координаты. Координаты точек, водятся с клавиатуры в редактор вода, и введённые данные отображаются в небольшом окошке слева от редакторов ввода. Введённые данные можно сохранить их в текстовый файл, нажав на кнопку «Сохранить» иначе кликаем по кнопке «Вычислить» и смотрим результат работы программы. Сохранённые данные также можно использовать для вычислений нажав на кнопку «Открыть».

При нажатии  на кнопку «Сгенерировать» программа  автоматически формирует множество точек.

 

 

 

Заключение

 

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

  1 Ввод с  клавиатуры;

2 Открытие из файла;

3 Выбор случайных значений.

А также реализован графический вывод результатов.

 

 
Литература

1  Delphi 5.0, учебный курс, Фараонов В.В.,  ISBN 5-8952-020-4, 400 с.

  1. Турбо Паскаль 7.0.  –К.: Торгово- издательский дом BHV, 1997,  -448 с                       
  2. Майкл Ласло - Вычислительная геометрия и компьютерная графика.
  3. Михаил Фленов - Delphi в шутку и всерьез
  4. Сайт http://www.delphisources.ru/

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Приложение  А


Листинг программ

Форма вывода

unit Unit1;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, Menus, ExtCtrls;

type

  TForm1 = class(TForm)

    Image1: TImage;

    MainMenu1: TMainMenu;

    N1: TMenuItem;

    N3: TMenuItem;

    N4: TMenuItem;

    N7: TMenuItem;

    N2: TMenuItem;

    N5: TMenuItem;

    procedure N4Click(Sender: TObject);

    procedure N7Click(Sender: TObject);

    procedure FormCreate(Sender: TObject);

    procedure vivod;

   procedure povtor;

    procedure setka;

    procedure N2Click(Sender: TObject);

    function TriangleArea(X1,Y1,X2,Y2,X3,Y3:integer):integer;

    function IsInTriange(XM,YM,Xa,Ya,Xb,Yb,Xc,Yc:integer):boolean;

  private

    { Private declarations }

  public

    { Public declarations }

     cnt,cnt1,x0,y0,t,kol,kol1,q,w,z,o1,v1,u1,i2,j2,k2: integer;


    Point: array [1..50] of TPoint;

    mas: array [1..199] of TPoint;

    A,B,C,D,E,F,G: TPoint;

    dx,dy: integer;

  end;

var

  Form1: TForm1;

implementation

{$R *.dfm}

uses unit2,unit3;

function TForm1.TriangleArea(X1,Y1,X2,Y2,X3,Y3:integer):integer;

begin

TriangleArea:=abs((X1-X3)*(Y2-Y3)-(X2-X3)*(Y1-Y3));

end;

//Проверяет, лежит ли т. (XM,YX) в триугольнике (Xa,Ya,Xb,Yb,Xc,Yc)

function TForm1.IsInTriange(XM,YM,Xa,Ya,Xb,Yb,Xc,Yc:integer):boolean;

begin

if (TriangleArea(Xa,Ya,XM,YM,Xc,Yc)+TriangleArea(Xa,Ya,XM,YM,Xb,Yb)+TriangleArea(Xc,Yc,XM,YM,Xb,Yb)=TriangleArea(Xa,Ya,Xb,Yb,Xc,Yc)) then result:=true

Информация о работе Математическое решение задач с графической иллюстрацией результатов