• Предмет: Информатика
  • Автор: TequilaSunrise
  • Вопрос задан 1 год назад

помогите, пожалуйста, буду очень благодарна (pascal)

Приложения:

Ответы

Ответ дал: Аноним
1
Очень многое проясняет картинка.
Площадь (на рисунке она заштрихована) вычисляется как
S = [ min(x₂,x₄) - max(x₁,x₃) ] × min(y₁,y₃)
Очевидно, что если площадь равна нулю или отрицательна, то прямоугольники не пересекаются, и это избавляет нас от разных глупых предварительных проверок со сложными условиями.

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

begin
  var (x1,y1):=ReadReal2('x1 и y1:');
  var x2:=ReadReal('x2:');
  var (x3,y3):=ReadReal2('x3 и y3:');
  var x4:=ReadReal('x4:');
  var s:=(Min(x2,x4)-Max(x1,x3))*Min(y1,y3);
  if s>0 then Writeln('Площадь равна ',s)
  else Writeln('Прямоугольники не пересекаются')
end.

Пример
x1 и y1: -5 7
x2: 4
x3 и y3: -6.2 3.8
x4: 9.1
Площадь равна 34.2
Приложения:

TequilaSunrise: спасибо огромное! ❤️
Аноним: Пожалуйста
Вас заинтересует