📄 calculator.h
字号:
// $Id: calculator.h,v 1.3 2002/12/17 15:31:55 gerhard Exp gerhard $// Define Errornumbers to make it easier to find typos in formulas#include <stdio.h>#define ERR_NOERROR 0#define ERR_NOBRACKET 1 #define ERR_BRACKETMIS 2#define ERR_PREEND 3#define ERR_TOOMUCH 4#define ERR_NOARG 5#define ERR_UNKNOWN 6#define ERR_ILLEGAL 7#define ERR_FPARAM 8#define ERR_DIVZERO 9#define ERR_DOMAIN 10#define ERR_FKTANZ 11#define ERR_PARANZ 12#ifdef _CALCULATOR_char *calculator_errtxt[] = { "( missing!", "no function arg", "unexpected EOL", "too much param", "no arguments", "unknown function", "illegal character", "no function param", "division by zero", "domain", "no mem for funtion", "number of param" };#else extern char *calculator_errtxt[];#endif#define CALCULATOR_HISTORY 50#define CALCULATOR_VARS 100#define CALCULATOR_FKT 50#define CALCULATOR_FHISTORY 100// Variables Definitions for Calculator Subroutinestypedef struct { char *Name; // Name of the Variable double Valu; // Calculated Value int Ref; // Latest Refernece } CALCVAR;// Function Definition typedef struct { char *Name; // Name of Function char *Def; // Formula of Function CALCVAR Var[CALCULATOR_VARS]; // up to 100 local variables int Vars; // variables count double last; // last calculated value int RefCnt; // latest Reference} CALCFKT;#ifdef _CALCULATOR_ // List of user-defined functions; CALCFKT CalculatorFkt[CALCULATOR_FKT]; // the first entry is used for the // formula analysis and not used // for function definitions int CalculatorFktAnz = 0; // current number of functions double CalculatorHistory[CALCULATOR_HISTORY]; // result history int CalculatorHistCnt = 0; // number of entries in result history int CalculatorError = 0; // last Error int CalculatorLevel = 0; // nesting level double CalculatorZero = 0.; // predefined Zero-Value double CalculatorRes = 0.; // last result for function ANS int CalculatorRad = 1; // Flag for RAD/DEG in trig. functions int CalculatorFmt = 1; // Flag for format of resultdisplay int CalculatorAutoAns = 1; int CalculatorAutoHighlight = 1; double CalculatorPI = 3.141592653589793; char *CalculatorCmdHistory[CALCULATOR_FHISTORY]; int CalculatorCmdHistoryAnz; // ehem ihist int CalculatorCmdCurhist;#else extern CALCFKT CalculatorFkt[CALCULATOR_FKT]; extern int CalculatorFktAnz; extern double CalculatorHistory[CALCULATOR_HISTORY]; extern int CalculatorHistCnt; extern int CalculatorError; extern int CalculatorLevel; extern double CalculatorZero; extern double CalculatorRes; extern int CalculatorRad; extern int CalculatorFmt; extern int CalculatorAutoAns; extern int CalculatorAutoHighlight; extern double CalculatorPI; extern char *CalculatorCmdHistory[CALCULATOR_FHISTORY]; extern int CalculatorCmdHistoryAnz; // ehem ihist extern int CalculatorCmdCurhist;#endifvoidInsertVariable(char *name, double var);doubleCalculateFkt(char *text, int *end, CALCFKT *cal);double Calculator(char *formel, CALCFKT *cal);doubleCalculate_Formula (char *formula);voidWriteHistory (FILE *config);voidReadHistory (FILE *config);// Local Variables: ***// mode:c++ ***// End: ***
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -