Загрузка данных


program Variant13;
uses math;

var
  x, y, z: real;
  a, b, under_root, under_root_alt, a_alt: real;
  px1, py1, px2, py2, px3, py3: real;
  d1, d2, d3, eps: real;
  area, height: real;

{ Функция для вычисления расстояния между двумя точками }
function Dist(x1, y1, x2, y2: real): real;
begin
  Dist := sqrt(sqr(x1 - x2) + sqr(y1 - y2));
end;

begin
  writeln('--- Часть 1: Вычисление формул ---');
  { Заданные по условию значения }
  x := 5;
  y := 6;
  z := 7;

  { 1. Вычисление переменной b }
  b := ln(sqr(x) + exp(-3 * sqr(y)) / sqr(sin(y)));
  writeln('b = ', b:0:6);

  { 2. Вычисление переменной a }
  under_root := sqr(cos(z)) / tan(sqr(z));
  
  if under_root < 0 then
  begin
    writeln('a = [Ошибка] Подкоренное выражение отрицательно, так как tg(7^2) < 0.');
    
    { Альтернативный расчет для tg^2(z) на случай опечатки }
    under_root_alt := sqr(cos(z)) / sqr(tan(z));
    a_alt := tan(sqr(x + y) - sqrt(under_root_alt));
    writeln('a (альтернативный расчет с tg^2(z)) = ', a_alt:0:6);
  end
  else
  begin
    a := tan(sqr(x + y) - sqrt(under_root));
    writeln('a = ', a:0:6);
  end;

  writeln;
  writeln('--- Часть 2: Геометрическая задача ---');
  
  { Тестовые координаты (образуют равносторонний треугольник) }
  px1 := 0; py1 := 0;
  px2 := 2; py2 := 0;
  px3 := 1; py3 := sqrt(3);
  
  writeln('Проверка координат: (', px1:0:2, ', ', py1:0:2, '), (', px2:0:2, ', ', py2:0:2, '), (', px3:0:2, ', ', py3:0:2, ')');

  d1 := Dist(px1, py1, px2, py2);
  d2 := Dist(px2, py2, px3, py3);
  d3 := Dist(px1, py1, px3, py3);
  
  { Проверка равенства сторон с учетом погрешности вещественных чисел }
  eps := 1e-5;
  if (abs(d1 - d2) < eps) and (abs(d2 - d3) < eps) then
  begin
    writeln('Точки могут быть вершинами равностороннего треугольника.');
    
    { Формулы площади и высоты через сторону a: S = (sqrt(3)/4)*a^2, h = (sqrt(3)/2)*a }
    area := (sqrt(3) / 4) * sqr(d1);
    height := (sqrt(3) / 2) * d1;
    
    writeln('Площадь (S): ', area:0:4);
    writeln('Длина высоты (h): ', height:0:4);
  end
  else
  begin
    writeln('Точки НЕ могут быть вершинами равностороннего треугольника.');
    writeln('Длины сторон: ', d1:0:4, ', ', d2:0:4, ', ', d3:0:4);
  end;
  
end.