COOL CALCULATOR 1.3 afd ======================= The Cool Calculator V 1.3 afd is a simple business calculator in which you can either type your expressions (including use of parentheses) are build them by clicking on a collection of buttons (1, 2, 3, 4, 5, 6, 7, 8, 9, 0, (, ), *, +, -, /, =). Pysically it is a simple interface (Delphi Form) to an expression evaluation engine originally written by James L. Dean in 1985, and overhauled and enhanced by David J. Firth in 1991. We have not surfaced all the functionality of David's program, but it is not difficult to do so, if you are so inclined. Things left unsurfaced are: ABS, ARCTAN, COS, EXP, LN, SQR, SQRT, and PI functions, along with the ability to use variables. The code for David J. Wirth's version of the evaluation engine and his additional RPN evaluation engine can be found on the Delphi forum on CompuServe in the file called EEV10.ZIP. In extending the Cool Calculator are using the calculation engine in your programs you will want to download that file. We have included some of David's information about his program below. NOTE: Be advised we created Cool Calculator just for kicks and did it in under 2 hours, and because we had no real application in mind when doing it, we haven't tested it thoroughly. However, we're willing to try and answer any questions you send our way. Cool Calculator is a product from the Pie Right software family offered by abc Systems of Bridgeport, CT. Any questions call Des Nolan (203) 373-1021. EEV10.ZIP ========= Expression Evaluator Toolkit V1.00 Revision 0 These files provide you with a complete API for 2 mathematical expression evaluators. One is written to evaluate infix (algebraic) expressions. The other is written to evaluate postfix (RPN) expressions. INFIX.PAS is based upon a program called CALC.PAS by James L. Dean of New Orleans, LA. His program, dated 1985, provided the complete recursive descent infix expression evaluator. CALC.PAS was downloaded from CIS and had no copyright notice of any kind. Because of the lack of any copyright, I assume that I can write a derivitive work. I added the variables support and organized the code for use with TP5 or higher. His name, address, and original comments (very few) have been competely preserved in the source and my documentation file. ------------------------------------------------------------------ INFIX.PAS Note: We at abc Systems had to rename all the "result" vars in the INFIX.PAS program to get it to compile under Delphi as RESULT is a key word in Delphi. However, we didn't have to do anything else. ------------------------------------------------------------------ This unit uses recursive descent to evaluate expressions written in infix notation. The operations addition (+), subtraction (-), multiplication (*), and division (/) are supported, as are the functions ABS, ARCTAN, COS, EXP, LN, SQR, and SQRT. PI returns the value for pi. Results exceeding 1.0E37 are reported as overflows. Results less than 1.0E-37 are set to zero. Written by: James L. Dean 406 40th Street New Orleans, LA 70124 February 25, 1985 Modified by: David J. Firth 5665-A2 Parkville St. Columbus, OH 43229 December 26, 1991 This code was originally written as a stand-alone program using standard Pascal. In that form the program wasn't very useful. I have taken the code and reorganized it for use with Turbo Pascal versions 5.x or 6.0. I have added six procedures to this code for use as an API (application program interface). Those six routines are described in this file. In addition, I have reworked it to support variables by adding a preprocessor. The variables are preceded and followed by a @ symbol, are case sensitive, and must be less than 20 characters long (including the 2 @s). For example, the following would all be valid variables: