Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методичка / MetRec01-1

.htm
Скачиваний:
24
Добавлен:
09.12.2013
Размер:
19.04 Кб
Скачать

Алгоритмические языки и программирование Задача 1-1 Определить попадает ли точка с заданными координатами X и Y в закрашенную область Требуется разработать алгоритм решения задачи, в которой в качестве входных параметров вводятся значения координат X и Y некой точки. Программа должна сравнить эти значения с параметрами соответствующих двухмерных объектов, изображенных на рисунке заданного варианта и вывести на экран решение в виде одного из двух сообщений:

"Точка попадает в заданную область" или

"Точка не попадает в заданную область". Ход решения данной задачи можно условно разделить на три этапа:

анализ задачи; формализация уловий задачи или математическое ее описание; выражение этих условий инструкциями языка программирования. Для успешного выполнения этих этапов необходимо знать соответствующий математический аппарат и основы языка программирования. Начнем от простого и разберем отдельные моменты или варианты решения задачи, предварительно упростив ее. Первый вариант задачи Рис. 1-7. Комбинированный случай рассматриваемой задачи.

Проанализируем изображенный на рис. 1-7 вариант задачи. Мы видим две закрашенные области: p1p2p3 и p4p5p6p7 . Нам нужно описать математически изображенную ситуацию. Если задача не разделяет эти области, т.е. результат решения ее определен фразой "точка попадает в закрашенные области" или "точка не попадает в закрашенные области", математически задача должна быть выражена одной комбинированной формулой, которая далее должна быть преобразована в логическое выражение, используемое в операторе условия (ветвления).

Словесно задачу можно описать так: Точка p(x,y) попадает в закрашенные области, если она попадает в область p1p2p3 или в область p4p5p6p7 . В область p1p2p3 точка попадет, если одновременно она будет находиться выше линии p1p2, правее p2p3 и ниже p3p1 . В область p4p5p6p7 точка попадет, если одновременно она будет находиться выше линии p4p5, правее p5p6 , ниже p6p7 и ниже p7p4 .

Математически это можно описать так Для области p1p2p3 : ((X-X0el)*(X-X0el))/(AA*AA)+((Y-Y0el)*(Y-Y0el))/(BB*BB) > 1 описывает точку, лежащую выше линии p1p2 или вне эллипса F2 . X>0 описывает точку, лежащую правее p2p3 или в правой полуплоскости. (X-X0okr)*(X-X0okr)+(Y-Y0okr)*(Y-Y0okr) < R*R описывает точку, лежащую ниже p3p1 или внутри окружности F1 Для области p4p5p6p7 : ((X-X0el)*(X-X0el))/(AA*AA)+((Y-Y0el)*(Y-Y0el))/(BB*BB) < 1 описывает точку, лежащую выше линии p4p5 или внутри эллипса F2 . X>0 описывает точку, лежащую правее p5p6 или в правой полуплоскости. (X-X0okr)*(X-X0okr)+(Y-Y0okr)*(Y-Y0okr) > R*R описывает точку, лежащую ниже p6p7 или снаружи окружности F1 Y 1; p2p3:=X>0; p3p1:=(X-X0okr)*(X-X0okr)+(Y-Y0okr)*(Y-Y0okr) < R*R; p4p5:=((X-X0el)*(X-X0el))/(AA*AA)+((Y-Y0el)*(Y-Y0el))/(BB*BB) < 1; p5p6:=X>0; p6p7:=(X-X0okr)*(X-X0okr)+(Y-Y0okr)*(Y-Y0okr) > R*R; p7p4:=Y

Соседние файлы в папке Методичка