Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пояснительная записка.docx
Скачиваний:
11
Добавлен:
22.02.2015
Размер:
153.17 Кб
Скачать

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

Пусть даны вещественные числа x1, x2,...,xn; y1, y2,...,yn, r1,r2,...,rn. Определите, есть ли на плоскости точка, принадлежащая всем кругам c1, c2,...,cn, где сi меет центр с координатами xi, yi и радиус ri.

2 Организация входных и выходных данных

В данной программе входными данными является количество кругов, координаты по оси OX, координаты по оси OY и радиус.

Количество кругов имеют целочисленный тип “int” - диапазон 0 до 9999, (ограничен программно) в памяти занимает 4 байта.

Координаты по оси OX, координаты по оси OY и радиус имеют вещественный тип “double” – диапазон ограничен десятью цифрами, (ограничен программно) в памяти занимает 8 байта.

Выходными данными является информация, поясняющая, есть ли общая точка на плоскости у этих кругов.

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

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

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

1) сравниваются два круга (все круги сравниваются друг с другом поочередно),

2) вычисляется расстояние между их центрами с помощью следующей формулы: , где х1, у1 и х2 ,у2 – координаты их центров соответственно,

3) сравнивается вычисленное расстояние с суммой их радиусов,

4) если сумма радиусов меньше расстояния между центрами значит, круги не пересекаются, и программа сразу же установит флаг в состояние «ложь» и перестанет дальнейший перебор кругов за ненадобностью,

После того как программа выполнит проверку на присутствие общей точки и установит флаг в соответствующее состояние, произойдет проверка флага. Если флаг находится в состоянии «Истина», то пользователю будет выдано соответствующее сообщение с текстом информирующем о то, что круги имеют общую точку, иначе пользователю будет выдано сообщение с текстом информирующем о то, что круги не имеют общую точку.

Блок-схема программы приведена на рисунке 1.

Рисунок 1. Блок-схема функции нахождения общей точки.

4 Выбор технических и программных средств

Для создания данной программы была использована среда программирования Borland C++ Builder 6 как распространенная и популярная. При помощи C++ Builder 6 можно создавать Desktop приложения для операционной системы Windows, конструируя его при помощи имеющихся компонентов. Это ускоряет процесс создания приложения и позволяет сократить количество ошибок программиста.

Для работы среды разработки C++ Builder 6 и создания текущего приложения было использовано следующее оборудование:

1) Процессор Intel Core 2 Duo E6600, 2400 MHz, 4Mb cache

2) Материнская плата Intel Rogers City DG965RY

3) ОЗУ 4 Gb

4) Клавиатура SVEN Basic 304, мышь Logitech G1

5) Монитор NEC MultiSync LCD93VM