Очень многое проясняет картинка.
Площадь (на рисунке она заштрихована) вычисляется как
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