Помогите сделать программу, молю!!!

0 голосов
17 просмотров

Помогите сделать программу, молю!!!


image

Информатика (75 баллов) | 17 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

1. В подобных задачах главное - правильно составить ограничения на область и это задача из области математики.
Область ограничена тремя линиями - двумя прямыми и частью окружности.
Для тех, кто плохо понимает графики, есть простое правило:
"Eсли область находится выше или правее, то y > x, иначе y < x"

a) Область правее оси y дает условие x > 0.
б) Область выше наклонной прямой дает условие y > x-6
Откуда х-6 появилось? Из уравнения этой линии y=x-6. Как найти?
Прямая проходит через две точки: A(0;-6) и B(6;0).
Общий вид уравнения прямой, проходящей через две точки:
\displaystyle \frac{x-x_a}{x_b-x_a}= \frac{y-y_a}{y_b-y_a}; \quad \frac{x-0}{6-0}= \frac{y-(-6)}{0-(-6)}; \quad \frac{x}{6}= \frac{y+6}{6}; \\ \\ 
x=y+6 \to y=x-6
в) Уравнение окружности радиуса r с центом в начале координат имеет вид x² + y² = r², а точки внутри круга описываются условием
x² + y² < r². В нашем случае x² + y² < 36

Объединяем все три условия по "И": x>0 ∩ y>x-6 ∩ x²+y²<36</u>

И только теперь составляем программу.

// PascalABC.NET 3.3, сборка 1627 от 27.01.2018
// Внимание! Если программа не работает, обновите версию!

begin
  var (x,y):=ReadReal2('Введите через пробел координаты точки:');
  Writeln((x>0) and (y>x-6) and (x*x+y*y<36))<br>end.

Пример
Введите через пробел координаты точки: 3 2.1
True

(150k баллов)
0 голосов

Var x,y : real;
begin
write('x = '); readln(x);
write('y = '); readln(y);
if (x>=0)and((y>=0)and(x*x+y*y<=6*6)or(y<0)and(y>=x-6))
  then writeln('Да')
  else writeln('Нет')
end.

Пример:
x = 4
y = -4
Нет

(194k баллов)