Если прямые пересекаются и образуют треугольник, тогда найти его площадь - Free Pascal
Формулировка задачи:
Три прямые заданы на плоскости уравнениями Ax+By=C.Если эти прямые пересекаются и образуют треугольник,тогда найти его площадь.(Решить задачу,включив требуемые процедуры и функции в состав модуля Unit.).
Помогите пожалуйста найти ошибки.
Программа:
1.Program n_73;
2.uses n_72;
3.var a,b,c: prm;
4. m12,m13,m23:tch;
5. s:real;
6.begin
7. vvod(a,1);
8. vvod(b,2);
9. vvod(c,3);
10. if not Prov(a,b) or not Prov(a,c) or not Prov(b,c) then
11. write('прямые попарно не пересекаются')
12. else
13. begin
14. if Prov(a,b) or Prov(a,c) or Prov(b,c) then
15. peres2(a,b,m12);
16. peres2(a,c,m13);
17. peres2(b,c,m23);
18. writeln('точка пересечения 1-2,',m12x:5:2,',m12y:5:2');
19. writeln('точка пересечения 1-3,',m13x:5:2,',m13y:5:2');
20. writeln('точка пересечения 2-3,',m23x:5:2,',m23y:5:2');
21. S:=(abc*(m12x*(m23y-m13y)+m23x*(m13y-m12y)+m12x*(m13y-m23y)))/2;
22. end;
23. readln
24.end.
Модуль:
1.unit_72;
2.interface
3.type prm=record
4. a,b,c:real;
5.end;
6.type tch=record
7. x,y:real;
8.end;
9.procedure peres2(a,b: prm; var t:tch);
10.function Prov(a,b: prm):boolean;
11.procedure vvod(var a: prm; k:type);
12.implementation
13.procedure peres2(a,b: prm: var t:tch);
14.begin
15. t.x:=(b.c*a.c-a.c*b.b)/(a.a*b.b-a.b*b.a);
16. t.y:=(b.a*a.c-a.a*b.c)/(a.a*b.b-a.b*b.a);
17.end;
18.function Prov(a,b: prm):boolean;
19.begin
20. Prov:=(a.a*b.b-a.b*b.a)<>0;
21.end;
22.procedure vvod(var a: prm; k:byte);
23.begin
24. repeat
25. writeln('введите коэффициент прямой',k);
26. readln(a.a,a.b,a.c);
27. if (a.a=0) and (a.b=0) then
28. writeln('это не прямая')
29. until(a.a<>0) or (a.b<>0);
30. a.c=-a.c;
31.end;
32.end.
Решение задачи: «Если прямые пересекаются и образуют треугольник, тогда найти его площадь»
textual
Листинг программы
[PASCAL][/PASCAL]
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д