Предмет: Информатика, автор: Дигидроортоборат

200 БАЛЛОВ за решение: Даны координаты точки (Х; У). Составить программу(Паскаль), которая печатает true, если точка с координатами (х;у) принадлежит заштрихованной области из задания № 2 вашего варианта, и false в противном случае.
Начало -- var x, y: integer;
f: boolean;
begin .....

Приложения:

Ответы

Автор ответа: Аноним
0
Прежде всего, надо построить логическое выражение, которое описывает попадание точки a(x,y) в заштрихованные области.
1. первая четверть
Область образована частью кольца, меньший радиус равен 4, больший - 8.
(x^2+y^2 geq 4^2) land (x^2+y^2 leq 8^2) land (x geq 0)land(y geq 0)
2. третья четверть
Такая же область.
(x^2+y^2 geq 4^2) land (x^2+y^2 leq 8^2) land (x leq 0)land(y leq 0)
3. вторая четверть
треугольник, гипотенуза которого имеет уравнение вида y=2x+8
(yleq 2x+8) land (x leq 0) land (y geq 0)

В программе эти три области следует объединить по "или".
Можно сделать упрощение, заметив, что выражения для 1-й и 3-й четвертей отличаются лишь противоположными знаками координат, причем обе координаты одного знака, следовательно их произведение неотрицательно:
(x^2+y^2 geq 4^2) land (x^2+y^2 leq 8^2) land (xy geq 0)

var
  x, y: real;
  f: boolean;

begin
  Write('Введите координаты точки (x,y): '); Readln(x, y);
  f := ((sqr(x) + sqr(y)) >= 16) and ((sqr(x) + sqr(y)) <= 64) and (x * y >= 0);
  f := f or (y <= 2 * x + 8) and (x <= 0) and (y >= 0);
  Writeln(f)
end.

Тестовое решение:
Введите координаты точки (x,y): 1.57 3.93
True





Автор ответа: Дигидроортоборат
0
Большое спасибо)
Автор ответа: Аноним
0
Пожалуйста
Похожие вопросы
Предмет: Математика, автор: Аноним
Предмет: Геометрия, автор: sw1705