beautypg.com

9 expressions, 1 floating-point arithmetic – Campbell Scientific CR1000 Measurement and Control System User Manual

Page 142

background image

Section 7. Installation

142 

 

 

CRBasic Example 19. Use of Arrays as Multipliers and Offsets 

Public

Pressure(3), Mult(3), Offset(3)

DataTable

(AvgPress,1,-1)

DataInterval

(0,60,Min,10)

Average

(3,Pressure(),IEEE4,0)

EndTable

BeginProg

'Calibration Factors:

Mult(1)=0.123 : Offset(1)=0.23
Mult(2)=0.115 : Offset(2)=0.234
Mult(3)=0.114 : Offset(3)=0.224

Scan

(1,Sec,10,0)

'VoltSe instruction using array of multipliers and offsets:

VoltSe

(Pressure(),3,mV5000,1,True,0,_60Hz,Mult(),Offset())

CallTable

AvgPress

NextScan

EndProg

 

7.7.3.9 Expressions

An expression is a series of words, operators, or numbers that produce a value or
result. Expressions are evaluated from left to right, with deference to precedence
rules. The result of each stage of the evaluation is of type Long (integer, 32 bits) if
the variables are of type Long (constants are integers) and the functions give
integer results, such as occurs with INTDV(). If part of the equation has a
floating point variable or constant (24 bits), or a function that results in a floating
point, the rest of the expression is evaluated using floating-point, 24-bit math,
even if the final function is to convert the result to an integer, so precision can be
lost; for example, INT((rtYear-1993)*.25). This is a critical feature to consider
when, 1) trying to use integer math to retain numerical resolution beyond the limit
of floating point variables, or 2) if the result is to be tested for equivalence against
another value. See section Floating-Point Arithmetic

(p. 142)

for limits.

Two types of expressions, mathematical and programming, are used in CRBasic.
A useful property of expressions in CRBasic is that they are equivalent to and
often interchangeable with their results.

Consider the expressions:

x = (z * 1.8) + 32

'(mathematical expression)

If

x = 23

then

y = 5

'(programming expression)

The variable x can be omitted and the expressions combined and written as:

If

(z * 1.8 + 32 = 23)

then

y = 5

Replacing the result with the expression should be done judiciously and with the
realization that doing so may make program code more difficult to decipher.

7.7.3.9.1 Floating-Point Arithmetic

Variables and calculations are performed internally in single precision IEEE four-
byte floating point with some operations calculated in double precision.