MemCalc is a simple program that employs a dynamic computational engine to perform complex mathematical operations.
The MemCalc Window
The Memory section consists of two rows of six boxes each. These boxes are used to store information that can be used in an formula.
How MemCalc Works
The user types a formula or equation into the Equation box and clicks the Compute button. The Equation box content is then sent to the computing engine and the answer is sent to the Results box.
There are twelve user memories provided that can be used within formulas. Double-clicking a memory box gets the contents of the Results box into the selected memory box The 12 memories referenced as mem1 through mem12 in formulas. Result values are copied to system clipboard.
The MemCalc compute function has the syntax: Expression;[FormatString].
Example: the equation line: 1 + 2 ;$##0.#0 displays $3.00
Example formula: (1 + mem1) /2 + mem2 + (mem4 * 16)
Example formula: (mem1 * mem2) - ((mem1 * mem2) * mem3)
Actual compute line: (mem6 * mem1) - ((mem6 * mem1) * 0mem4) - ((mem6 * mem1) * 0mem5)
Actual DB names: (sellprice * no) - ((sellprice * no) * 0tax) - ((sellprice * no) * 0discount)
Actual values: (4.50 * 1) - ((4.50 * 1) * 0.075) - ((4.50 * 1) * 0.08)
Computing Function
The computing function of MemCalc accepts takes an expression of any length and complexity.
Decimal values such .98, .007 etc. MUST have a leading units zero as in: 0.98, 0.007 or 0mem1, 0mem2.
The compute function syntax: expression;[format string].
Sample Expressions
Actual data: (4.50 * 1) - ((4.50 * 1) * 0.075) - ((4.50 * 1) * 0.08) Data Names: (sellprice * no) - (0tax * (sellprice * no)) - (0discount * (sellprice * no)) Variables : (mem6 * mem1) - ((mem6 * mem1) * 0mem4) - ((mem6 * mem1) * 0mem5)
Functions Derived Non Math
ABS = Abs(Arg)
ATN = Atn(Arg)
COS = Cos(Arg)
EXP = Exp(Arg)
FIX = Fix(Arg)
INT = Int(Arg)
LOG = Log(Arg)
RND = Rnd(Arg)
SGN = Sgn(Arg)
SIN = Sin(Arg)
SQR = Sqr(Arg)
TAN = Tan(Arg)
SEC = 1 / Cos(Arg)
COSEC = 1 / Sin(Arg)
COTAN = 1 / Tan(Arg)
ARCSIN = Atn(Arg / Sqr(-Arg * Arg + 1))
ARCCOS = Atn(-Arg / Sqr(-Arg * Arg + 1)) + 2 * Atn(1)
ARCSEC = Atn(Arg / Sqr(Arg * Arg - 1)) + Sgn(Arg - 1) * (2 * Atn(1))
ARCCOSEC = Atn(Arg / Sqr(Arg * Arg - 1)) + (Sgn(Arg) - 1) * (2 * Atn(1))
ARCCOTAN = Atn(Arg) + 2 * Atn(1)
HSIN = (Exp(Arg) - Exp(-Arg)) / 2
HCOS = (Exp(Arg) + Exp(-Arg)) / 2
HTAN = (Exp(Arg) - Exp(-Arg)) / (Exp(Arg) + Exp(-Arg))
HSEC = 2 / (Exp(Arg) + Exp(-Arg))
HCOSEC = 2 / (Exp(Arg) - Exp(-Arg))
HCOTAN = (Exp(Arg) + Exp(-Arg)) / (Exp(Arg) - Exp(-Arg))
HARCSIN = Log(Arg + Sqr(Arg * Arg + 1))
HARCCOS = Log(Arg + Sqr(Arg * Arg - 1))
HARCTAN = Log((1 + Arg) / (1 - Arg)) / 2
HARCSEC = Log((Sqr(-Arg * Arg + 1) + 1) / Arg)
HARCCOSEC = Log((Sgn(Arg) * Sqr(Arg * Arg + 1) + 1) / Arg)
HARCCOTAN = Log((Arg + 1) / (Arg - 1)) / 2
TIMER = Timer
YEAR = Year(Now)
MONTH = Month(Now)
DAY = Day(Now)
WEEKDAY = Weekday(Now)
HOUR = Hour(Time)
MINUTE = Minute(Time)
SECOND = Second(Time)
Copyright © 1982-2015, Phoenix Information Systems/TM all rights reserved
Contact: Fred Pierce, makpiya@aol.com, makpiya@gmail.com, 831.240.9969