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

📄 formulaf.pas

📁 ArtFormula package contains two nonvisual Delphi component for symbolic expression parsing and evalu
💻 PAS
📖 第 1 页 / 共 2 页
字号:
(*
This unit is part of TArtFormula package.
See formula.pas for notes, License and disclaimer agreement.

(c) Artem V. Parlyuk, e-mail:artsoft@nm.ru, http://artsoft.nm.ru
*)

unit formulaf;

interface

uses formula;

function mysin(var Calc : TFormulaCalc):TCalcItem;
function mycos(var Calc : TFormulaCalc):TCalcItem;
function mytan(var Calc : TFormulaCalc):TCalcItem;
function mylog(var Calc : TFormulaCalc):TCalcItem;
function mylg(var Calc : TFormulaCalc):TCalcItem;
function myexp(var Calc : TFormulaCalc):TCalcItem;
function mysqrt(var Calc : TFormulaCalc):TCalcItem;
function myint(var Calc : TFormulaCalc):TCalcItem;
function myfrac(var Calc : TFormulaCalc):TCalcItem;
function myabs(var Calc : TFormulaCalc):TCalcItem;
function myatan(var Calc : TFormulaCalc):TCalcItem;
function myasin(var Calc : TFormulaCalc):TCalcItem;
function myacos(var Calc : TFormulaCalc):TCalcItem;
function myasinh(var Calc : TFormulaCalc):TCalcItem;
function myacosh(var Calc : TFormulaCalc):TCalcItem;
function myatanh(var Calc : TFormulaCalc):TCalcItem;
function mysinh(var Calc : TFormulaCalc):TCalcItem;
function mycosh(var Calc : TFormulaCalc):TCalcItem;
function mytanh(var Calc : TFormulaCalc):TCalcItem;
function mymax(var Calc : TFormulaCalc):TCalcItem;
function mymin(var Calc : TFormulaCalc):TCalcItem;
function myiff(var Calc : TFormulaCalc):TCalcItem;
function mysign(var Calc : TFormulaCalc):TCalcItem;
function mysum(var Calc : TFormulaCalc):TCalcItem;
function mysumofsquares(var Calc : TFormulaCalc):TCalcItem;
function mycount(var Calc : TFormulaCalc):TCalcItem;
function myvariance(var Calc : TFormulaCalc):TCalcItem;
function myvarp(var Calc : TFormulaCalc):TCalcItem;
function mystddevp(var Calc : TFormulaCalc):TCalcItem;
function mystddev(var Calc : TFormulaCalc):TCalcItem;
function myavg(var Calc : TFormulaCalc):TCalcItem;
function myrnd(var Calc : TFormulaCalc):TCalcItem;
function myrandomize(var Calc : TFormulaCalc):TCalcItem;
function mychr(var Calc : TFormulaCalc):TCalcItem;
function myinput(var Calc : TFormulaCalc):TCalcItem;
function mylength(var Calc : TFormulaCalc):TCalcItem;
function mytrim(var Calc : TFormulaCalc):TCalcItem;
function mytrimleft(var Calc : TFormulaCalc):TCalcItem;
function mytrimright(var Calc : TFormulaCalc):TCalcItem;
function myuppercase(var Calc : TFormulaCalc):TCalcItem;
function mylowercase(var Calc : TFormulaCalc):TCalcItem;
function mymidstr(var Calc : TFormulaCalc):TCalcItem;
function myleftstr(var Calc : TFormulaCalc):TCalcItem;
function myrightstr(var Calc : TFormulaCalc):TCalcItem;
function mypos(var Calc : TFormulaCalc):TCalcItem;
function mydate(var Calc : TFormulaCalc):TCalcItem;
function mynow(var Calc : TFormulaCalc):TCalcItem;
function myweek(var Calc : TFormulaCalc):TCalcItem;
function myyear(var Calc : TFormulaCalc):TCalcItem;
function mymonth(var Calc : TFormulaCalc):TCalcItem;
function myday(var Calc : TFormulaCalc):TCalcItem;
function myhour(var Calc : TFormulaCalc):TCalcItem;
function myminute(var Calc : TFormulaCalc):TCalcItem;
function mysecond(var Calc : TFormulaCalc):TCalcItem;
function mymillisecond(var Calc : TFormulaCalc):TCalcItem;
function myleapyear(var Calc : TFormulaCalc):TCalcItem;
function myencodedate(var Calc : TFormulaCalc):TCalcItem;
function myformat(var Calc : TFormulaCalc):TCalcItem;
function myformatf(var Calc : TFormulaCalc):TCalcItem;
function myformatdate(var Calc : TFormulaCalc):TCalcItem;
function myisnumber(var Calc : TFormulaCalc):TCalcItem;
function mymsg(var Calc : TFormulaCalc):TCalcItem;
function mycode(var Calc : TFormulaCalc):TCalcItem;
function mystring(var Calc : TFormulaCalc):TCalcItem;
function myset(var Calc : TFormulaCalc):TCalcItem;
function myvar(var Calc : TFormulaCalc):TCalcItem;
function myvars(var Calc : TFormulaCalc):TCalcItem;
function myval(var Calc : TFormulaCalc):TCalcItem;
function myblock(var Calc : TFormulaCalc):TCalcItem;
function myinc(var Calc : TFormulaCalc):TCalcItem;
function mydec(var Calc : TFormulaCalc):TCalcItem;
function myconcat(var Calc : TFormulaCalc):TCalcItem;
//function my(var Calc : TFormulaCalc):TCalcItem;

implementation

uses math, dialogs,sysutils,forms, dateutils;

function mysin(var Calc : TFormulaCalc):TCalcItem;
begin
 setN(result,sin(Calc.TopN));
end;

function mycos(var Calc : TFormulaCalc):TCalcItem;
begin
 setN(result, cos(Calc.TopN));
end;
function mytan(var Calc : TFormulaCalc):TCalcItem;
begin
 setN(result, tan(Calc.TopN));
end;
function mylog(var Calc : TFormulaCalc):TCalcItem;
begin
 setN(result, ln(Calc.TopN));
end;
function mylg(var Calc : TFormulaCalc):TCalcItem;
begin
 setN(result, log10(Calc.TopN));
end;
function myexp(var Calc : TFormulaCalc):TCalcItem;
begin
 setN(result, exp(Calc.TopN));
end;
function mysqrt(var Calc : TFormulaCalc):TCalcItem;
begin
 setN(result, sqrt(Calc.TopN));
end;
function myint(var Calc : TFormulaCalc):TCalcItem;
begin
 setN(result, trunc(Calc.TopN));
end;
function myfrac(var Calc : TFormulaCalc):TCalcItem;
begin
 setN(result, frac(Calc.TopN));
end;
function myatan(var Calc : TFormulaCalc):TCalcItem;
begin
 setN(result, arctan(Calc.TopN));
end;
function myasin(var Calc : TFormulaCalc):TCalcItem;
begin
 setN(result, arcsin(Calc.TopN));
end;
function myacos(var Calc : TFormulaCalc):TCalcItem;
begin
 setN(result, arccos(Calc.TopN));
end;
function myasinh(var Calc : TFormulaCalc):TCalcItem;
begin
 setN(result, arcsinh(Calc.TopN));
end;
function myacosh(var Calc : TFormulaCalc):TCalcItem;
begin
 setN(result, arccosh(Calc.TopN));
end;
function myatanh(var Calc : TFormulaCalc):TCalcItem;
begin
 setN(result, arctanh(Calc.TopN));
end;
function mysinh(var Calc : TFormulaCalc):TCalcItem;
begin
 setN(result, sinh(Calc.TopN));
end;
function mycosh(var Calc : TFormulaCalc):TCalcItem;
begin
 setN(result, cosh(Calc.TopN));
end;
function mytanh(var Calc : TFormulaCalc):TCalcItem;
begin
 setN(result, tanh(Calc.TopN));
end;
function myabs(var Calc : TFormulaCalc):TCalcItem;
begin
 setN(result, abs(Calc.TopN));
end;

function mymax(var Calc : TFormulaCalc):TCalcItem;
var x : TCalcItem;
    res : boolean;
begin
 Calc.Parent.StartGetVars(trunc(Calc.TopN));
 res := Calc.Parent.GetNextVar(x,true);
 result.data := getn(x);
 while res do
 begin
  res := Calc.Parent.GetNextVar(x,true);
  result.data := max(getn(x),result.data);
 end;
end;

function mymin(var Calc : TFormulaCalc):TCalcItem;
var x : TCalcItem;
    res : boolean;
begin
 Calc.Parent.StartGetVars(trunc(Calc.TopN));
 res := Calc.Parent.GetNextVar(x,true);
 result.data := getn(x);
 while res do
 begin
  res := Calc.Parent.GetNextVar(x,true);
  result.data := min(getn(x),result.data);
 end;
end;

function myconcat(var Calc : TFormulaCalc):TCalcItem;
var x : TCalcItem;
    res : boolean;
begin
 Calc.Parent.StartGetVars(trunc(Calc.TopN));
 res := Calc.Parent.GetNextVar(x);

 sets(result,gets(x));
 while res do
 begin
  res := Calc.Parent.GetNextVar(x);
  result.str := gets(x)+result.str;
 end;
end;


function mysum(var Calc : TFormulaCalc):TCalcItem;
var x : TCalcItem;
    res : boolean;
begin
 Calc.Parent.StartGetVars(trunc(Calc.TopN));
 res := Calc.Parent.GetNextVar(x,true);
 result.data := getn(x);
 while res do
 begin
  res := Calc.Parent.GetNextVar(x,true);
  result.data := getn(x)+result.data;
 end;
end;

function mysumofsquares(var Calc : TFormulaCalc):TCalcItem;
var x : TCalcItem;
    res : boolean;
begin
 Calc.Parent.StartGetVars(trunc(Calc.TopN));
 res := Calc.Parent.GetNextVar(x,true);
 result.data := sqr(getn(x));
 while res do
 begin
  res := Calc.Parent.GetNextVar(x,true);
  result.data := sqr(getn(x))+result.data;
 end;
end;

function myavg(var Calc : TFormulaCalc):TCalcItem;
var x : TCalcItem;
    res : boolean;
    cnt:integer;
begin
 cnt := 1;
 Calc.Parent.StartGetVars(trunc(Calc.TopN));
 res := Calc.Parent.GetNextVar(x,true);
 result.data := getn(x);
 while res do
 begin
  res := Calc.Parent.GetNextVar(x,true);
  result.data := getn(x)+result.data;
  inc(cnt);
 end;
 result.data := result.data/cnt;
end;

function mycount(var Calc : TFormulaCalc):TCalcItem;
var x : TCalcItem;
    res : boolean;
    cnt:integer;
begin
 cnt := 0;
 Calc.Parent.StartGetVars(trunc(Calc.TopN));
 res := Calc.Parent.GetNextVar(x);
 if gets(x) <> '' then inc(cnt);
 while res do
 begin
  res := Calc.Parent.GetNextVar(x);
  if gets(x) <> '' then inc(cnt);
 end;
 setN(result, cnt);
end;

function myvariance(var Calc : TFormulaCalc):TCalcItem;
var x : TCalcItem;
    res : boolean;
var cnt:integer;
    s,s2:double;
begin
 cnt := 1;
 Calc.Parent.StartGetVars(trunc(Calc.TopN));
 res := Calc.Parent.GetNextVar(x,true);
 s := getn(x);
 s2 := sqr(s);
 while res do
 begin
  res := Calc.Parent.GetNextVar(x,true);
  s := s + getn(x);
  s2 := s2 + sqr(getn(x));
  inc(cnt);
 end;
 setN(result, (cnt*s2-sqr(s))/(cnt*(cnt-1)));
end;

function myvarp(var Calc : TFormulaCalc):TCalcItem;
var x : TCalcItem;
    res : boolean;
var cnt:integer;
    s,s2:double;

⌨️ 快捷键说明

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