Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
сборник лабораторных работ.doc
Скачиваний:
6
Добавлен:
17.11.2019
Размер:
5.38 Mб
Скачать

3Краткая теоретическая справка

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

О кружность – геометрическое множество точек, равноудаленных от одной точки – центра окружности. Формула окружности выводится просто – опять по теореме Пифагора:

Т.е., квадрат расстояния от центра до точки на окружности равен квадрату радиуса окружности.

Для точек, лежащих внутри окружности, выполняется неравенство ; для точек, лежащих вне окружности – .

Уравнение прямой может быть представлено в различном виде в зависимости от каких-либо заданных начальных условий:

1. Общее уравнение прямой:

Ax + By + C = 0

Причем постоянные А, В не равны нулю одновременно, т.е. А2 + В2  0. Это уравнение первого порядка называют общим уравнением прямой.

В зависимости от значений постоянных А,В и С возможны следующие частные случаи:

C = 0, А  0, В  0 {Ax + By = 0} – прямая проходит через начало координат

А = 0, В  0, С  0 {By + C = 0} – прямая параллельна оси Ох

В = 0, А  0, С  0 {Ax + C = 0} – прямая параллельна оси Оу

В = С = 0, А  0 {Ax = 0} – прямая совпадает с осью Оу

А = С = 0, В  0 {By = 0} – прямая совпадает с осью Ох

2. Уравнение прямой с угловым коэффициентом:

y - yo = k (x - xo),

где k - угловой коэффициент прямой, то есть k = tg, где - величина угла, образованного прямой с осью Оx, M(xo, yo) - некоторая точка, принадлежащая прямой.

Уравнение принимает вид y = kx + b, если M (0, b) есть точка пересечения прямой с осью Оy.

3. Уравнение прямой в отрезках:

,

где a и b - величины отрезков, отсекаемых прямой на осях координат.

4. Уравнение прямой, проходящей через две данные точки A(x1, y1) и B(x2, y2):

5. Уравнение прямой, проходящей через данную точку A(x1, y1) параллельно данному вектору a(m, n):

Прямая, уравнение которой Ax+By+C=0, разбивает плоскость на две полуплоскости. На практике для выяснения того, в какой полуплоскости мы имеем Ax+By+C<0, а в какой Ax+By+C>0, применяют метод контрольных точек. Для этого берут контрольную точку (разумеется, не лежащую на прямой, уравнение которой Ax+By+C = 0) и проверяют, какой знак имеет в этой точке выражение Ax+By+C. Тот же знак имеет указанное выражение и во всей полуплоскости, где лежит контрольная точка. Во второй полуплоскости Ax+By+C имеет противоположный знак.

4Типовые задачи

  1. Определить, попадает ли точка с координатами (x, y) в заштрихованную фигуру.

Алгоритм решения задачи:

  1. Ввести значения координат x и y

  2. Подставить значения координат в логическое выражение для проверки попадания точки в заштрихованную фигуру. Если логическое выражение истинно, вывести "да", иначе – "нет"

Основная сложность – определить логическое выражение.

Прежде всего, обратим внимание на то, что эту сложную фигуру целесообразно разбить на несколько более простых: треугольник, лежащий в I и IV координатных четвертях и треугольник, лежащий во II и III четвертях. Таким образом, точка может попасть внутрь одной из этих фигур, либо на линию, их ограничивающую. Количество отношений, описывающих какую-либо область, обычно совпадает с количеством линий, эту область ограничивающих. Чтобы точка попала внутрь области, необходима истинность каждого из отношений, поэтому над ними выполняется операция && (логическое И). Так как вся область была разбита на несколько, то между отношениями, описывающими каждую из них, используется операция || (логическое ИЛИ).

Уравнения прямых для первого (левого) треугольника (x≤0): y=-x, y=-1.5x-1; для второго треугольника (x≥0): y=x, y=1.5x-1. Полуплоскости задаются неравенствами, знак которых определяем простой подстановкой. Границы принадлежат фигуре, поэтому неравенства будут нестрогими.

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

(x <= 0) && (y >= –1.5 * x – 1) && (y <= – x) ||

(x >= 0) && (y >= 1.5 * x – 1) && (y <= x)

Определение переменных

Для реализации алгоритма нужны переменные для хранения значений координат x и y, оба числа – действительные числа. В условии не приведены требования к точности вычислений, рисунок представлен с довольно невысокой точностью, можно было бы использовать тип float. Но в соответствии с общим стилем программирования на C выберем для них тип double.

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

void main(){

double x, y; //x, y – координаты точки

//Ввод координат точки:

printf("Введите координаты точки (x, y):\n");

scanf("%ld%ld", &x, &y);

//Проверка условия и получение результата:

if((x <= 0) && (y >= –1.5 * x – 1) && (y <= – x) ||

(x >= 0) && (y >= 1.5 * x – 1) && (y <= x))

printf("Точка (%.2f, %.2f) находится внутри фигуры\n", x, y);

else

printf("Точка (%.2f, %.2f) не попадает внутрь фигуры\n",x,y);

}

Тестовые примеры

(-0.5, -0.2) – точка в первом треугольнике

(0.5, 0) – точка во втором треугольнике

(0, 0) – точка на границе фигуры, на границе двух треугольников

(2, 1) – точка в I четверти, ниже фигуры

(1, 0.7) - точка в I четверти, выше фигуры

(-0.7, -0.7) – точка в III четверти, ниже фигуры

(-1, 0.7) - точка во II четверти, выше фигуры