Автор: Пользователь скрыл имя, 13 Мая 2014 в 19:36, доклад
В задачах этого вида дан рисунок координатной плоскости, и некоей закрашен¬ной/заштрихованной области, ограниченной набором прямых и кривых. Нужно опре¬делить, принадлежит ли точка с координатами (x,y) этой области или нет.
Так как уравнения всех границ указаны на графике, задачи этого вида требуют понимания того, какой знак нужно поставить в соответствующем неравенстве.
Определение принадлежности точки плоскости
заштрихованной области на графике
В задачах этого вида дан рисунок координатной плоскости, и некоей закрашенной/заштрихованной области, ограниченной набором прямых и кривых. Нужно определить, принадлежит ли точка с координатами (x,y) этой области или нет.
Так как уравнения всех границ указаны на графике, задачи этого вида требуют понимания того, какой знак нужно поставить в соответствующем неравенстве.
Выписав все неравенства, которые "ограничивают" закрашенную/заштрихованную область, и объединив их логической операцией «И» («AND»), получим условие, которое должна проверять программа. Если условие выполняется - точка принадлежит области, если не выполняется - не принадлежит.
Так, если искомую область ограничивает вертикальная прямая линия, то в общем виде уравнение этой прямой выглядит как "х=а", где а - то значение на оси х, через которое проходит данная прямая (напомним, что если эта прямая совпадает с осью у, то уравнение прямой будет "х=0").
Так как ось х направлена вправо (на что указывает "стрелка"), то все значения координаты x справа от нашей прямой будут больше числа а. А все значения координаты х слева от нашей прямой ("х=а") будут меньше а. Получаем, что если закрашенная/заштрихованная область лежит справа от прямой "х=а", то все ее точки удовлетворяют условию "х>=а", а если слева - то условию "х<=а".
Замечание относительно нестрогого неравенства (почему нужно писать именно "x>=av вместо "х>а"): так как на графике все прямые и кривые нарисованы сплошной линией, то закрашенная/заштрихованная область включает свои границы. Поэтому мы и пишем "больше или равно" или "меньше или равно". Строгие неравенства (строго больше/меньше) нужно было бы использовать, если бы границы области были бы нарисованы пунктиром.
Все остальные прямые и кривые, ограничивающие область, уравнения которых сводятся к виду "у=какое-то_выражение" нужно рассматривать с позиции у-координаты (ведь это именно она стоит в левой части уравнения). Так как ось "у" направлена вверх, то все точки, которые лежат выше прямой/кривой, должны удовлетворять условию "у>=это_выражение", а все точки, лежащие ниже нее- условию "у<=это_выражение". Значит, если закрашенная/заштрихованная область лежит выше рассматриваемой прямой/кривой, то все ее точки удовлетворяют условию "у>=это_выражение", а если ниже - то условию " у<=это_выражение".
Напомним, что если нужная вам прямая горизонтальна, то ее уравнение имеет вид "y=b", где b - то значение на оси у, через которое проходит эта прямая. И, конечно, если прямая совпадает с осью х, то ее уравнение имеет вид "у=0".
Замечание:
Вывод уравнения прямой, наклонной к оси х выходит за рамки данной книги. На ЕГЭ по информатике вам это умение не понадобится, т.к. это уравнение будет явно указано на графике. А если вам это интересно для общего развития - полистайте учебник алгебры за предыдущие годы.
Единственный и особый случай, который мы хотели бы рассмотреть и напомнить вам - когда закрашенную/заштрихованную область ограничивает окружность. Если ее центр совпадает с началом координат, то уравнение точек на окружности имеет вид "x2+y2=R2", где R - радиус этой окружности.
Как вы, вероятно, понимаете, левая часть этого уравнения (х2+у2) задает квадрат расстояния от начала координат до точки плоскости. Для всех точек нашей окружности это расстояние равно ее радиусу R. Именно в этом смысл уравнения окружности. Значит, для всех точек внутри окружности, включая саму окружность, это расстояние бу-
дет меньше R. Это можно выразить неравенством "x2 +y2 <=R2 ". А для всех точек снаружи окружности неравенство будет "x2+y2>R2". Рассмотрим пример:
В данной задаче закрашенную область ограничивают три прямые линии: горизонтальная (ее уравнение "у=2"), наклонная (ее уравнение "у=х") и вертикальная (она совпадает с осью у, ее уравнение "х=0").
Относительно горизонтальной прямой закрашенная область находится снизу, поэтому знак неравенства должен быть "меньше или равно" - "у<=2".
Относительно наклонной прямой закрашенная область находится сверху, поэтому знак неравенства должен быть "больше или равно" - "у>=х".
Относительно вертикальной прямой закрашенная область находится справа, поэтому знак неравенства должен быть "больше или равно" - "x>=0".
Итого получаем условие: (у<=2) И (у>=х) И (х>=0).
Соответственно,
на Паскале и на Бейсике:
(у<=2) AND (y>=x) AND (x>=0)
На Бейсике и Си, в данном случае, скобки можно не писать. Но лучше приучиться писать их всегда, чтобы не задумываться каждый раз, нужны они или нет.
В этом примере задача была очень простой - закрашенная область была ограничена только прямыми линиями. Если же область ограничена кривыми (или хотя бы одной кривой), то в список условий обычно приходится добавить еще одно или два условия- ведь кривая может в стороне от закрашенной области изменять свое направление.
И тогда получится, что набора ограничений, который мы написали, просто перечислив линии, ограничивающие область, может оказаться недостаточно. Рассмотрим пример:
Линий, ограничивающих закрашенную область, три: вертикальная прямая х=1,5, горизонтальная прямая у=0 и кривая у=х2.
Руководствуясь вышеприведенными рассуждениями, строим систему условий:
х<=1.5 (закрашенная область лежит левее вертикальной прямой),
y>=0 (закрашенная область лежит выше горизонтальной прямой) и
у<=x2 (закрашенная область лежит ниже кривой).
Однако, этих условий недостаточно, чтобы ограничить закрашенную область.
Например, чтобы это понять, можно воспользоваться методом "штриховки": для каждого условия заштрихуем разными способами область плоскости, удовлетворяющую этому условию. Там, где все штриховки пересекутся (наложатся одна на другую), все условия будут выполняться.
На рисунке видно, что все три штриховки накладываются друг на друга не только на закрашенной области, но и в области, на которую указывает пунктирная стрелка. Этот эффект объясняется очень просто - правило, которое позволяет задать область
плоскости, просто перечислив уравнения ограничивающих линий с соответствующим знаком, действует только в том случае, если эти линии не изменяют своего направления (т.е. функции, графиками которых они являются — возрастающие или убывающие). В случае с параболой у=х это не так - слева от начала координат функция у=х2убывает, а справа - возрастает, в результате чего наши условия неверно ограничивают закрашенную область.
Для исправления этой ошибки нужно добавить еще одно условие. Например, "х>=0".
Таким образом, правильным ответом в данном случае будет: На Паскале и Бейсике:
(х>=0) AND (x<=1.5) AND (y>=0) AND (y<=x*x)
Примеры решения заданий ЕГЭ (принадлежность точки заштрихованной области)
Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости (х, у - действительные числа) и определяет принадлежность точки заштрихованной области. Программист торопился и написал программу неправильно.
Последовательно выполните следующее:
1) Приведите пример таких чисел х, у при которых программа работает неправильно.
2) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).
ПРОГРАММА |
НА ПАСКАЛЕ |
var x,y: real; |
begin |
readln(x,у); |
if у<=х*х then |
if х<=1.5 then |
if y>=0 then |
write(‘принадлежит') |
else |
write('не принадлежит) |
end. |
Как мы только что обсудили, для задания закрашенной/заштрихованной области нужно использовать 4 условия:
х>0, х<=1,5,.у>=0 и y<=x2, которые должны выполниться одновременно.
Изучаем предложенную программу и замечаем, что одного условия - х>=0 - не хватает. Без него под систему условий х<=1,5, у>=0 и у<=x2 подпадают также точки под параболой слева от оси OY и сверху от оси ОХ. Чтобы ответить на первый вопрос задачи (и получить свой первый балл), вычислим какую-нибудь точку из этой области. Она должна быть сверху от оси ОХ (значит, у>0), слева от оси OY (значит, х<0) и ниже параболы (значит, у<=x2). Возьмем какую-нибудь точку на оси ОХ такую, что х<=0, например, х= -1. Для нее должно выполниться y>=0 и у<=х. То есть нас устроит любое значение у от 0 до (-1)2. Например, 0,5.
Отвечаем на первый вопрос: х=-1y=0,5
Теперь постараемся исправить программу. Основное (и очевидное), что нужно в программу добавить - проверку еще одного условия (х>0). Давайте это сделаем, например, добавив еще один IF в программу (выделено жирным):
ПРОГРАММА |
НА ПАСКАЛЕ |
var x,y: real; |
begin |
readln(x,y); |
if y<-x*x then |
if x<=1.5 then |
if y>=0 then |
if x>=0 then |
write('принадлежит ') |
else |
write('не принадлежит') |
end. |
Однако за такое решение мы получим еще только один балл (из двух возможных).
Второй балл нам не дадут, потому что в программе "спрятана" не одна ошибка, а две - во-первых, программа не проверяет условие х<=0; во-вторых, система IF' ов, которая использована в программе, содержит только один ELSE. А он, как известно, относится только к последнему IF'y, у которого нет своего ELSE.
То есть, программа работает неправильно не только для вычисленной нами еще одной области, но и для всех случаев, когда условия первых двух IF'ob не выполняются (при у>х2 и при х>1.5). В этих случаях программа просто ничего не выдает в качестве ответа (а должна выдавать "не принадлежит").
Чтобы исправить эту ошибку нужно либо добавить еще столько ELSE, сколько не хватает (в нашем, исправленном, случае - еще три):
ПРОГРАММА |
НА ПАСКАЛЕ |
var х,у: real; |
begin |
readln(х,у); |
if у<=х*х then |
if х<=1.5 then |
if y>=0 then |
if x>=0 then |
write (' принадлежит') |
else |
write('не принадлежит') |
else |
write (' не принадлежит') |
else |
write (' не принадлежит') |
else |
write('не принадлежит') |
end. |
Либо (что гораздо проще и короче) записать условие принадлежности точки области через сложное условие (через логическое И). Рекомендуемый ответ должен выглядеть так:
Ответ:
1.х=-1, y=0,5
2.
ПРОГРАММА |
НА ПАСКАЛЕ |
var х,у: real; |
begin |
readln(x,у); |
if (y<=x*x) and (х<=1.5) and (у>=0) and (х>=0) then |
write('принадлежит!) |
else |
write(!не принадлежит') |
end. |
Естественно, вам нужно написать ответ только на одном языке программирования, наиболее вам известном и понятном. Обращаем ваше внимание на то, что при записи на Паскале сложных условий, необходимо каждое условие заключить в скобки, т.к. приоритет операции AND выше, чем операции сравнения.
Информация о работе Определение принадлежности точки плоскости заштрихованной области на графике