added: a user can change the names of variables or functions now

changed: the program uses TTMath 0.8.0 now
added: functions: from TTMath 0.8.0:        
       DegToDeg(deg, min, sec), DegToRad(deg), DegToRad(deg, min, sec),
       RadToDeg(rad), Ceil(x), Floor(x), Sqrt(x), Sinh(x), Cosh(x),
       Tanh(x) /Tgh(x)/, Coth(x) /Ctgh(x)/
added: a help
changed: from TTMath 0.8.0:
       renamed: CTan()  into Cot()  or Ctg()
       renamed: ACTan() into ACot() or ACtg()
       Factorial() has a history log now (it can remember last
       10 calculated values)
added: a directory 'help' with files of the help
added: a directory 'setup' with files needed to make an installer
       (we're using InnoSetup Compiler to make it)
fixed: the vertical size of the main window when a user uses a different size
       of the window caption (especially under the Windows XP Luna)
fixed: on Windows 9x: the program hung when a user clicks on a control 
       on the first tab (the procedure SetNextFocus(...) has been completely
       rewritten and the flag WS_EX_CONTROLPARENT on the tab dialogs has
       gone away)
fixed: when started navigating from the keyboard the program showed a wrong
       variable or a funtion in the edit dialog


git-svn-id: svn://ttmath.org/publicrep/ttcalc/trunk@28 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
2007-04-02 00:17:26 +00:00
parent fcd7cdbabf
commit b3d2fc5d24
30 changed files with 1285 additions and 305 deletions

View File

@@ -0,0 +1,175 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<title>TTCalc - arithmetic functions</title>
<link rel="stylesheet" href="styles.css" type="text/css">
<object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
<param name="Keyword" value="ln">
<param name="Keyword" value="log">
<param name="Keyword" value="exp">
<param name="Keyword" value="sin">
<param name="Keyword" value="cos">
<param name="Keyword" value="tan">
<param name="Keyword" value="tg">
<param name="Keyword" value="cot">
<param name="Keyword" value="ctg">
<param name="Keyword" value="asin">
<param name="Keyword" value="acos">
<param name="Keyword" value="atan">
<param name="Keyword" value="atg">
<param name="Keyword" value="acot">
<param name="Keyword" value="actg">
<param name="Keyword" value="sinh">
<param name="Keyword" value="cosh">
<param name="Keyword" value="tanh">
<param name="Keyword" value="tgh">
<param name="Keyword" value="coth">
<param name="Keyword" value="ctgh">
<param name="Keyword" value="degtodeg">
<param name="Keyword" value="degtorad">
<param name="Keyword" value="radtodeg">
<param name="Keyword" value="sqrt">
<param name="Keyword" value="factorial">
<param name="Keyword" value="abs">
<param name="Keyword" value="sgn">
<param name="Keyword" value="mod">
<param name="Keyword" value="int">
<param name="Keyword" value="round">
<param name="Keyword" value="ceil">
<param name="Keyword" value="floar">
<param name="Keyword" value="max">
<param name="Keyword" value="min">
<param name="Keyword" value="builtin functions">
</object>
</head>
<body>
<h1>Arithmetic functions</h1>
<p><strong>Note:</strong> If a function takes more than one argument, the arguments are separated with semicolon ';'.</p>
<dl>
<dt>ln(x)</dt>
<dd>This function calculates the natural logarithm of x,<br>e.g. ln(123)=4.812...</dd>
<dt>log(x; base)</dt>
<dd>This function calculates the logarithm of x with a base equal 'base'<br>e.g. log(123; 4)=3.471...</dd>
<dt>exp(x)</dt>
<dd>This function calculates the exponent of x<br>e.g. exp(20)=e^20=485165195.409...</dd>
<dt>sin(x)</dt>
<dd>This function returns the sine of x.<br>For example sin(0.8)=0.717...<br>The argument x is in radians, if you want to calculate
with degrees use the degtorad(x) function first e.g. sin(degtorad(30))=0.5 calculates the sine of 30 degrees.</dd>
<dt>cos(x)</dt>
<dd>Cosine of x<br>e.g. cos(1.3)=0.267...<br>The argument x is in radians.</dd>
<dt>tan(x) or tg(x)</dt>
<dd>Tangent of x<br>e.g. tan(3.6)=0.493...<br>The argument x is in radians.</dd>
<dt>cot(x) or ctg(x)</dt>
<dd>Cotangent of x<br>e.g. cot(2.3)=-0.893...<br>The argument x is in radians.</dd>
<dt>asin(x)</dt>
<dd>Arc sine of x<br>e.g. asin(0.7)=0.775...<br>The result is in radians. If you want the result to be in degrees use
radtodeg function e.g. radtodeg(asin(0,5))=30</dd>
<dt>acos(x)</dt>
<dd>Arc cosine of x<br>e.g. acos(0.9)=0.451...<br>The result is in radians.</dd>
<dt>atan(x) or atg(x)</dt>
<dd>Arc tangent of x<br>e.g. atan(3.3)=1.276...<br>The result is in radians.</dd>
<dt>acot(x) or actg(x)</dt>
<dd>Arc cotangent of x<br>e.g. acot(10)=0.099...<br>The result is in radians.</dd>
<dt>sinh(x)</dt>
<dd>This function returns hyperbolic sine of x<br>e.g.sinh(12)=81377.395...</dd>
<dt>cosh(x)</dt>
<dd>Hyperbolic cosine of x<br>e.g. cosh(8.5)=2457.384...</dd>
<dt>tanh(x) or tgh(x)</dt>
<dd>Hyperbolic tangent of x<br>e.g. tanh(0.67)=0.584...</dd>
<dt>coth(x) or ctgh(x)</dt>
<dd>Hyperbolic cotangent of x<br>e.g. coth(1.67)=1.073...</dd>
<dt>DegToDeg(deg; min; sec)</dt>
<dd>This function converts degrees from the long format with degres, minutes and seconds into only degrees.<br>
For example degtodeg(12; 30; 0)=12.5</dd>
<dt>DegToRad(deg)</dt>
<dd>This function converts degrees into radians<br>e.g. degtorad(12.5)=0.218166...</dd>
<dt>DegToRad(deg; min; sec)</dt>
<dd>This function converts degrees in the long format (degrees, minutes, seconds) to radians.<br>For example
degtorad(12; 30; 0)=0.218166...</dd>
<dt>RadToDeg(rad)</dt>
<dd>This function converts radians into degrees<br>e.g. radtodeg(pi)=180</dd>
<dt>sqrt(x)</dt>
<dd>Sqrt returns the square root of x<br>e.g. sqrt(9)=3<br>
If you want to calculate another kind of roots for example the cube root use the powering instead e.g.
the cube root of 8 is 8^(1/3)=2</dd>
<dt>factorial(x)</dt>
<dd>The factorial function<br>e.g. factorial(6)=1*2*3*4*5*6=720</dd>
<dt>abs(x)</dt>
<dd>The absolute value of x<br>e.g. abs(-10)=10</dd>
<dt>sgn(x)</dt>
<dd>This function returns the sign of x that means when the x is positive the result is 1, when the x is negative
the result is -1 and when the x is zero the result is zero too, e.g.<br>
sgn(-10)=-1<br>
sgn(0)=0<br>
sgn(5)=1</dd>
<dt>mod(x,y)</dt>
<dd>Mod returns the remainder from the division x by y<br>e.g. mod(10; 2.2)=1.2 because 10=2.2*4 + 1.2</dd>
<dt>int(x)</dt>
<dd>This method returns only the integer part of x.<br>e.g. int(2.7)=2</dd>
<dt>round(x)</dt>
<dd>This method rounds the value of x to the nearest integer e.g.<br>
round(2.8)=3<br>
round(2.2)=2<br>
round(2)=2<br>
round(-4.8)=-5<br>
round(-4.1)=-4</dd>
<dt>ceil(x)</dt>
<dd>This function returns a value representing the smallest integer that is greater than or equal to x, e.g.<br>
ceil(2.8)=3<br>
ceil(2.2)=3<br>
ceil(2)=2<br>
ceil(-4.8)=-4<br>
ceil(-4.1)=-4</dd>
<dt>floor(x)</dt>
<dd>This function returns a value representing the largest integer that is less than or equal to x, e.g.<br>
floor(2.8)=2<br>
floor(2.2)=2<br>
floor(2)=2<br>
floor(-4.8)=-5<br>
floor(-4.1)=-5</dd>
<dt>max(x1; x2; ...)</dt>
<dd>This functions takes any number of arguments. It returns the max value of them. If there aren't arguments
the function returns the max value which can be held in this precision.</dd>
<dt>min(x1; x2; ...)</dt>
<dd>This functions takes any number of arguments. It returns the min value of them. If there aren't arguments
the function returns the min value which can be held in this precision.</dd>
</dl>
</body>
</html>

23
help/help.hhp Normal file
View File

@@ -0,0 +1,23 @@
[OPTIONS]
Auto Index=Yes
Compatibility=1.1 or later
Compiled file=..\..\output\ttcalc.chm
Contents file=toc.hhc
Default topic=index.html
Display compile progress=No
Index file=index.hhk
Language=0x809 Angielski (Wielka Brytania)
Title=TTCalc
[FILES]
values_and_std_operators.html
arithmetic_functions.html
logical_functions.html
operators_priority.html
userfunctions.html
index.html
tips.html
[INFOTYPES]

9
help/index.hhk Normal file
View File

@@ -0,0 +1,9 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML>
<HEAD>
<meta name="GENERATOR" content="Microsoft&reg; HTML Help Workshop 4.1">
<!-- Sitemap 1.0 -->
</HEAD><BODY>
<UL>
</UL>
</BODY></HTML>

47
help/index.html Normal file
View File

@@ -0,0 +1,47 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<title>TTCalc</title>
<link rel="stylesheet" href="styles.css" type="text/css">
<object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
<param name="Keyword" value="TTCalc">
<param name="Keyword" value="author">
<param name="Keyword" value="contact">
<param name="Keyword" value="licence">
<param name="Keyword" value="operating systems">
<param name="Keyword" value="project page">
</object>
</head>
<body>
<h1>TTCalc</h1>
<p>
TTCalc is a mathematical calculator. It has a nice user interface, formulas for
calculating can be inserted by using a keyboard or a mouse. The result is automatically
shown in a second window without using any additional keys such as 'equal'. The
program possess trigonometric functions, inverse trigonometric functions, hyperbolic
functions, logical operators, logarithms, functions for converting between degrees and
radians and so on. Additionally the program allows the user to define his own
variables and functions. Calculations are performed by using floating point numbers
with three kind of precision, the biggest has 288 bits for its mantissa and 96 bits
for its exponent that is about 2.551...e+11925026709067095507636213441 with 85 valid
decimal digits. The program independently allows to insert and display values with
the base (radix) from two to sixteen.
</p>
<table>
<tr><td>Author:</td><td>Tomasz Sowa</td></tr>
<tr><td>Contact:</td><td>t.sowa@slimaczek.pl</td></tr>
<tr><td>Licence:</td><td>BSD (open source)</td></tr>
<tr><td>Operating systems:</td><td>Microsoft Windows 9x/Me/NT/2000/XP (Vista was not tested)</td></tr>
<tr><td>Interface:</td><td>English, Polish</td></tr>
<tr><td>Project page:</td><td><a href="http://sourceforge.net/projects/ttcalc">http://sourceforge.net/projects/ttcalc</a></td></tr>
</table>
</body>
</html>

103
help/logical_functions.html Normal file
View File

@@ -0,0 +1,103 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<title>TTCalc - comparative and logical operators and functions</title>
<link rel="stylesheet" href="styles.css" type="text/css">
<object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
<param name="Keyword" value="&lt;">
<param name="Keyword" value="&gt;">
<param name="Keyword" value="&lt;=">
<param name="Keyword" value="&gt;=">
<param name="Keyword" value="==">
<param name="Keyword" value="!=">
<param name="Keyword" value="&amp;&amp;">
<param name="Keyword" value="||">
<param name="Keyword" value="if">
<param name="Keyword" value="and">
<param name="Keyword" value="or">
<param name="Keyword" value="not">
<param name="Keyword" value="logical operators">
<param name="Keyword" value="comparative operators">
<param name="Keyword" value="logical functions">
</object>
</head>
<body>
<h1>Comparative and logical operators and functions</h1>
<p>
We assume that the logical false is represented by zero and the logical true is represented by the
value different from zero. <strong>Note:</strong> If a function takes more than one argument, the arguments are separated with semicolon ';'.
</p>
<dl>
<dt>x &lt; y</dt>
<dd>This operator returns one if x is lower than y else it returns zero. For example:<br>
4 &lt; 10 = 1<br>
6 &lt; 2 = 0</dd>
<dt>x &gt; y</dt>
<dd>This operator returns one if x is greater than y else it returns zero. For example:<br>
5 &gt; 2 = 1<br>
5 &gt; 8 = 0</dd>
<dt>x &lt;= y</dt>
<dd>This operator returns one if x is lower than or equal to y else it returns zero. For example:<br>
4 &lt;= 4 = 1<br>
7 &lt;= 2 = 0</dd>
<dt>x &gt;= y</dt>
<dd>This operator returns one if x is greater than or equal to y else it returns zero. For example:<br>
5 &gt;= 5 = 1<br>
3 &gt;= 4 = 0</dd>
<dt>x == y</dt>
<dd>This operator returns one if x is equal y else it returns zero. For example:<br>
4 == 4 = 1<br>
6 == 2 = 0</dd>
<dt>x != y</dt>
<dd>This operator returns one if x is different from y else it returns zero. For example:<br>
5 != 2 = 1<br>
5 != 5 = 0</dd>
<dt>x &amp;&amp; y (logical and)</dt>
<dd>This operator returns one if both x and y are different from zero else it returns zero. For example:<br>
4 &amp;&amp; 10 = 1<br>
6 &amp;&amp; 0 = 0<br>
0 &amp;&amp; 0 = 0</dd>
<dt>x || y (logical or)</dt>
<dd>This operator returns one either if x or y are different from zero else it returns zero. For example:<br>
5 || 2 = 1<br>
0 || 3 = 1<br>
0 || 0 = 0</dd>
<dt>if(condition; if_true; if_false)</dt>
<dd>If the 'condition' is true (different from zero) the function returns 'if_true' else it returns 'if_false', e.g.<br>
if( 0 ; 20 ; 30) = 30<br>
if( 1 ; 20 ; 30) = 20<br>
if( 4<5 ; 10 ; 50) = 10<br>
if( 6>10 ; 200 ; 100) = 100</dd>
<dt>and(x ; y)</dt>
<dd>This function does the same thing as the logical operator 'and' (&amp;&amp;)</dd>
<dt>or(x ; y)</dt>
<dd>This function does the same thing as the logical operator 'or' (||)</dd>
<dt>not(x)</dt>
<dd>If the x is true (different from zero) this function returns zero, otherwise it returns one, e.g.<br>
not(15)=0<br>
not(0)=1</dd>
</dl>
</body>
</html>

View File

@@ -0,0 +1,34 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<title>TTCalc - operators priority</title>
<link rel="stylesheet" href="styles.css" type="text/css">
<object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
<param name="Keyword" value="operators priority">
</object>
</head>
<body>
<h1>Operators Priority</h1>
<p>Below is a list of operators priority. At the top are operators with higher precedence.</p>
<table>
<thead>
<tr><td>Operator</td><td>Description</td><td>Sample</td></tr>
</thead>
<tr><td>( )</td><td>parentheses for grouping an expression</td><td>(1+3)*4</td></tr>
<tr><td>- + # &amp;</td><td>unary minus and plus, and operators for changing the base (radix)</td><td>-10</td></tr>
<tr><td>^</td><td>powering</td><td>3^2</td></tr>
<tr><td>* /</td><td>multiplication and division</td><td>10*20</td></tr>
<tr><td>+ -</td><td>addition and subtraction</td><td>10-30</td></tr>
<tr><td>== != &lt; &gt; &lt;= &gt;=</td><td>comparative operators</td><td>4&lt;5</td></tr>
<tr><td>&amp;&amp;</td><td>logical and</td><td>3&gt;2 &amp;&amp; 3&lt;10</td></tr>
<tr><td>||</td><td>logical or</td><td>3&gt;2 || 3&lt;10</td></tr>
</table>
</body>
</html>

48
help/styles.css Normal file
View File

@@ -0,0 +1,48 @@
html * {
margin: 0;
border: 0;
padding: 0;
}
html, body {
font-size: 14px;
font-family: Tahoma, Arial, Sans-serif;
}
body {
margin: 0 0 20px 20px;
}
h1 {
font-size: 2em;
font-family: Arial, Tahoma, Sans-serif;
margin: 1.4em 0 1em 0;
}
p {
margin: 1em 0 1em 0;
}
dt {
font-size: 1.4em;
margin-top: 1em;
}
dd {
padding: 0.3em 0 0 2em;
}
thead {
font-size: 1.2em;
}
td {
padding: 0 2em 0 0;
}

40
help/tips.html Normal file
View File

@@ -0,0 +1,40 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<title>TTCalc - tips</title>
<link rel="stylesheet" href="styles.css" type="text/css">
<object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
<param name="Keyword" value="tips">
<param name="Keyword" value="esc">
<param name="Keyword" value="#">
<param name="Keyword" value="&amp;">
<param name="Keyword" value="global semicolon">
</object>
</head>
<body>
<h1>Tips</h1>
<p>
If you want to clear the input edit or if you want to put something in and the focus is
somewhere on the tabs just type ESC, the entire edit will be selected and have a focus.
</p>
<p>
If you want to insert a value with a base (radix) 2 or 16 use the unary operator &amp; (for the base 2)
or # (for the base 16).
For example &amp;10=2 (decimal), #10=16 (decimal). When you're using these operators
then 'input' mode on the 'display' tab is ignored.
</p>
<p>
You can calculate more than one formula at the same time. To achive this use a semicolon
in the global space, for example type '2+4 ; 5*10' and the result will be '6&nbsp;&nbsp;&nbsp;50'.
</p>
</body>
</html>

42
help/toc.hhc Normal file
View File

@@ -0,0 +1,42 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML>
<HEAD>
<meta name="GENERATOR" content="Microsoft&reg; HTML Help Workshop 4.1">
<!-- Sitemap 1.0 -->
</HEAD><BODY>
<OBJECT type="text/site properties">
<param name="ImageType" value="Folder">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="TTCalc">
<param name="Local" value="index.html">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Numbers, standard operators and built-in variables">
<param name="Local" value="values_and_std_operators.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Arithmetic functions">
<param name="Local" value="arithmetic_functions.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Logical operators and functions">
<param name="Local" value="logical_functions.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="User defined variables and functions">
<param name="Local" value="userfunctions.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Operators priority">
<param name="Local" value="operators_priority.html">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Tips">
<param name="Local" value="tips.html">
</OBJECT>
</UL>
</UL>
</BODY></HTML>

36
help/userfunctions.html Normal file
View File

@@ -0,0 +1,36 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<title>TTCalc - user defined variables and functions</title>
<link rel="stylesheet" href="styles.css" type="text/css">
<object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
<param name="Keyword" value="user defined variables">
<param name="Keyword" value="user defined functions">
</object>
</head>
<body>
<h1>User defined variables and functions</h1>
<p>
You are allowed to define your own variables and functions. As a name of a variable or a function
can be a name consists of letters and digits but the first character must be a letter. Names are case-insensitive
that means 'name' is the same as 'NaMe'. For example these
are correct names: a, b, c3, myname, etc. During defining variables and functions you can call another
variables and functions but you cannot call a variable or a function twice. Recurrence calling are not allowed.
</p>
<p>
Functions can get maximum 9 parameters. You have to specify how many parameters your function takes and
you can refer to them by using the variable 'x' with a number from 1 to 9 ('x' without a number means 'x1').
For example you can define a function 'xy' as 'x1*x2' (of course without apostrophes), set the 'parameters' on 2
and then put into the edit box an expression 'xy(10;20)', the result will be 200. Note that we use a semicolon
to separate arguments in a function.
</p>
</body>
</html>

View File

@@ -0,0 +1,65 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<title>TTCalc - numbers, standard operators and built-in variables</title>
<link rel="stylesheet" href="styles.css" type="text/css">
<object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
<param name="Keyword" value="numbers">
<param name="Keyword" value="comma">
<param name="Keyword" value="dot">
<param name="Keyword" value="standard operators">
<param name="Keyword" value="builtin variables">
<param name="Keyword" value="e">
<param name="Keyword" value="^">
<param name="Keyword" value="*">
<param name="Keyword" value="/">
<param name="Keyword" value="+">
<param name="Keyword" value="-">
</object>
</head>
<body>
<h1>Numbers</h1>
You can type numbers directly using a keyboard or insert them by a mouse. This is a simple edit window,
you can use arrow keys etc. and copy&amp;paste a text by using standard shortcuts such as CTRL+C and CTRL+V.
As the decimal point can be either a comma or a dot that means 1,234 is the same as 1.234.
<h1>Standard operators</h1>
<dl>
<dt>^</dt>
<dd>Powering</dd>
<dt>*</dt>
<dd>Multiplication</dd>
<dt>/</dt>
<dd>Division</dd>
<dt>+</dt>
<dd>Addition</dd>
<dt>-</dt>
<dd>Subtraction</dd>
</dl>
<p>Of course you can use the parentheses ( and ). Look at the <a href="operators_priority.html">operators priority</a> as well.</p>
<h1>Built-in variables</h1>
<p>You can use following variables, just type its name into the edit window.</p>
<dl>
<dt>e</dt>
<dd>The base of the natural logarithm.<br>e = 2.718...</dd>
<dt>pi</dt>
<dd>The ratio of a circle's circumference to its diameter.<br>pi=3.141...</dd>
</dl>
</body>
</html>