music 
OSdata.com 
addition
summary
This subchapter looks at addition.
free computer programming text book projecttable of contents

music 
OSdata.com 
This subchapter looks at addition.
free computer programming text book projecttable of contents

This subchapter looks at addition.
The ADD statement is used for addition.
In a simple version of the ADD statement, you name two variable identifiers that are to be added and the variable identifier where the resulting answer is to be stored:
005010 ADD OLDSUBTOTAL, CURRENTCOUNT
005020 GIVING NEWSUBTOTAL.
before execution  

OLDSUBTOTAL  CURRENTCOUNT  WORK AREA  NEWSUBTOTAL  
1  1  1  1  1  2  2  4  4  4  
partial computation  
OLDSUBTOTAL  CURRENTCOUNT  WORK AREA  NEWSUBTOTAL  
1  1  1  1  1  2  2  4  4  4  3  3  5  5  5  
after execution  
OLDSUBTOTAL  CURRENTCOUNT  WORK AREA  NEWSUBTOTAL  
1  1  1  1  1  2  2  4  4  4  3  3  5  5  5  3  3  5  5  5 
This example adds whatever number is stored in OLDSUBTOTAL (11,111) with whatever number is stored in CURRENTCOUNT (22,444) and places the answer into NEWSUBTOTAL (33,555).
The word ADD must appear in Area B of the COBOL card. The statement is terminated wiith a period.
There can be any number of fields (items named by identifiers) added together (possibly a huge list). The commas between identifiers are optional, but should be used to make your program more readable.
It is possible to place the answer into more than one variable (again the commas are optional).
005010 ADD OLDSUBTOTAL, CURRENTCOUNT
005020 GIVING NEWSUBTOTAL, MASTERCOUNT.
before execution  

OLDSUBTOTAL  CURRENTCOUNT  WORK AREA  NEWSUBTOTAL  MASTERCOUNT  
1  1  1  1  1  2  2  4  4  4  
partial computation  
OLDSUBTOTAL  CURRENTCOUNT  WORK AREA  NEWSUBTOTAL  MASTERCOUNT  
1  1  1  1  1  2  2  4  4  4  3  3  5  5  5  
after execution  
OLDSUBTOTAL  CURRENTCOUNT  WORK AREA  NEWSUBTOTAL  MASTERCOUNT  
1  1  1  1  1  2  2  4  4  4  3  3  5  5  5  3  3  5  5  5  3  3  5  5  5 
In the example, OLDSUBTOTAL and CURRENTCOUNT are added together in a temporary storage area created by the compiler, and then the same answer is placed into both NEWSUBTOTAL and MASTERCOUNT.
It is possible to use literals in the ADD statement.
005010 ADD 58, CURRENTCOUNT
005020 GIVING NEWCOUNT.
The literal 58 (the actual number) is added to the contents of the variable CURRENTCOUNT and the answer is stored in the vaariable NEWCOUNT.
005010 ADD 20, 30, 40
005020 GIVING SUBTOTAL.
The literal numbers 20, 30, and 40 are added together and the answer (90) is stored in the variable SUBTOTAL.
005010 ADD 30.00, 40.00
005020 GIVING SUBTOTAL.
The literal numbers 20.00 and 40.00 are added together and the answer (70.00) is stored in the variable SUBTOTAL.
Numeric literals must have at least one digit and not more than 18 digits. Numeric literals may contain the dedimal digits 0 through 9, inclusive, the plus sign, the minus sign, and/or the decmal point. The decimal point may not be the right most character. An unsigned numeric literal is assumed to be pisitive. A numeric literal without a decimal point is assumed to be a whole number.
The TO option may be used instead of the GIVING option.
005010 ADD CURRENTCOUNT TO MASTERCOUNT.
before execution  

CURRENTCOUNT  WORK AREA  MASTERCOUNT  
1  1  2  2  2  2  2  4  4  4  
partial computation  
CURRENTCOUNT  WORK AREA  MASTERCOUNT  
1  1  2  2  2  3  3  6  6  6  2  2  4  4  4  
after execution  
CURRENTCOUNT  WORK AREA  MASTERCOUNT  
1  1  2  2  2  3  3  6  6  6  3  3  6  6  6 
The number stored in the variable CURRENTCOUNT (11,222) is added to the number stored in the variable MASTERCOUNT (22,444) and the answer (33,666) is stored in MASTERCOUNT.
It is possible to use numeric literals with this option also.
005010 ADD 1 TO LINECOUNT.
The example increments (adds one to) the variable LINECOUNT.
A more complicated version of the ADD statement with the TO option:
005010 ADD HERBCOUNT, SPICECOUNT TO INGREDIENTCOUNT, FLAVORINGCOUNT.
before execution  

HERBCOUNT  SPICECOUNT  WORK AREA  INGREDIENTCOUNT  FLAVORINGCOUNT  
0  0  1  1  1  0  0  2  2  2  1  2  3  4  5  0  0  1  2  3  
first partial computation  
HERBCOUNT  SPICECOUNT  WORK AREA  INGREDIENTCOUNT  FLAVORINGCOUNT  
0  0  1  1  1  0  0  2  2  2  0  0  3  3  3  1  2  3  4  5  0  0  1  2  3  
first computation complete  
HERBCOUNT  SPICECOUNT  WORK AREA  INGREDIENTCOUNT  FLAVORINGCOUNT  
0  0  1  1  1  0  0  2  2  2  0  0  3  3  3  1  2  6  7  8  0  0  1  2  3  
after execution  
HERBCOUNT  SPICECOUNT  WORK AREA  INGREDIENTCOUNT  FLAVORINGCOUNT  
0  0  1  1  1  0  0  2  2  2  0  0  3  3  3  1  2  6  7  8  0  0  4  5  6 
In the example, the numbers stored in HERBCOUNT (111) and SPICECOUNT (222) are added together and temporarily stored in a compiler generated work area (333). The subtotal in the work area (333) is then added to the number stored in the variable INGREDIENTCOUNT (12,345), with the result stored in INGREDIENTCOUNT (12,678). The subtotal in the work area (333) is then added separately to the number stored in the variable FLAVORINGCOUNT (123) and this (in this case, a different answer) is stored in the variable FLAVORINGCOUNT (456).
The ROUNDED option may be placed after any identifier that follows the GIVING option or the TO option. This rounds off the results of the ADD before the answer is stored.
005010 ADD OLDSUBTOTAL, CURRENTCOUNT
005020 GIVING NEWSUBTOTAL ROUNDED, MASTERCOUNT.
The addition of OLDSUBTOTAL and CURRENTCOUNT is stored into both NEWSUBTOTAL and MASTERCOUNT, but the answer stored in NEWSUBTOTAL is rounded, while the answer stored in MASTERCOUNT is not rounded.
005010 ADD CURRENTCOUNT TO MASTERCOUNT ROUNDED.
The numbers stored in the variables CURRENTCOUNT and MASTERCOUNT are added together, and the rounded off answer is tored in MASTERCOUNT.
All fields added toegtehr with the ADD statement are aligned to the decimal point in each field. All additions are algebraiac, so the resulting answer will have the correct sign according to the rules of elementary algebra.
The programmer needs to be careful about overflow. If the variable receiving the answer does not have enough digits to hold the entire answer (the variable is to small or the answer is too large, depending on how you view it), then significant digits will be lost and the variable will hold an incorrect answer. It is the responsibility of the programmer to make sure that the receiving field is large enough to hold all of the digits for the largest possible answer.
An integer variable may be incremented by either of the following assignment statements:
$i = $i + 1;
OR
$i++;
Here is a little bit of college level work on addition.
A system of numbers os considered to be closed under an operation if it reproduces itself.
S is a set of numbers. S is closed under addition if for any two numbers a and b in the set S, the sum of a + b is also a number in the set S. It follows that any sum of two, three, four, or any finite number of elements in S also belong to S.
The set of all natural numbers {1, 2, 3, …} is closed under addition.
The set of all even integers {0, ±2, ±4, ±6, …} is closed under addition. The set of all odd integers is not closed under addition.
The set of all positive real numbers is closed under addition.
The ste of all integers is closed under addition.
The set of all rational numbers is closed under addition.
The set of all real numbers is closed under addition.
The set of all complex numbers is closed under addition.
APL +(x) — APL dyadic function that returns the sum (addition) of a scalar, vector, or matrix. Form is A+B.
LISP ADD1(x) — LISP function that takes one argument of type fixed or float and increments the value.
PL/I ADD(x,y,p[.q]) — Pl/I builtin function that returns the sum of two variables (x plus y) in a field of p digits with the option of q fractional digits.
PostScript add(x) — PosScript arithmetic operator that places on the top of the stack the sum of the two numbers previously on the top of stack. Returns an integer if both operands are integers and the result is within the integer range, otherwise returns a real.
PL/I SUM(x) — Pl/I builtin function that returns the total sum of all of the values of the elements in an arithmetic array x. Note that the IBM PL/IF compiler converts all array values to floating point to perform the operation and returns a result in floating point. This may create small rounding errors for commercial programmers needing dollar and cents accuracy.
For most processors, integer arithmetic is faster than floating point arithmetic. This can be reversed in special cases such digital signal processors.
On many processors, floating point arithmetic is in an optional unit or optional coprocessor rather than being included on the main processor. This allows the manufacturer to charge less for the business machines that don’t need floating point arithmetic.
The basic four integer arithmetic operations are addition, subtraction, multiplication, and division. Arithmetic operations can be signed or unsigned (unsigned is useful for effective address computations). Some older processors don’t include hardware multiplication and division. Some processors don’t include actual multiplication or division hardware, instead looking up the answer in a massive table of results embedded in the processor.
A specialized, but common, form of addition is an increment instruction, which adds one to the contents of a register or memory location. For address computations, “increment” may mean the addition of a constant other than one. Some processors have “short” or “quick” addition instructions that extend increment to include a small range of positive values.
See also Integer Arithmetic Instructions in Assembly Language and Floating Point Arithmetic Instructions in Assembly Language
Coding example: I am making heavily documented and explained open source code for a method to play music for free — almost any song, no subscription fees, no download costs, no advertisements, all completely legal. This is done by building a frontend to YouTube (which checks the copyright permissions for you).
View music player in action: www.musicinpublic.com/.
Create your own copy from the original source code/ (presented for learning programming).
return to table of contents
free downloadable college text book
Because I no longer have the computer and software to make PDFs, the book is available as an HTML file, which you can convert into a PDF.
previous page  next page 
Tweets by @osdata 
free computer programming text book projectBuilding a free downloadable text book on computer programming for university, college, community college, and high school classes in computer programming. If you like the idea of this project, Supporting the entire project: If you have a business or organization that can support the entire cost of this project, please contact Pr Ntr Kmt (my church) free downloadable college text book on computer programming. 
This web site handcrafted on Macintosh computers using Tom Bender’s TexEdit Plus and served using FreeBSD .
†UNIX used as a generic term unless specifically used as a trademark (such as in the phrase “UNIX certified”). UNIX is a registered trademark in the United States and other countries, licensed exclusively through X/Open Company Ltd.
Names and logos of various OSs are trademarks of their respective owners.
Copyright © 2010 Milo
Created: October 31, 2010
Last Updated: December 29, 2010
return to table of contents
free downloadable college text book
previous page  next page 