What is it:
Qmcalc is a multi-function, multi-memory, programmable scientific calculator.
with about the same capabilities of a Ti-82 Graphic Scientific Calculator
minus a few unimplemented features, but also a few extras not included
with the original Ti-82 graphic calculator.
What does it do:
Programmable graphic scientific calculator. Include functions for:
trigonometry, logarithms, base conversions, statistics, combinatronics,
fraction arithmetic, bit wise logic, Basic programming, and calculus.
How to use it:
SYNTAX:
For text mode operation: mcalc [math expression] | [-i <input
filename>][-o <output filename>]
For GUI mode operation: qmcalc
- [math expression] is any valid mathematical expression containing numeric
values, arithmetic operators, brackets, function calls, commands, program
execution calls, variable names, constant names or string literals.
brackets: {, }, [, ], (, )
function calls: Sin, Tan, Cos, Arcsin, Arctan, Arccos, Sinh, Cosh, Tanh, Sqr,
Sqrt, Cube, Cubert, Exp, Log, Log10, Ceil, Floor, Abs, FracPart, IntPart, Rnd,
Comb, Perm, CombRep, PermRep, ItemPerm, ItemComb, ItemPermRep, ItemCombRep,
Min, Max, Deriv, Deriv2, Integ, Rand, Inv, Solve, Intersect, Fmin, Fmax, MatSolve,
Round, Frac, ToHex, ToOct, ToBin, ToCmp2Bin, FromHex, FromOct, FromBin, FromCmp2Bin,
PolToRecX, PolToRecY, RecToPolR, RecToPolA, Sum, Prod, AvgMean, AvgMed,
AvgMode, StdDev arithmetic operators: =, +=, -=, *=, /=, @=, Not, And, Or, Xor,
<, >, <=, >=, ==, !=, +, -, *, /, @, ^, %, Fact, E
commands: Show, Eval, Precision, GetPrecision, Mode, DumpVars, GraphAllPts, SetRecur, Help
program execution calls: exec <program name>
variable names: $A ... $Z, ANS, ANSSTR, FRACANS
constant names: PI, E
string literals: "hello", "world"
numeric values: 10, -3, 450.231, 4.52e3, 4527.5e-3 (e for scientific notation)
Variables from $A through $Z can also be used to store results from math
operations. The information stored in these variables can be later used in
place of numeric values in a math expression, in which case the value currently
stored in the variable location will be substituted into the math expression
before the evaluation of the expression takes place. In addition to numeric
values these variables can also store string values such as "hello
world" or "$B^2". Concatenation of strings can be performed
using the append operator +=, so if $A currently contains "x^2 +
2*x", $A += " + 4" would set $A to contain "x^2 + 2*x +
4". String comparisons between different string variables can be performed
using the comparison operators ==, !=, <=, >=, <, >. Literal
strings like "hello" must first be put into string variables before
the string comparison operators can be used. The contents stored within string
variables can be evaluated as a mathematical expression by using the EVAL
command. For example: the variable $A can contain the string "$B^2"
and the command EVAL($A) would give the result of the contents currently stored
in the variable $B squared.
Also, variable assignments can accept pasted text from the desktop environment
clipboard. The evaluated results will be stored in the variable or the
pasted expression can be stored in the variable in the form of a string
(enclosed in " ") that can be evaluated later using the EVAL
command.
Note: to avoid infinite recursion which will stall the program, evaluation of
variables names within string variables will by default be evaluated up to 26
levels deep. This means that you can nest variable names such as $B within
another variable like $A and continue on with another variable name nested
within $B and so on, up to 26 levels deep of nesting. The program will simply
refuse to process expressions that nest variables more than the set recursion
limit and display an error message. To increase or decrease the recursion
limit, use the command "Set Recur=" with the desired limit placed
after the equal sign.
Note: hexadecimal and octal based arithmetic can also be performed. All
hexadecimal and octal input values must be integers only. Note when entering
hexadecimal values a "0x" prefix must be entered before the actual
hex digits. When entering octal values a "0" prefix must be entered
before the actual octal digits. To avoid confusion and unnecessary complexity
when processing math expressions, hexadecimal and octal values are only valid
for the following functions, variables, constants and operators:
Entering "quit" from the interactive prompt will stop the programn
This help message will be displayed by entering "help" on the
program's interactive prompt or by specifying --help as an argument on the
shell command line.
Function specific help will be displayed by entering "help" <name
of function> on the shell command line. For example: "help deriv"
will display a help screen specific to the derivative command. Functions that
do not have specific help screens are simple and self explanatory from the
general help screen. Help documentation can be accessed in graphics mode by
clicking on the help button on the calculator interface. Function specific help
can be accessed in graphics mode by clicking on the link for each calculator
command.
different angle units can be specified by entering: mode=radian or mode=degree
different precision units can be specified by entering: precision=float,
precision=double, precision=longdouble or precision=longnum
Each precision unit: float, double, long double, long number is actually an
individual calculator and each calculator has its own set of 26 letter
variables for DECIMAL value storage, excluding string variables which are
shared globally. By default all variables of a calculator are transferred over
to the new calculator after a precision unit change.
Alternatively you can choose not to do this and have each calculator preserve
its own set of decimal variables by specifying ",keepvars" after the
precision unit name in the precision command. example:
precision=longnum,keepvars which will skip tranferring variables from the
previous calculator to the long number calculator.
Warning: when you use base conversion commands: ToHex, ToOct, ToBin,
ToCmp2Bin, FromHex, FromOct, FromBin, FromCmp2Bin
any assignment to variables: $A...$Z will assign to the long number calculator
variables as well as the variables in the currently used calculator
The arguments to the program can be entered directly from the command line or from an input file. Alternatively mcalc can be run interactively by typing mcalc on the command line without any arguments. While in interactive mode command line continuation for long commands which spans more than one line can be accomplished by entering the back slash character "\\" at the end of a line. The continuation character is not required in graphics mode and commands may span multiple lines with the "Enter" key pressed to indicate the end of a command. Pre-written calculator program files can also be loaded and executed either interactively or from an input file enter "help exec" for more information on writing and running calculator programs.
When entering from an input file enter the name of the input file after the program name and "-i". Each line of the input file should contain the same arguments that you would normally type from the command line to perform the calculation.
Length unit conversions | lencon.prg |
Area unit conversions | areacon.prg |
Volume unit conversions | volcon.prg |
Weight unit conversions | wgtcon.prg |
Power unit conversions | powcon.prg |
Energy unit conversions | energycon.prg |
Angle unit conversions | anglecon.prg |
Temperature unit conversions | tempcon.prg |
To determine the area of common plane figures execute | area.prg |
To determine the surface area and volume of common shapes execute | volume.prg |
sample.prg | program for testing general calculator operations. |
sample2.prg | test program file called from within sample.prg. |
dice.prg | program for playing a simple game of dice. |
pyth.prg | program to determine the length of the hypotenuse of a right angle triangle using the Pythagorean theorem. |
loan.prg | sample loan calculation program with function graph output. graphics output can only be shown on GUI mode calculator. |
calcinteg.prg | program to calculate an approximation of an integral by using Taylor polynomials. |
statdata.dat | Statistics data file for testing file input on calculator statistics functions. |
testcalc.in | Calculator test data input file for testing all operations of the calculator. |
For further details you can download the Qmcalc calculator program and browse through the documentation by clicking on the help button located on the calculator panel. Documentation for all calculator functions and calculator programming commands are covered.