Теория множеств

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование




ть единственно возможная прямая, по обе стороны от которой нет точек.

Тест 1

Тест 2. Задано три точки

Тест 3. Задано 4 точки

Тест 4. Задано 5 точек

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

Тестирование методами "белого ящика" фнкции Poisk

Метод покрытия всех условий/решений

Условие

I и kj

- номер одной точки прямой- номер второй точки прямой- номер точки не лежащей на прямой.

Для проверки этого условия на ветке истина добавим вывод в файл всех K. Таким образом должны быть веведены только номера точек, удовлетворяющих условию. Nt = 5.

Содержимое файла=1=2= 3, 4, 5

Условие

Znak(a,b,k)>0

Для проверки этого условия на ветке истина добавим вывод в файл всех K.

Таким образом должны быть веведены только номера точек, удовлетворяющих условию. Nt = 5.

Дано множество

1)1 0

2)0 1

)-1 4

)5 2

)1 -3=1; j=2 => a =-1; b=1=3 znak =2; K=4 znak =7; K=5 znak =-3

Содержимое файла

3. Результаты разработки

Структура программы

Программа выполнена на объектно-ориентированном языке Delphi 7.0.Программа состоит из файлов: Unit1.pas, Unit2.pas., Picture.pas, lib.pas.pas содержит код проверки предположения о том, что для заданного множества точек M, верно ли, что для каждой точки AM существует точка B (AB), такая что не существует двух точек множества M, которые лежат по разные стороны от прямой AB.pas содержит код панели с сообщением об ошибке..pas содержит функции, вычисляющие коэффициенты перевода реальных координат в экранные для графического представления множества..pas - библиотечный файл, содержит описание введенных типов и глобальных переменных.

Все файлы объединены в проект Poisktochki.dpr. Логика программы очень проста. Система программирования уже содержит все необходимые компоненты (кнопки, поля ввода, панели и др.). Из них формируется интерфейс программного продукта. В разделе события выбирается, на какое действие должен реагировать компонент. Были дописаны реакции компонента на действия пользователя.

Назначение программы

Программа, позволяющая проверить для заданного множества точек M, верно ли, что для каждой точки AM существует точка B (AB), такая что не существует двух точек множества M, которые лежат по разные стороны от прямой AB.

Выполняет следующие основные функции:

1)ввод данных о множестве точек из файла

2)вывод введенных данных на экран

)ввод данных о множестве с клавиатуры

)построение прямой AB для указанной точки A.

)Поиск точек Bi для каждой точки множества Ai и вывод на экран

)Визуализация точек множества на экране

Реализации процессов

Логика программы соответствует логике объектно-ориентированного программирования. Система программирования уже содержит все необходимые компоненты (кнопки, поля ввода, панели и др.). Из них формируется интерфейс программного продукта. В разделе события выбирается, на какое действие должен реагировать компонент. Пользователь только дописывает, как компонент реагирует на то или иное действие. Один компонент может реагировать на несколько действий. Например, при наведении на кнопку курсором мыши в строке состояния появляется функция, выполняемая кнопкой, а при нажатии курсором мыши на эту кнопку она совершает действие описываемое в строке состояния. При выборе пользователем компонента и события система сама создаёт процедуру с соответствующим названием.

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

Основные процедуры рассматриваются в Таблице 3.1.

Таблица 3.1. Функции процессов.

Наименование процессаНазначение процессаOutPutFileВвод координат точек множества из файлаSearchПоиск точки Bi для каждой точки Aj множества readFromGridВвод координат точек множества из таблицы на экранеsgDataSelectCellРаiет разницы между индексами строки и столбца для выбранного элемента.pryamayaВычисляет коэффициенты уравнения прямой для двух заданных точекznakОпределяет по какую строну от заданной прямой лежит точка множестваMakePictureРисует на экране точки множества согласно координатамPaintStrРисует прямую между заданными точками

Тестирование программы

Программа и её модули были протестированы методами "чёрного ящика" -- предположение об ошибке и эквивалентное разбиение и "Белого ящика" - покрытие всех условий/решений.

Часть проводимых тестов приведена в разделе 2.3 Рабочем проекте и Приложении В Программа и методика испытаний. Ошибки, обнаруженные в процессе тестирования были устранены.

Программа соответствует требованиям Технического задания.

Выводы

В результате дипломного проектирования были достигнуты цели заявленные во введении - решение задачи определения в заданном множества точек M, верно ли, что для каждой точки AM существует точка B (AB), такая что не существует двух точек множества M, которые лежат по разные стороны от прямой AB.

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

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

Задача решалась в н