Умоляю помогите СРОЧНО РЕШИТЬ 4, 5, 6. Составить программу, которая печатает true, если точка с координатами (х, у) принадлежит заштрихованной области, и false в противном случае.

Умоляю помогите СРОЧНО РЕШИТЬ 4, 5, 6. Составить программу, которая печатает true, если точка с координатами (х, у) принадлежит заштрихованной области, и false в противном случае.
Гость
Ответ(ы) на вопрос:
Гость
   Во вложении - раскрашенная для пояснения решения картинка.    Главное в таких задачах - правильно составить условие попадания в заштрихованную область, а затем построить по нему корректное логическое выражение.    Не совсем корректная постановка задачи требует сделать одно допущение. Нам не указали, входят ли в заштрихованные области их границы. Будем считать, что входят и на этом основании все отношения будет нестрогими (т.е.составленными при помощи ≤ и ≥). Если  границы контуров входить не должны, отношения строятся строгими и содержат операции < и >.    Первое, с чего нужно начать - составить уравнения линий, описывающих контуры. Это чистая математика и разбирать тут процесс нахождения уравнений таких линий смысла я не вижу.    Далее, нужно руководствоваться очевидным: если нужная нам область лежит "выше" или на линии контура, описанного уравнением вида y=f(x), то такая область описывается в виде y ≥ f(x). Аналогично, область расположенная "ниже" или на  линии такого контура описывается в виде y ≤ f(x)    Задание 4 "Желтая" область y≤x+3, "зеленая" y≥x-3, "красная" y≥5-x, "голубая" y≤11-x. Все эти четыре условия должны выполняться одновременно, поэтому их связываем логическим "И" (конъюнкцией): (y≤x+3) ∧ (y≥x-3) ∧ (y≥5-x) ∧ (y≤11-x) Соответственно, в языке программирования (далее рассматриваем паскаль) это логическое выражение запишется в виде (y<=x+3) and (y>=x-3) and (y>=5-x) and (y<=11-x)    Задание 5 Здесь два круговых сектора, расположенных в I и IV координатных четвертях. Уравнение окружности в декартовых координатах хорошо известно: x²+y²=R², где К - радиус окружности. I четверть образуется пересечением "желтой" и "голубой" зон, т.е. (x≥0) ∧ (y≥0). И в этой четверти располагается сектор с уравнением x²+y²=4² ⇒ x²+y²=16. В итоге получаем (x≥0) ∧ (y≥0) ∧ (x²+y²≤16) Аналогично в IV-й, "желто-зеленой" четверти пишем (x≥0) ∧ (y≤0) ∧ (x²+y²≤25). Осталось объединить эти области по ИЛИ", т.е. точка может попадать или в одну область, или в другую, но не в обе одновременно. ((x≥0) ∧ (y≥0) ∧ (x²+y²≤16)) ∨ ((x≥0) ∧ (y≤0) ∧ (x²+y²≤25)) Тут можно сделать небольшое упрощение, вынеся за скобки (x≥0). (x≥0) ∧ (((y≥0) ∧ (x²+y²≤16)) ∨ ((y≤0) ∧ (x²+y²≤25))). Вспоминаем, что операция ∧ "старше" чем ∨ и это позволяет избавиться от лишней пары скобок. (x≥0) ∧ ((y≥0) ∧ (x²+y²≤16) ∨ (y≤0) ∧ (x²+y²≤25)) На паскале: (x>=0) and ((y>=0) and (x*x+y*y<=16) or (y<=0) and (x*x+y*y<=25))    Задание 6 Здесь сложный контур, который мы можем разбить на два прямоугольника и свести задачу к аналогичной предыдущей. "Желтый" прямоугольник описывается набором условий (x≥-2) ∧ (x≤3) ∧ (y≥2) ∧ (y≤5) Зеленый прямоугольник (x≥3) ∧ (x≤5) ∧ (y≥2) ∧ (y≤3) И здесь следует объединение по "ИЛИ": ((x≥-2) ∧ (x≤3) ∧ (y≥2) ∧ (y≤5)) ∨ ((x≥3) ∧ (x≤5) ∧ (y≥2) ∧ (y≤3)) Можно вынести за скобки y≥2 (y≥2) ∧ ((x≥-2) ∧ (x≤3) ∧ (y≤5) ∨ (x≥3) ∧ (x≤5) ∧ (y≤3)) И на паскале: (y>=2) and ((x>=-2) and (x<=3) and (y<=5) or (x>=3) and (x<=5) and (y<=3)) Только теперь можно написать программу - все остальное, по сути, к информатике отношения не имело и это как раз одна из причин по которой информатика оказывается в школе одним из самых сложных предметов: при решении задач приходится привлекать самые разные знания из других предметов - математики, физики, экономики и т.д. Программа для задания 4 var   x,y:real; begin   Write('Введите через пробел координаты точки (x,y): ');   Read(x,y);   Writeln((y<=x+3) and (y>=x-3) and (y>=5-x) and (y<=11-x)) end. Пример программы Введите через пробел координаты точки (x,y): 3.1 3.4 True Остальные две программы пишутся совершенно аналогично: вставляем логическое выражение, составленное для паскаля, в процедуру Writeln(): Для задания 5: Writeln((x>=0) and ((y>=0) and (x*x+y*x<=16) or (y<=0) and (x*x+y*y<=25))) Для задания 6: Writeln((y>=2) and ((x>=-2) and (x<=3) and (y<=5) or (x>=3) and (x<=5) and (y<=3)))
Не нашли ответ?
Ответить на вопрос
Похожие вопросы