Пересечение отрезков (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. |