⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 p162.dpr

📁 zhy关于acm.sgu.ru的OJ上题目的参考程序。 包含了里面大部分的题目
💻 DPR
字号:
{$A8,B-,C+,D+,E-,F-,G+,H+,I+,J-,K-,L+,M-,N+,O+,P+,Q-,R-,S-,T-,U-,V+,W-,X+,Y+,Z1}
{$MINSTACKSIZE $00004000}
{$MAXSTACKSIZE $00100000}
{$IMAGEBASE $00400000}
{$APPTYPE GUI}
{$R+,Q+,S+}
Const
    InFile     = 'p162.in';
    OutFile    = 'p162.out';

Type
    Tpoint     = record
                     x , y    : extended;
                 end;

Var
    AB , AC , AD ,
    BC , BD , CD ,
    answer     : extended;

procedure init;
begin
//    assign(INPUT , InFile); ReSet(INPUT);
      read(AB , AC , AD , BC , BD , CD);
//    Close(INPUT);
end;

function tri_area(a , b , c : extended) : extended;
var
    p , sqrnum : extended;
begin
    p := (a + b + c) / 2;
    sqrnum := p * (p - a) * (p - b) * (p - c);
    if sqrnum <= 0 then
      tri_area := 0
    else
      tri_area := sqrt(sqrnum);
end;

procedure work;
var
    A , B , C ,
    midpoint   : Tpoint;
    area , H ,
    sqrnum     : extended;
begin
    A.x := 0; A.y := 0; B.x := AB; B.y := 0;
    area := tri_area(AB , AC , BC);
    C.y := area * 2 / B.x; C.x := sqrt(sqr(AC) - sqr(C.y));
    if abs(sqrt(sqr(C.x - B.x) + sqr(C.y - B.y)) - BC) >= 1e-6 then
      C.x := -C.x; 

    midpoint.x := (sqr(B.x) + sqr(AD) - sqr(BD)) / 2 / B.x;
    if abs(C.y) <= 1e-6 then
      midpoint.y := 0
    else
      midpoint.y := (sqr(AD) - sqr(CD) + sqr(C.x) + sqr(C.y) - 2 * midpoint.x * C.x) / 2 / C.y;
    sqrnum := sqr(AD) - sqr(midpoint.x) - sqr(midpoint.y);
    if sqrnum <= 0 then
      H := 0
    else
      H := sqrt(sqrnum);

    answer := H * area / 3;
end;

procedure out;
begin
//    assign(OUTPUT , OutFile); ReWrite(OUTPUT);
      writeln(answer : 0 : 4);
//    Close(OUTPUT);
end;

Begin
    init;
    work;
    out;
End.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -