📄 formulaf.pas
字号:
(*
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 + -