Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic."— Presentation transcript:

1 7-1 Chapter 7

2  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic Functions 7-2

3  ADD, SUBTRACT, MULTIPLY, DIVIDE  All require fields operated on to ◦ Have numeric PICTURE clauses ◦ Contain numeric data when statements executed 7-3

4 identifier-1 ADD… TO identifier-2... literal-1  identifier-1 or literal-1 added to identifier-2  Result stored in identifier-2 7-4 Format 1

5 Assume X, Y and Z are numeric fields X = 5, Y = 3 and Z = 7 ADD StatementResult Add X To YY = 8 Add X, 9 To YY = 17 Add X, 6, Y To ZZ = 21  Identifiers preceding TO are unchanged  Value of identifier after TO ◦ Used in ADD operation ◦ Original value replaced with ADD result 7-5

6 identifier-1 ADD … GIVING identifier-2... literal-1  Identifiers and literals preceding GIVING added together  Result stored in identifier-2 7-6 Format 2

7 Assume X, Y and Z are numeric fields X = 5, Y = 3 and Z = 7 ADD StatementResult Add X, Y Giving ZZ = 8 Add X, 10 Giving YY = 15 Add X, 4, Y Giving ZZ = 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

8  Several ADD operations can be done in single statement  Assume X, Y and Z are numeric fields X = 5, Y = 3 and Z = 7 ADD StatementResult Add X To Y, ZY = 8, Z = 12 Add X, 6 Giving Y, ZY = 11, Z = 11 7-8

9  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

10 identifier-1 SUBTRACT … FROM identifier-2... literal-1  identifier-1 or literal-1 subtracted from identifier-2  Result stored in identifier-2 7- 10 Format 1

11 Assume A, B and C are numeric fields A = 6, B = 2 and C = 18 SUBTRACT Statement Result Subtract A From C C = 12 Subtract B, 5 From C C = 11 Subtract B From A, CA = 4, C = 16 7- 11

12 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

13 Assume A, B and C are numeric fields A = 6, B = 2 and C = 18 SUBTRACT StatementResult Subtract B From A Giving C C = 4 Subtract A From 15 Giving C C = 9 Subtract A, 4 From C Giving B B = 8 7- 13

14 identifier-1 MULTIPLY BY identifier-2... literal-1  identifier-1 or literal-1 multiplied by identifier-2  Result stored in identifier-2 7- 14 Format 1

15 Assume Q, R and S are numeric fields Q = 4, R = 7 and S = 5 MULTIPLY StatementResult Multiply Q By R R = 28 Multiply 10 By S S = 50 Multiply 2 By R, S R = 14, S = 10 7- 15

16 identifier-1identifier-2 MULTIPLY BY literal-1literal-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

17 Assume Q, R and S are numeric fields Q = 4, R = 7 and S = 5 MULTIPLY StatementResult Multiply Q By R Giving SS = 28 Multiply Q By 3 Giving S S = 12 Multiply 6 By Q Giving R, S R = 24 S = 24 7- 17

18  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-Amt Multiply Discount By WS-Amt 7- 18

19 identifier-1 DIVIDE INTO identifier-2... literal-1  identifier-1 or literal-1 divided into identifier-2  Result stored in identifier-2 7- 19 Format 1

20 Assume X, Y and Z are numeric fields X = 2, Y = 12 and Z = 8 DIVIDE StatementResult Divide X Into Y Y = 6 Divide 3 Into Y Y = 4 Divide 2 Into Y, Z Y = 6, Z = 4 7- 20

21 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

22 Assume X, Y and Z are numeric fields X = 2, Y = 12 and Z = 8 DIVIDE StatementResult Divide X Into Y Giving ZZ = 6 Divide Y By X Giving Z Z = 6 Divide 16 By Z Giving X, Y X = 2 Y = 2 7- 22

23  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

24  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

25 01 Amt1Pic 9V99Value 2.25. 01 Amt2Pic 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 9 Giving Amt2 Rounded16.66… Amt2 = 017 7- 25 Examples

26  Occurs when result value too large to be stored in result field  Result of this ADD statement is 1,075 Add 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

27  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

28 Add X To Y Giving Z On 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

29  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

30  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

31  General arithmetic statement using symbols in place of arithmetic verbs SymbolVerb +ADD -SUBTRACT *MULTIPLY /DIVIDE **exponentiation 7- 31

32 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

33 Assume X, Y and Z are numeric fields X = 9, Y = 4 and Z = 12 COMPUTE StatementResult Compute Z = X * YZ = 36 Compute X = Z - Y + 2 X = 10 Compute X = YX = 4 Compute Z = Y ** 2Z = 16 7- 33

34  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 first 3. * or / in order or appearance left to right 4. + or - in order or appearance left to right Same rules apply here as standard math 7- 34

35 Assume X, Y and Z are numeric fields X = 6, Y = 18 and Z = 5 COMPUTE StatementResult Compute Z = Y / X + 3 Z = 6 Compute Z = Y / (X + 3) Z = 2 Compute Y = Z + X * 10Y = 65 Compute Y = Z * X / 10Y = 3 7- 35

36  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

37  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

38  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

39 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

40 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

41  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

42  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

43  COMPUTE used for any combination of arithmetic operations  Order of evaluation of operators 1.** 2.* or / in sequence left to right 3.+ or - in sequence left to right 4.( ) override normal hierarchy rules 7- 43

44  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

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


Download ppt "7-1 Chapter 7.  Basic Arithmetic Verbs  Options Available with Arithmetic Verbs  COMPUTE Statement  Signed Numbers in Arithmetic Operations  Intrinsic."

Similar presentations


Ads by Google