Показать сообщение отдельно
  #10  
Старый 16.09.2011, 03:45
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

А не слишком сложно (в смысле записи, понимать такое условие тяжело)?
Код:
function IsValid(x,y : Extended) : Boolean;
begin
  Result := (sqr(x) + sqr(y) < 9); // внутири окружности
  If Result Then
    Begin
      If x < 3 
        Then Result := (y < -1 * x -3) // Первая область
        Else
          If x < 1.5
             Then Result := (y < x) // Вторя область
             Else
                If x < 1 
                  Then Result := (y < x -3); // Третья область
  // Четвертая область - просто в окружности, условие выше.
end;

Согласен, так длиннее, зато понятнее.
Кстати, точки границ областей можно и из уравнений высчитать. Просто в этих заданиях они простые, так что можно и на глаз посчитать.
Ответить с цитированием