+ All Categories
Home > Documents > 7-1 Chapter 7. Basic Arithmetic Verbs Options Available with Arithmetic Verbs COMPUTE Statement ...

7-1 Chapter 7. Basic Arithmetic Verbs Options Available with Arithmetic Verbs COMPUTE Statement ...

Date post: 02-Jan-2016
Category:
Upload: philomena-watkins
View: 249 times
Download: 0 times
Share this document with a friend
Popular Tags:
45
7- 1 Chapter 7
Transcript
Page 1: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

7-1

Chapter 7

Page 2: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

Basic Arithmetic Verbs Options Available with Arithmetic Verbs COMPUTE Statement Signed Numbers in Arithmetic Operations Intrinsic Functions

7-2

Page 3: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

ADD, SUBTRACT, MULTIPLY, DIVIDE All require fields operated on to

◦ Have numeric PICTURE clauses◦ Contain numeric data when statements executed

7-3

Page 4: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

identifier-1ADD … TO identifier-2 ...

literal-1

identifier-1 or literal-1 added to identifier-2 Result stored in identifier-2

7-4

Format 1

Page 5: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

Assume X, Y and Z are numeric fieldsX = 5, Y = 3 and Z = 7

ADD Statement ResultAdd X To Y Y = 8Add X, 9 To Y Y = 17Add X, 6, Y To Z Z = 21

Identifiers preceding TO are unchanged Value of identifier after TO

◦ Used in ADD operation◦ Original value replaced with ADD result

7-5

Page 6: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

identifier-1ADD … GIVING identifier-

2 ... literal-1

Identifiers and literals preceding GIVING added together

Result stored in identifier-2

7-6

Format 2

Page 7: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

Assume X, Y and Z are numeric fieldsX = 5, Y = 3 and Z = 7

ADD Statement ResultAdd X, Y Giving Z Z = 8Add X, 10 Giving Y Y = 15Add X, 4, Y Giving Z Z = 12

Identifiers preceding GIVING are unchanged Value of identifier after GIVING

◦ Original value replaced with ADD result◦ May be report-item with edit symbols

7-7

Page 8: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

Several ADD operations can be done in single statement

Assume X, Y and Z are numeric fieldsX = 5, Y = 3 and Z = 7

ADD Statement ResultAdd X To Y, Z Y = 8, Z = 12Add X, 6 Giving Y, Z Y = 11, Z = 11

7-8

Page 9: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

Use ADD … TO when original contents of result operand ◦ Need to be included in operation ◦ But are not needed after operation

Use ADD … GIVING when◦ Original contents of all operands except result

field are to be retained

◦ ADD HOURS-WORKED TO WEEKLY-HOURS

◦ Vs. Giving

7-9

Page 10: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

identifier-1SUBTRACT … FROM identifier-2 ...

literal-1

identifier-1 or literal-1 subtracted from identifier-2

Result stored in identifier-2

7-10

Format 1

Page 11: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

Assume A, B and C are numeric fields A = 6, B = 2 and C = 18

SUBTRACT Statement ResultSubtract A From C C = 12Subtract B, 5 From C C = 11Subtract B From A, C A = 4, C = 16

7-11

Page 12: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

identifier-1 identifier-2

SUBTRACT … FROM literal-1 literal-2

GIVING identifier-3 ...

identifier-1 or literal-1 subtracted from identifier-2 or literal-2

Result stored in identifier-3

7-12

Format 2

Page 13: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

Assume A, B and C are numeric fields A = 6, B = 2 and C = 18

SUBTRACT Statement ResultSubtract B From A Giving C C = 4Subtract A From 15 Giving C C = 9Subtract A, 4 From C Giving B B = 8

7-13

Page 14: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

identifier-1MULTIPLY BY identifier-2 ...

literal-1

identifier-1 or literal-1 multiplied by identifier-2

Result stored in identifier-2

7-14

Format 1

Page 15: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

Assume Q, R and S are numeric fields Q = 4, R = 7 and S = 5

MULTIPLY Statement ResultMultiply Q By R R = 28Multiply 10 By S S = 50 Multiply 2 By R, S R = 14, S = 10

7-15

Page 16: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

identifier-1 identifier-2MULTIPLY BY

literal-1 literal-2

GIVING identifier-3 ...

identifier-1 or literal-1 multiplied by identifier-2 or literal-2

Result stored in identifier-3

7-16

Format 2

Page 17: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

Assume Q, R and S are numeric fields Q = 4, R = 7 and S = 5

MULTIPLY Statement ResultMultiply Q By R Giving S S = 28Multiply Q By 3 Giving S S = 12Multiply 6 By Q Giving R, S R = 24

S = 24

7-17

Page 18: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

Only two operands can be multiplied using the MULTIPLY statement

To obtain product of 3 operands requires two instructions

To find Price x Qty x Discount

Multiply Price By Qty Giving WS-AmtMultiply Discount By WS-Amt

7-18

Page 19: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

identifier-1DIVIDE INTO identifier-2 ...

literal-1

identifier-1 or literal-1 divided into identifier-2 Result stored in identifier-2

7-19

Format 1

Page 20: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

Assume X, Y and Z are numeric fieldsX = 2, Y = 12 and Z = 8

DIVIDE Statement ResultDivide X Into Y Y = 6Divide 3 Into Y Y = 4 Divide 2 Into Y, Z Y = 6, Z = 4

7-20

Page 21: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

identifier-1 INTO identifier-2

DIVIDE literal-1 BY literal-2

GIVING identifier-3 ...

identifier-1 or literal-1 divided into or by identifier-2 or literal-2

Result stored in identifier-3

7-21

Format 2

Page 22: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

Assume X, Y and Z are numeric fieldsX = 2, Y = 12 and Z = 8

DIVIDE Statement ResultDivide X Into Y Giving Z Z = 6Divide Y By X Giving Z Z = 6Divide 16 By Z Giving X, Y X = 2

Y = 2

7-22

Page 23: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

Optional clause with DIVIDE used to store remainder of division

Assume Q and R have PICTUREs of 99

Divide 70 By 15 Giving Q Remainder R

Stores quotient 4 in Q and integer remainder 10 in R

What can this be used for??? Same as MOD

7-23

Page 24: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

Arithmetic result truncated if room to store all decimal positions not available◦ Result of 3.89 stored in field with PIC 9V9 as 3^8

Include ROUNDED to round result to PICTURE specification◦ Result of 3.89 stored as 3.9 if ROUNDED option

used◦ Its actually adding .5 then truncating

7-24

Page 25: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

01 Amt1 Pic 9V99 Value 2.25.01 Amt2 Pic 999.

Arithmetic statement Result Value Stored

Multiply .3 By Amt1 .675 Amt1 = 0^67

Multiply .3 By Amt1 Rounded .675 Amt1 = 0^68

Divide 150 By 9Giving Amt2 Rounded 16.66… Amt2 = 017

7-25

Examples

Page 26: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

Occurs when result value too large to be stored in result field

Result of this ADD statement is 1,075Add 350 To 725 Giving Num

If Num has PICTURE of 999, only 3 digits can be stored

High-order digits truncated so 075 stored in Num

7-26

Page 27: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

Any arithmetic statement may include one or both size error clauses

ON SIZE ERROR statement(s)◦ Specifies one or more statements to be executed

if overflow (size error) occurs NOT ON SIZE ERROR statement(s)

◦ Specifies one or more statements to be executed if overflow (size error) does not occur

7-27

Page 28: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

Add X To Y Giving ZOn Size Error Display ' Result too large'Not On Size Error Perform Calc-Para

End-Add

If sum of X and Y too large to store in Z, Display statement executed

If Z large enough for result, Calc-Para is performed

When using one or both clauses, use scope terminator to end arithmetic operation◦ END-ADD, END-SUBTRACT ◦ END-MULTIPLY, END-DIVIDE

7-28

Page 29: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

Ensure receiving field has PICTURE large enough to store result

Addition - define resultant field one position larger than largest field added

Subtraction - define resultant field as large as number being subtracted from◦ Assumes positive numbers◦ Assumes smaller subtracted from larger number

7-29

Page 30: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

Multiplication - define resultant field equal to sum of lengths of operands begin multiplied

Division - define resultant field equal to sum of number of digits in divisor and dividend

7-30

Page 31: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

General arithmetic statement using symbols in place of arithmetic verbs

Symbol Verb+ ADD- SUBTRACT* MULTIPLY/ DIVIDE** exponentiation

7-31

Page 32: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

arithmetic-exp-1

COMPUTE identifier-1 … = literal-1 identifier-2

Identifier to left of equal sign set to value of arithmetic-expression, literal or identifier on right of equal sign

7-32

Format

Page 33: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

Assume X, Y and Z are numeric fieldsX = 9, Y = 4 and Z = 12

COMPUTE Statement ResultCompute Z = X * Y Z = 36Compute X = Z - Y + 2 X = 10Compute X = Y X = 4Compute Z = Y ** 2 Z = 16

7-33

Page 34: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

Arithmetic expression may include any combination of symbols +, -, *, / or **

Order of operations

1. ( ) override rules 1-3, all operations in ( ) performed first

2. ** all exponentiation performed first3. * or / in order or appearance left to right4. + or - in order or appearance left to right

Same rules apply here as standard math

7-34

Page 35: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

Assume X, Y and Z are numeric fieldsX = 6, Y = 18 and Z = 5

COMPUTE Statement ResultCompute Z = Y / X + 3 Z = 6Compute Z = Y / (X + 3) Z = 2Compute Y = Z + X * 10 Y = 65Compute Y = Z * X / 10 Y = 3

7-35

Page 36: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

COMPUTE can include same optional clauses used with other arithmetic verbs

ROUNDED follows result field (identifier preceding equal sign)

If ON SIZE ERROR or NOT ON SIZE ERROR clauses used, include scope terminator END-COMPUTE

7-36

Page 37: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

Use S in PIC clause of result field if◦ Numbers used in calculation may be negative◦ Calculation may produce negative results

PIC clause without S assumed to be unsigned◦ If negative result stored in unsigned field, sign not

retained We discussed this already

7-37

Page 38: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

Built-in procedures to perform particular task like◦ Find square root of number◦ Convert letters to uppercase◦ Get current date

Looks like our compiler handles these because of Lab 2 with the NUMVAL function

7-38

Page 39: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

Find square root of X and place result in Y

Compute Y = Function Sqrt(X)

Value of X passed to function called Sqrt Code in function finds square root of X Result returned by Sqrt assigned to Y

7-39

Example

Page 40: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

Convert More-Data to uppercase

Move Function Upper-Case (More-Data) To Up-More-Data

If More-Data = "Yes", function Upper-Case returns value "YES"

Value "YES" moved to Up-More-Data

7-40

Example

Page 41: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

Output of function - result returned after function performs its task

Function returning alphanumeric result used in statements using alphanumeric data-items

Function returning numeric result can be used only in arithmetic expressions, of course

Page 283 – 288 has a list of several categorized by type

7-41

Page 42: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

ADD, SUBTRACT, MULTIPLY, and DIVIDE verbs ◦ format without GIVING

Receiving field is part of arithmetic May not be report-item

◦ with GIVING format Receiving field is not part of arithmetic May be report-item

7-42

Page 43: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

COMPUTE used for any combination of arithmetic operations

Order of evaluation of operators1. **2. * or / in sequence left to right3. + or - in sequence left to right4. ( ) override normal hierarchy rules

7-43

Page 44: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

ROUNDED can follow receiving field in any arithmetic verb

ON SIZE ERROR, NOT ON SIZE ERROR◦ Can be used with any arithmetic verb◦ Include scope terminator (e.g., END-ADD)

7-44

Page 45: 7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic.

Intrinsic functions added as COBOL extensions in 1989◦ Calendar◦ Numerical analysis◦ Statistical◦ Trigonometric◦ Financial◦ Character and String

7-45


Recommended