BBS: Inland Empire Archive Date: 03-13-93 (22:24) Number: 335 From: QUINN TYLER JACKSON Refer#: NONE To: ALL Recvd: NO Subj: formula solver 2/7 Conf: (2) Quik_Bas
'>>> Start of page 2.
' This function can expand factorials:
'
' 3! = 6
' 0! = 1
'
' 3. logical greater than, less than, and equality
'
' 5 > 4 = -1 [TRUE]
' 9 < 1 = 0 [FALSE]
'
' 4. nested parenthesis precedence override
'
' 5*(2+3) = 25 rather than 13
'
' 5. PASCAL style variable assignment (using the ":=" of PASCAL)
'
' variable := 5+3 (assigns the value of 8 to variable)
'
' Note also that variables that have been assigned can be used
' within expressions:
'
' newvariable := 3+variable (assigns 11 to new variable based ' upon
' variable having an assignment of 8)
' So far, variables cannot be reassigned by the same expression they
' occur in. So, the following yeilds a faulty answer:
'
' x := x + 1
'
' 6. and more!
'
' I leave it to you to figure out what 6?9 solves to!
' This FUNCTION can solve complex equations that mix all parts of the
' above! Try it out! Break it to pieces! Smoke it! It's yours!
'
CONST ASSIGNMENT = ":=" ' This can be changed to suit your needs
' Using a simple = is possible, since ' logical
' equality is a double == with this parser,
' but the PASCAL standard := is easier to ' deal
' with as an assignment operator for some.
' Operator classes PRECEDENCE
'---------------------------------------------------
CONST POWER = "^]?**>><<" ' FIRST
CONST MULTDIV = "*/\%" ' SECOND
CONST ADDSUB = "+-" ' THIRD
CONST LOGICAL = "<>=&|~>==><==<<>"' FOURTH
CONST OperatorClass = 1
CONST DigitClass = 2
CONST VARMAX = 100
TYPE VariableType
Nom AS STRING * 30 ' variable name
Valu AS LONG ' variable's value
END TYPE
' Variables global to this module...
DIM SHARED VarMem(VARMAX) AS VariableType
DIM SHARED VariPtr AS INTEGER
DIM SHARED OPERATOR$
DIM SHARED expression$
DIM SHARED TOKEN$
DIM SHARED TypeToken
DIM SHARED Ptr AS INTEGER
'>>> Continued on page 3.
--- Maximus/2 2.01wb
* Origin: The Nibble's Roost, Richmond BC Canada 604-244-8009 (1:153/918)

Books at Amazon:
Back to BASIC: The History, Corruption, and Future of the Language
Hackers: Heroes of the Computer Revolution (including Tiny BASIC)
Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Scientists and Iconoclasts who were the Hero Programmers of the Software Revolution
The Advent of the Algorithm: The Idea that Rules the World
Moths in the Machine: The Power and Perils of Programming
Mastering Visual Basic .NET