Type
      Range=RECORD
             G_max, G_min, P_max, P_min,
             N_max, N_min: real;
             END;
     Headkom=RECORD
             kv,
             kt :byte;
             R_C:Range;
             END;
       Tochka=RECORD
              gv,
              pv,
              sv: array[0..20] of real;
              END;
       Vvetka=RECORD
             nv:  real;
             vv: Tochka;
             END;
       MasXar= array[0..20] of Vvetka;

  ComDataPtr = ^ComDataType;
  ComDataType = Object(tSpecialObject)
    adxar: MasXar;
    adhead: Headkom;
    name_xar: namestr;
    Gopr,nopr,Gzpr,pikz,kpdz,nzpr,piko,kpdo,{Fcm1,Fcm2 ,
    SigQo,Gto,Tko,Tbxo, Fckpo,} fk2, fk1 : Real;

    n: array[0..22] of real;
    g:array[0..22,0..30] of real;
    p:array[0..22,0..30] of real;
    v:array[0..22,0..30] of real;
    Procedure ReadKom(fl:namestr; tipx:byte;
                    var ierr:byte);
    PROCEDURE Otkpd(nn,gg:real; var kpd:real);
    PROCEDURE Oblast(x,y:real; var z:byte);
    PROCEDURE Xap_n_G(tipx:byte;
                      xar_name:namestr;
                      nn,            (* обороты *)
                      gg:real;       (* расход *)
                      var pp,        (* искомое Pik *)
                      vichkpd, (* искомое kpd *)
                      dKy:real;
                      var osh:byte);
       (* ошибка =1 -такая n не соответствует этой хар-ке*)

    PROCEDURE Xap_G_Pik( tipx:byte;
                         xar_name:namestr;
                         x,            (* расход *)
                         y:real;       (* Pik *)
                         var nnov,     (* обороты *)
                         vichkpd, (* искомое kpd *)
                         dKy:real;
                         var osh:byte);
(* ошибка =1 -G не соответствует n=2 -точка не принадлежит области*)
    Constructor Load(var S : TStream);
    Procedure Store(var S : TStream); virtual;
    Procedure GrafKomp(numwin,nknr:byte);    { рисование компрессора }
    Procedure GTamN(x,y : Real; VAR ix,iy : Integer;
                                 VAR tam : Boolean);
    Procedure GUnDotN(i,j : Integer; Var x,y : Real);

  End;
