Определение принадлежности точки плоскости заштрихованной области на графике
Разработка и написание программы, которая вводит с клавиатуры координаты точки на плоскости (х, у - действительные числа) и определяет принадлежность точки заштрихованной области в Паскале и Бейсике. Нахождение ошибки и решение задачи через логическое И.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 08.06.2014 |
Размер файла | 41,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Определение принадлежности точки плоскости заштрихованной
области на графике
В задачах этого вида дан рисунок координатной плоскости, и некоей закрашенной/заштрихованной области, ограниченной набором прямых и кривых. Нужно определить, принадлежит ли точка с координатами (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) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).
Как мы только что обсудили, для задания закрашенной/заштрихованной области нужно использовать 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).
Однако за такое решение мы получим еще только один балл (из двух возможных).
Второй балл нам не дадут, потому что в программе "спрятана" не одна ошибка, а две - во-первых, программа не проверяет условие х<=0; во-вторых, система IF' ов, которая использована в программе, содержит только один ELSE. А он, как известно, относится только к последнему IF'y, у которого нет своего ELSE.
То есть, программа работает неправильно не только для вычисленной нами еще одной области, но и для всех случаев, когда условия первых двух IF'ob не выполняются (при у>х2 и при х>1.5). В этих случаях программа просто ничего не выдает в качестве ответа (а должна выдавать "не принадлежит").
Чтобы исправить эту ошибку нужно либо добавить еще столько ELSE, сколько не хватает (в нашем, исправленном, случае - еще три).
Либо (что гораздо проще и короче) записать условие принадлежности точки области через сложное условие (через логическое И). Рекомендуемый ответ должен выглядеть так:
Ответ:
1.х=-1, y=0,5
ПРОГРАММА |
|
НА ПАСКАЛЕ |
|
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. |
Естественно, вам нужно написать ответ только на одном языке программирования, наиболее вам известном и понятном. Обращаем ваше внимание на то, что при записи на Паскале сложных условий, необходимо каждое условие заключить в скобки, т.к. приоритет операции AND выше, чем операции сравнения.
Размещено на Allbest.ru
Подобные документы
Таблица тестовых наборов, код программы, скриншоты. Разработка программы вычисления заданного целочисленного выражения для данных в формате 16 бит. Вычисление принадлежности точки с заданными координатами заштрихованной области. Разветвления в С++.
лабораторная работа [1,3 M], добавлен 23.11.2014Организация входных и выходных данных для задачи нахождения общей точки для всех кругов на плоскости. Словесное описание действий и операций, выполняемых программой для получения конечного результата. Выбор технических и программных средств приложения.
курсовая работа [314,1 K], добавлен 30.06.2014Рабочее приложение для вычисления принадлежности точки заданной области. Реализация и проверка корректности ввода данных: радиуса, условий попарного пересечения окружностей, принадлежности центров окружностей одной прямой, заключенной внутри окружностей.
курсовая работа [596,7 K], добавлен 13.01.2014Числа с фиксированной точкой характеризуются длиной слова в битах, положением двоичной точки, бывают беззнаковыми или знаковыми. Позиция двоичной точки определяет число разрядов в целой и дробной частях машинного слова. Представление отрицательного числа.
лабораторная работа [154,6 K], добавлен 31.05.2009Числа с фиксированной точкой характеризуются длиной слова в битах, положением двоичной точки, бывают беззнаковыми или знаковыми. Позиция двоичной точки определяет число разрядов в целой и дробной частях машинного слова. Представление отрицательного числа.
лабораторная работа [156,7 K], добавлен 31.05.2009Создание программы для обучения пользователя пониманию и нахождению координат точки на координатной плоскости. Обоснование этапов обработки информации, общая концепция программы "Декартовая система координат", определение ее состава и структуры.
курсовая работа [1,3 M], добавлен 20.10.2022Разработка программы для решения задачи о синих и красных точках, суть которой заключается в построении отрезков на плоскости, на которой расположены точки, являющиеся концами этих отрезков. Структурная схемы и блок-схема разрабатываемого алгоритма.
курсовая работа [416,2 K], добавлен 19.03.2015Математическая модель задачи. Целевая функция. Симплекс метод, таблица. Оптимальное решение симплекс-метода. Метод северо-западного угла, потенциалов. Определение стационарной точки. Проверка стационарной точки на относительный минимум и максимум.
контрольная работа [1000,1 K], добавлен 29.09.2008Физическая и математическая модели уравнения движения материальной точки. Блок-схема алгоритма основной программы для решения задачи Коши и получения результатов с фиксированным количеством отрезков разбиения. Разработка программы для ЭВМ, ее листинг.
курсовая работа [212,3 K], добавлен 24.11.2014Восстановление математической модели задачи нелинейного программирования. Решение уравнений прямых. Метод линеаризации: понятие, особенности применения при решении задач. Нахождение точки максимума заданной функции. Решение задачи графическим методом.
задача [472,9 K], добавлен 01.06.2013