Previous | Contents | Index |
This chapter describes the basic elements that make up an INTOUCH program. It also describes the types of data used with INTOUCH programs and how the data is processed.
3.1 INTOUCH Program Elements
A program is a series of instructions. These instructions describe how
to manipulate data to produce a desired result. You determine what data
the program will manipulate, how the program will manipulate it and
what the results of these manipulations will be.
When you create a program, you must use instructions that INTOUCH understands. The INTOUCH language provides these instructions. The language consists of statements. These statements are something like the words in this manual. You put them together in a meaningful order and INTOUCH executes the program you write. Here is an example of an INTOUCH program:
10 INPUT 'Please enter your name': name$ 20 PRINT 'Hello, '; name$ PRINT 'Today is '; day$ PRINT name$; ', have a good '; day$ 30 END |
The INPUT statement tells INTOUCH to ask for a name. The PRINT statements tell INTOUCH to print the information. END tells INTOUCH it has reached the end of the program.
With INTOUCH, when you execute this program, it will look like this:
Example 3-1 Executing an INTOUCH program |
---|
INTOUCH 10 INPUT 'Please enter your name': name$ 20 PRINT 'Hello, '; name$ PRINT 'Today is '; day$ PRINT name$; ', have a good '; day$ 30 END INTOUCH RUN NONAME 2-MAY-1996 10:45 Please enter your name? Julian Hello, Julian Today is Tuesday Julian, have a good Tuesday INTOUCH |
RUN is a command. RUN tells INTOUCH to perform the instructions you have given. You will need to use commands as well as statements to develop your programs.
When you run the above program, you will notice that the day is not asked for. DAY$ is a reserved word that INTOUCH uses to store the day in. There are several other reserved words that INTOUCH uses. You can refer to Appendix B, Reserved Words to see a list of the reserved words.
INTOUCH programs are modular in structure. Every program can be divided into program units. The main unit is the main body of the program. This unit begins with the first program line and ends with the END statement.
First program line -- 10 INPUT 'Please enter your name': name$ 20 PRINT 'Hello, '; name$ PRINT 'Today is '; day$ PRINT name$; ', have a good '; day$ END statement -- 30 END |
Each program unit is made up of program lines. A program line consists of one or more statements. In the above example, line 20 has three statements. If you include more than one statement in a line, you must separate the statements with a line terminator (a carriage return). You can terminate a line from the keyboard by pressing the [Return] or [Enter] key. For example:
10 INPUT 'Please enter your name': name$<Return> 20 PRINT 'Hello, '; name$<Return> PRINT 'Today is '; day$<Enter> PRINT name$; ', have a good '; day$<Return> 30 END<Return> |
When INTOUCH executes a program, it starts at the lowest line number and executes all the statements in that program line. Then it goes to the next sequential line number and executes all the statements in that line and so on.
Multiple statements can be placed on a single line, delimited by the \ (backslash). CHR$(10) also signals the same as a \. A \ terminating the line implies an "&".
10 FOR z1 = 4. to 7. STEP .5 \ PRINT z1 \ NEXT z1 20 END RNH 4 4.5 5 5.5 6 6.5 7 |
Putting multiple statements on a single line is not recommended. It makes changing code difficult and the logic flow is not easy to follow. |
INTOUCH accepts line numbers in the range of 1 to 999999. Line numbers must be integers.
INTOUCH allows programs with NO line numbers execpt, there must be a line 1 at the beginning of the program. For example:
1 PROGRAM print_name ------- ------- ------- END |
You can continue a statement on the next physical line by using an ampersand (&). This allows you to continue a statement that is too long to fit on one line.
To continue a statement, place the ampersand at the end of the continued line. You can also place an optional ampersand at the beginning of the next line. For example:
10 INPUT 'Please enter your name': name$ 20 PRINT 'Hello, '; name$ PRINT 'Today is '; day$ PRINT name$; & ', have a good '; & ! required ampersand & day$ ! optional ampersand 30 END RNH Please enter your name? Julian Hello, Julian Today is Tuesday Julian, have a good Tuesday |
In the above example, the comment text follows the line continuation character (&). Whenever you comment a continued line, the exclamation mark must come AFTER the ampersand. |
You can continue statements between words; however, you cannot break up a word.
3.1.1.1 Implied Continuation
Prior to V4.3, an ampersand (&) was required to identify a
statement that was continued on the next physical line. Now the
ampersand is acceptable, but no longer required in some cases.
Implied continuation has been implemented for:
NOTE: Comma-separated list continuation does not work in a PRINT statement. PRINT statements still require the trailing "&" for continuation.
Here are some examples:
10 OPEN STRUCTURE cust: NAME 'tti_run:customer', ! no ampersand ACCESS OUTIN, ! no ampersand LOCK 20 CLOSE STRUCTURE cust 30 END 10 PRINT 'Today is the first day of the ' + ! no ampersand 'rest of your life.' 20 a$ = 'walk' b$ = 'walk' c$ = 'walk' 30 IF a$ = b$ AND ! no ampersand a$ = c$ THEN PRINT 'All are the same.' END IF 40 END RNH Today is the first day of the rest of your life. All are the same. |
A label is a way to identify a place in a program. Labels must:
To use a label, put the label name on a program line and separate it from the following statement with a colon. The label name can also be put on a line by itself and followed by multiple statements. Both options are shown in the example below.
10 ask_input: INPUT 'Please enter your name': name$ 20 do_print: PRINT 'Hello, '; name$ PRINT 'Today is '; day$ PRINT name$; ', have a good '; day$ 30 END |
INTOUCH programs have a default extension of .INT so, you do not have to use a file extension with your file name when using the INTOUCH commands (SAVE, UNSAVE, OLD, etc.). It is recommended that you use this extension for all of your INTOUCH programs.
INTOUCH source programs are saved as text files. You can print the text files with the TYPE and PRINT commands, and edit them with any text editor.
3.2 Data in INTOUCH
Programs manipulate data. The data can be numeric or textual, but the
data must be presented according to the rules of the INTOUCH language.
3.2.1 Data Types
INTOUCH accepts three basic types of data:
The following sections describe each of the three types of data.
3.2.1.1 Integers
An integer number is a whole number with no fractional
part. The following are examples of integers:
+5% 894% -369004% |
Integers can be positive or negative. Integer constants can end with a trailing percent sign (%). About integers:
3.2.1.2 Real Numbers
A real number can have a fractional part. The
following are real constants:
5.4 894.0 -369004 |
Real numbers can be positive or negative. Any number that is not designated as an integer or a string is treated as a real number.
A real number without a decimal point is called an ambiguous constant. About real numbers:
3.2.1.3 String Data
String data consists of text. Text can be any
characters. All of the following are valid string constants:
'Hello, Fred.' 'Account number (##-####)' '65' |
About string data:
3.2.2 BOOLEAN
Boolean variables represent either a TRUE or FALSE
condition. These variables can be expressed with a trailing "?". For
example:
10 done? = FALSE DO INPUT 'Ready': ans$ IF _EXIT THEN done? = TRUE IF _BACK THEN done? = TRUE LOOP UNTIL done? 20 END |
Expressions can be:
3.2.4 Constants
A constant is a value that does not change during a
program execution. Constants can be any of the three data types:
integer numeric, real numeric or string.
3.2.4.1 Numeric constants
Integer numeric constants are written with digits, with no decimal
fraction. An integer constant can end with a percent sign. Examples:
235 412% |
Real numeric constants are written with a sign, digits, and a decimal point. For example, 5.38 is a real numeric constant.
3.2.4.2 E Notation
E notation is a shorthand way of representing very large or very small
numbers. Real numeric constants can be written in E notation. INTOUCH
displays any real value of greater than 12 decimal digits in E
notation. The format of E notation is:
+/- number E +/- n |
Notation | Description |
---|---|
+/- | is the sign of the number (positive or negative). If no sign is given, the number is assumed to be positive. |
number | is the number on which exponentiation is performed. |
E | exponentiation means "times 10 to the power of". |
+/- | is the sign of the exponent (positive or negative). If no sign is given, the exponent is assumed to be positive. |
n | is the exponent represented as one or more integer digits. |
If you wanted to represent 1000 in E notation, you would use:
+1E3 |
This means "take 1 and multiply it by 10 to the 3rd power" which is 1*(10^3) = 1000. If you wanted to represent .01, you would use a negative exponent.
1E-2 = 1*(10^-2) = .01 |
String constants must be enclosed in quotes. The quotes are called string delimiters. They tell INTOUCH where the string begins and ends. The quotes are not considered part of the string. Everything within the quotes is considered part of the string. Note that the following strings are different:
10 PRINT 'Account number (##-####)' 20 PRINT ' Account number (##-####)' 30 END RNH Account number (##-####) Account number (##-####) |
An empty string is called a null string. A null string is indicated by a pair of quotes with nothing between them ("").
String delimiters can be single quotes (') or double quotes ("). However, the quotes must match and be paired.
Quotes can be included as part of a string by using them within the string delimiters. For example:
"Message 'Time to go home!'" |
The string part of this is:
Message 'Time to go home!' |
The delimiter quotes can be used within a string, by repeating them twice. For instance:
"Message ""Time to go home!""" |
The string part of this is
Message "Time to go home!" |
Variables are a way of storing values that can change in the program during execution. A variable names a storage location. The value of the variable is stored in this location. Here are two types of variables:
Two other constructs are used in ways similar to variables---you can use them in expressions and assign values to them:
Variables are represented by a name consisting of a letter or a series of letters, numbers and underscore characters. Variables:
Some examples of valid variables are:
TODAY$ X% Z INDEX |
Variables can be integer numeric, real numeric or string. Integer variables can only contain integer values. If a real numeric value is assigned to an integer variable, INTOUCH rounds the real number and uses the resulting integer.
String variable names can have a trailing dollar sign ($). If numeric data is assigned to a string variable, an exception occurs.
TODAY$ X$ LAST_NAME$ ANSWER$ |
A variable that is not followed by a $ or a % is treated as a real numeric variable unless it is declared. If you assign string data to a real numeric variable, an error will result. If you assign integer data to a real numeric variable, INTOUCH treats it as a real number with a fractional part of 0. The following are examples of real numeric variables:
INDEX Z COUNTER AMOUNT |
INTOUCH uses the last assigned value when a variable is referenced.
See Section 11.13.3, Private Variables in Routines, for more information on using variables. |
3.2.5.1 Arrays
An array is a variable that consists of a group of
elements. Each element represents a storage location. A different value
can be assigned to each element. Here is an example of an array:
QUANTITY(1) QUANTITY(2) QUANTITY(3) QUANTITY(4) QUANTITY(5) |
To indicate which element you want to access, you use numbers after the array name called subscripts. The subscripts are enclosed in parentheses. Example: AMOUNT(3,2)
Subscripts must be given as integers. If a real numeric subscript is given, it will be rounded and the integer portion used. Arrays can contain real numeric, integer or string values. String and integer arrays are designated by placing the appropriate symbols after the array name and before the subscript. For example:
A$(5,10) A%(5,10) |
About arrays:
Previous | Next | Contents | Index |