pravtr.PAS

{* Правильные треугольники *}

Unit PRAVTR;
Interface
Implementation
Begin
 writeln('Координаты точек правильных треугольников');
End.

Program pas45629;

Uses pravtr.pas; {* Эту строку можно удалить *}
Uses wincrt; {* Подключение модулей *}
Var {* В работе нам потребуются переменные: *}
  a  : real;
  b  : real;
  l  : real;
  k  : real;
  k1 : real;
  k2 : real;
  k3 : real;
  x1 : real;
  x2 : real;
  y1 : real;
  y2 : real;
  x  : real;
  y  : real;
  xd : real;
  yd : real;
Begin
  readln(x1, y1);
  readln(x2, y2);
  a := (x1 + x2) / 2;
  b := (y1 + y2) / 2;
  If x1x2 Then
    k := (y1 - y2) / (x1 - x2)
  Else k := 1;
    If k0 Then
      k1 := - 1 / k
    Else k1 := 1;
      k2 := (k + sqrt(3)) / ( - sqrt(3) * k + 1);
  k3 := (k - sqrt(3)) / (sqrt(3) * k + 1);
  x := (y1 - k2 * x1 + k1 * a - b) / (k1 - k2);
  y := b + k1 * x - k1 * a;
  xd := (y1 - k3 * x1 + k1 * a - b) / (k1 - k3);
  yd := b + k1 * xd - k1 * a;
  writeln('C: ', x : 5 : 3, ' ', y : 5 : 3);
  writeln('D: ', xd : 5 : 3, ' ', yd : 5 : 3);
End.