Procedures,
Functions and Triggers:
Problem #1 and #2 deal with procedures in functions. In one of them please code the procedure/function as external and in the other one code it as internal.
Problem
#1: Modify one of the
cursor programs you did and put some of the code in a procedure that you
call. .
Problem #2: Create a function to return a check digit when an identification number is keyed in. You are going to use the mod11 check digit explained below.
MOD 11 Check Digit
A check digit is a number that
is used to validate a series of numbers whose accuracy you want to insure.
Frequently the last digit of a number string such as identification number is a
check digit. Lets say the identification number starts out at 6 digits. A
calculation is done using the six digits and a seventh digit is produced as a
result of the calculation. This number is the check digit. There are many
calculations that can be used - this example illustrates the logic of the MOD11
check digit.
Steps to calculate the MOD11
check digit for a number such as an id #:
Example:
find the check digit for the number 036532
0 |
3 |
6 |
5 |
3 |
2 |
x7 |
x6 |
x5 |
x4 |
x3 |
x2 |
0 |
18 |
30 |
20 |
9 |
4 |
0
+ 18 + 30 + 20 + 9 + 4 = 81
81/11
= 7 remainder 4
11
- 4 = 7
7
is therefore the check digit.
PROBLEMS: If the remainder from the division is 0
or 1, then the subtraction will yield a two digit number of either 10 or 11.
This won't work, so if the check digit is 10, then X is frequently used as the
check digit and if the check digit is 11 then 0 is used as the check digit. If
X is used, then the field for the check digit has to be defined as character
(PIC X) or there will be a numeric problem.
Steps
to verify if the check digit is included as part of the number:
PROBLEM: Note that if the check digit is X then
10 is used in the multiplication. Code for this occurrence must be included.
Example
of verifying the number 0365327 where 7 is the calculated MOD11 check
digit:
0 |
3 |
6 |
5 |
3 |
2 |
7 |
x7 |
x6 |
x5 |
x4 |
x3 |
x2 |
x1 |
0 |
18 |
30 |
20 |
9 |
4 |
7 |
0
+ 18 + 30 + 20 + 9 + 4 + 7 = 88
88/11
is 8 remainder 0
Since
the remainder from this calculation is 0, the check digit 7 is valid.
Problem
#3: Set up a trigger so that when
you run one of your cursor programs, you fire your trigger. Run the program and demonstrate that it
caused the trigger to fire.