Пересечение отрезков (2 уровень)

Условие:
Даны координаты начала и конца двух отрезков в декартовой системе координат. Надо вычислить пересекаются эти отрезки или нет.
Входные данные - текстовый файл otrezki1.txt, имеет такую структуру: четыре строки, в каждой из которых координаты (x,y) начала или конца отрезка.
1 строка - координаты начала первого отрезка
2 строка - координаты конца первого отрезка
3 строка - координаты начала второго отрезка
4 строка - координаты конца второго отрезка
Выходные данные - текстовый файл otrezki2.txt, в котором написан "+", если отрезки пересекаются, и "-", если не пересекаются.

Решение:
var
f,f1:text;
x1,x2,x3,x4,y1,y2,y3,y4,z1,z2:integer;
intercept:boolean;
begin
assign(f,'otrezki1.txt');
assign(f1,'otrezki2.txt');
reset(f);
read(f,x1);
readln(f,y1);
read(f,x2);
readln(f,y2);
read(f,x3);
readln(f,y3);
read(f,x4);
readln(f,y4);
z1:=(x3-x1)*(y2-y1)-(y3-y1)*(x2-x1);
z2:=(x4-x1)*(y2-y1)-(y4-y1)*(x2-x1);
if z1*z2>0 then intercept:=false else intercept:=true;
rewrite(f1);
if intercept=true then writeln(f1,'+');
if intercept=false then writeln(f1,'-');
close(f);
close(f1);
end.