1、,General Introduction Algorithms Author: Michael Coughlan Edited by: Carla Lowery,Algorithm,Lets write a program,A program is a collection of statements written according to a precise set of rules, which the computer interprets and subsequently executes. A computer executes program statements one af
2、ter another in sequence until it reaches the end of the program unless some statement in the program alters the order of execution. Lets write a program to accept two numbers from the user, multiply them together and display the result on the screen.,First!,Two common techniques for expressing progr
3、am logic before the actual program is written Flowcharts a pictorial representation of the logic inherent in a program. Pseudocode expresses a programs logic more concisely than a flowchart and is represented as “neat notes to oneself”,Program Statements,We need a statement to take in the first numb
4、er and store it in a named memory location. ACCEPT Num1. We need a statement to take in the second number and store it in a named memory location. ACCEPT Num2. We need a statement to multiply the two numbers together and store the result in a named location. MULTIPLY Num1 BY Num2 GIVING Result. We n
5、eed a statement to display the result on the screen. DISPLAY “Result is = “, Result.,IDENTIFICATION DIVISION. PROGRAM-ID. FragmentA. AUTHOR. Programmers name.DATA DIVISION. WORKING-STORAGE SECTION. 01 Num1 PIC 9 VALUE ZEROS. 01 Num2 PIC 9 VALUE ZEROS. 01 Result PIC 99 VALUE ZEROS.PROCEDURE DIVISION.
6、 Calc-Result.ACCEPT Num1.MULTIPLY Num1 BY Num2 GIVING Result.ACCEPT Num2.DISPLAY “Result is = “, Result.STOP RUN.,Num1 Num2 Result,0,0,00,DATA,IDENTIFICATION DIVISION. PROGRAM-ID. FragmentA. AUTHOR. Programmers name.DATA DIVISION. WORKING-STORAGE SECTION. 01 Num1 PIC 9 VALUE ZEROS. 01 Num2 PIC 9 VAL
7、UE ZEROS. 01 Result PIC 99 VALUE ZEROS.PROCEDURE DIVISION. Calc-Result.ACCEPT Num1.MULTIPLY Num1 BY Num2 GIVING Result.ACCEPT Num2.DISPLAY “Result is = “, Result.STOP RUN.,Num1 Num2 Result,9,0,00,DATA,IDENTIFICATION DIVISION. PROGRAM-ID. FragmentA. AUTHOR. Programmers name.DATA DIVISION. WORKING-STO
8、RAGE SECTION. 01 Num1 PIC 9 VALUE ZEROS. 01 Num2 PIC 9 VALUE ZEROS. 01 Result PIC 99 VALUE ZEROS.PROCEDURE DIVISION. Calc-Result.ACCEPT Num1.MULTIPLY Num1 BY Num2 GIVING Result.ACCEPT Num2.DISPLAY “Result is = “, Result.STOP RUN.,Num1 Num2 Result,9,0,00,DATA,IDENTIFICATION DIVISION. PROGRAM-ID. Frag
9、mentA. AUTHOR. Programmers name.DATA DIVISION. WORKING-STORAGE SECTION. 01 Num1 PIC 9 VALUE ZEROS. 01 Num2 PIC 9 VALUE ZEROS. 01 Result PIC 99 VALUE ZEROS.PROCEDURE DIVISION. Calc-Result.ACCEPT Num1.MULTIPLY Num1 BY Num2 GIVING Result.ACCEPT Num2.DISPLAY “Result is = “, Result.STOP RUN.,Num1 Num2 Re
10、sult,0,5,00,DATA,IDENTIFICATION DIVISION. PROGRAM-ID. FragmentA. AUTHOR. Programmers name.DATA DIVISION. WORKING-STORAGE SECTION. 01 Num1 PIC 9 VALUE ZEROS. 01 Num2 PIC 9 VALUE ZEROS. 01 Result PIC 99 VALUE ZEROS.PROCEDURE DIVISION. Calc-Result.ACCEPT Num1.MULTIPLY Num1 BY Num2 GIVING Result.ACCEPT
11、Num2.DISPLAY “Result is = “, Result.STOP RUN.,Num1 Num2 Result,9,5,00,DATA,Oh No! We got the wrong answer. Lets try again.,IDENTIFICATION DIVISION. PROGRAM-ID. FragmentB. AUTHOR. Programmers name.DATA DIVISION. WORKING-STORAGE SECTION. 01 Num1 PIC 9 VALUE ZEROS. 01 Num2 PIC 9 VALUE ZEROS. 01 Result
12、PIC 99 VALUE ZEROS.PROCEDURE DIVISION. Calc-Result.ACCEPT Num1.ACCEPT Num2.DISPLAY “Result is = “, Result.MULTIPLY Num1 BY Num2 GIVING Result.STOP RUN.,Num1 Num2 Result,0,0,00,DATA,IDENTIFICATION DIVISION. PROGRAM-ID. FragmentB. AUTHOR. Programmers name.DATA DIVISION. WORKING-STORAGE SECTION. 01 Num
13、1 PIC 9 VALUE ZEROS. 01 Num2 PIC 9 VALUE ZEROS. 01 Result PIC 99 VALUE ZEROS.PROCEDURE DIVISION. Calc-Result.ACCEPT Num1.ACCEPT Num2.DISPLAY “Result is = “, Result.MULTIPLY Num1 BY Num2 GIVING Result.STOP RUN.,Num1 Num2 Result,9,0,00,DATA,IDENTIFICATION DIVISION. PROGRAM-ID. FragmentB. AUTHOR. Progr
14、ammers name.DATA DIVISION. WORKING-STORAGE SECTION. 01 Num1 PIC 9 VALUE ZEROS. 01 Num2 PIC 9 VALUE ZEROS. 01 Result PIC 99 VALUE ZEROS.PROCEDURE DIVISION. Calc-Result.ACCEPT Num1.ACCEPT Num2.DISPLAY “Result is = “, Result.MULTIPLY Num1 BY Num2 GIVING Result.STOP RUN.,Num1 Num2 Result,9,5,00,DATA,IDE
15、NTIFICATION DIVISION. PROGRAM-ID. FragmentB. AUTHOR. Programmers name.DATA DIVISION. WORKING-STORAGE SECTION. 01 Num1 PIC 9 VALUE ZEROS. 01 Num2 PIC 9 VALUE ZEROS. 01 Result PIC 99 VALUE ZEROS.PROCEDURE DIVISION. Calc-Result.ACCEPT Num1.ACCEPT Num2.DISPLAY “Result is = “, Result.MULTIPLY Num1 BY Num
16、2 GIVING Result.STOP RUN.,Num1 Num2 Result,9,5,00,DATA,Oh No! We got the wrong answer again. Lets have one more try.,IDENTIFICATION DIVISION. PROGRAM-ID. FragmentB. AUTHOR. Programmers name.DATA DIVISION. WORKING-STORAGE SECTION. 01 Num1 PIC 9 VALUE ZEROS. 01 Num2 PIC 9 VALUE ZEROS. 01 Result PIC 99
17、 VALUE ZEROS.PROCEDURE DIVISION. Calc-Result.ACCEPT Num1.ACCEPT Num2.DISPLAY “Result is = “, Result.MULTIPLY Num1 BY Num2 GIVING Result.STOP RUN.,Num1 Num2 Result,9,5,45,DATA,Num1 Num2 Result,IDENTIFICATION DIVISION. PROGRAM-ID. Sequence-Program. AUTHOR. Programmers name.DATA DIVISION. WORKING-STORA
18、GE SECTION. 01 Num1 PIC 9 VALUE ZEROS. 01 Num2 PIC 9 VALUE ZEROS. 01 Result PIC 99 VALUE ZEROS.PROCEDURE DIVISION. Calc-Result.ACCEPT Num1.ACCEPT Num2.MULTIPLY Num1 BY Num2 GIVING Result.DISPLAY “Result is = “, Result.STOP RUN.,0,0,00,DATA,IDENTIFICATION DIVISION. PROGRAM-ID. Sequence-Program. AUTHO
19、R. Programmers name.DATA DIVISION. WORKING-STORAGE SECTION. 01 Num1 PIC 9 VALUE ZEROS. 01 Num2 PIC 9 VALUE ZEROS. 01 Result PIC 99 VALUE ZEROS.PROCEDURE DIVISION. Calc-Result.ACCEPT Num1.ACCEPT Num2.MULTIPLY Num1 BY Num2 GIVING Result.DISPLAY “Result is = “, Result.STOP RUN.,9,0,00,Num1 Num2 Result,
20、DATA,IDENTIFICATION DIVISION. PROGRAM-ID. Sequence-Program. AUTHOR. Programmers name.DATA DIVISION. WORKING-STORAGE SECTION. 01 Num1 PIC 9 VALUE ZEROS. 01 Num2 PIC 9 VALUE ZEROS. 01 Result PIC 99 VALUE ZEROS.PROCEDURE DIVISION. Calc-Result.ACCEPT Num1.ACCEPT Num2.MULTIPLY Num1 BY Num2 GIVING Result.
21、DISPLAY “Result is = “, Result.STOP RUN.,9,5,00,Num1 Num2 Result,DATA,IDENTIFICATION DIVISION. PROGRAM-ID. Sequence-Program. AUTHOR. Programmers name.DATA DIVISION. WORKING-STORAGE SECTION. 01 Num1 PIC 9 VALUE ZEROS. 01 Num2 PIC 9 VALUE ZEROS. 01 Result PIC 99 VALUE ZEROS.PROCEDURE DIVISION. Calc-Re
22、sult.ACCEPT Num1.ACCEPT Num2.MULTIPLY Num1 BY Num2 GIVING Result.DISPLAY “Result is = “, Result.STOP RUN.,9,5,45,Num1 Num2 Result,DATA,IDENTIFICATION DIVISION. PROGRAM-ID. Sequence-Program. AUTHOR. Programmers name.DATA DIVISION. WORKING-STORAGE SECTION. 01 Num1 PIC 9 VALUE ZEROS. 01 Num2 PIC 9 VALU
23、E ZEROS. 01 Result PIC 99 VALUE ZEROS.PROCEDURE DIVISION. Calc-Result.ACCEPT Num1.ACCEPT Num2.MULTIPLY Num1 BY Num2 GIVING Result.DISPLAY “Result is = “, Result.STOP RUN.,9,5,45,Num1 Num2 Result,DATA,Right At last! Its not enough to know what statements we need. We must make sure the computer execut
24、es them in the right order.,Sequence. Selection (a decision). Iteration (a loop).,Structured Programs are written using three main programming or logic structures. Page 54,Num1 Num2 Result Operator,IDENTIFICATION DIVISION. PROGRAM-ID. Selection-Program. AUTHOR. Programmers name.DATA DIVISION. WORKIN
25、G-STORAGE SECTION. 01 Num1 PIC 9 VALUE ZEROS. 01 Num2 PIC 9 VALUE ZEROS. 01 Result PIC 99 VALUE ZEROS. 01 Operator PIC X VALUE SPACE.PROCEDURE DIVISION. Calculator.ACCEPT Num1.ACCEPT Num2.ACCEPT OperatorIF Operator = “+“ THENADD Num1, Num2 GIVING ResultEND-IFIF Operator = “*“ THENMULTIPLY Num1 BY Nu
26、m2 GIVING ResultEND-IF.DISPLAY “Result is = “, Result.STOP RUN.,0,0,00,DATA,_,IDENTIFICATION DIVISION. PROGRAM-ID. Selection-Program. AUTHOR. Programmers name.DATA DIVISION. WORKING-STORAGE SECTION. 01 Num1 PIC 9 VALUE ZEROS. 01 Num2 PIC 9 VALUE ZEROS. 01 Result PIC 99 VALUE ZEROS. 01 Operator PIC X
27、 VALUE SPACE.PROCEDURE DIVISION. Calculator.ACCEPT Num1.ACCEPT Num2.ACCEPT OperatorIF Operator = “+“ THENADD Num1, Num2 GIVING ResultEND-IFIF Operator = “*“ THENMULTIPLY Num1 BY Num2 GIVING ResultEND-IF.DISPLAY “Result is = “, Result.STOP RUN.,Num1 Num2 Result Operator,7,0,00,DATA,_,IDENTIFICATION D
28、IVISION. PROGRAM-ID. Selection-Program. AUTHOR. Programmers name.DATA DIVISION. WORKING-STORAGE SECTION. 01 Num1 PIC 9 VALUE ZEROS. 01 Num2 PIC 9 VALUE ZEROS. 01 Result PIC 99 VALUE ZEROS. 01 Operator PIC X VALUE SPACE.PROCEDURE DIVISION. Calculator.ACCEPT Num1.ACCEPT Num2.ACCEPT OperatorIF Operator
29、 = “+“ THENADD Num1, Num2 GIVING ResultEND-IFIF Operator = “*“ THENMULTIPLY Num1 BY Num2 GIVING ResultEND-IF.DISPLAY “Result is = “, Result.STOP RUN.,Num1 Num2 Result Operator,7,3,00,DATA,_,IDENTIFICATION DIVISION. PROGRAM-ID. Selection-Program. AUTHOR. Programmers name.DATA DIVISION. WORKING-STORAG
30、E SECTION. 01 Num1 PIC 9 VALUE ZEROS. 01 Num2 PIC 9 VALUE ZEROS. 01 Result PIC 99 VALUE ZEROS. 01 Operator PIC X VALUE SPACE.PROCEDURE DIVISION. Calculator.ACCEPT Num1.ACCEPT Num2.ACCEPT OperatorIF Operator = “+“ THENADD Num1, Num2 GIVING ResultEND-IFIF Operator = “*“ THENMULTIPLY Num1 BY Num2 GIVIN
31、G ResultEND-IF.DISPLAY “Result is = “, Result.STOP RUN.,Num1 Num2 Result Operator,7,3,00,DATA,+,IDENTIFICATION DIVISION. PROGRAM-ID. Selection-Program. AUTHOR. Programmers name.DATA DIVISION. WORKING-STORAGE SECTION. 01 Num1 PIC 9 VALUE ZEROS. 01 Num2 PIC 9 VALUE ZEROS. 01 Result PIC 99 VALUE ZEROS.
32、 01 Operator PIC X VALUE SPACE.PROCEDURE DIVISION. Calculator.ACCEPT Num1.ACCEPT Num2.ACCEPT OperatorIF Operator = “+“ THENADD Num1, Num2 GIVING ResultEND-IFIF Operator = “*“ THENMULTIPLY Num1 BY Num2 GIVING ResultEND-IF.DISPLAY “Result is = “, Result.STOP RUN.,Num1 Num2 Result Operator,7,3,00,DATA,
33、+,IDENTIFICATION DIVISION. PROGRAM-ID. Selection-Program. AUTHOR. Programmers name.DATA DIVISION. WORKING-STORAGE SECTION. 01 Num1 PIC 9 VALUE ZEROS. 01 Num2 PIC 9 VALUE ZEROS. 01 Result PIC 99 VALUE ZEROS. 01 Operator PIC X VALUE SPACE.PROCEDURE DIVISION. Calculator.ACCEPT Num1.ACCEPT Num2.ACCEPT O
34、peratorIF Operator = “+“ THENADD Num1, Num2 GIVING ResultEND-IFIF Operator = “*“ THENMULTIPLY Num1 BY Num2 GIVING ResultEND-IF.DISPLAY “Result is = “, Result.STOP RUN.,Num1 Num2 Result Operator,7,3,10,DATA,+,IDENTIFICATION DIVISION. PROGRAM-ID. Selection-Program. AUTHOR. Programmers name.DATA DIVISI
35、ON. WORKING-STORAGE SECTION. 01 Num1 PIC 9 VALUE ZEROS. 01 Num2 PIC 9 VALUE ZEROS. 01 Result PIC 99 VALUE ZEROS. 01 Operator PIC X VALUE SPACE.PROCEDURE DIVISION. Calculator.ACCEPT Num1.ACCEPT Num2.ACCEPT OperatorIF Operator = “+“ THENADD Num1, Num2 GIVING ResultEND-IFIF Operator = “*“ THENMULTIPLY
36、Num1 BY Num2 GIVING ResultEND-IF.DISPLAY “Result is = “, Result.STOP RUN.,Num1 Num2 Result Operator,7,3,10,DATA,+,IDENTIFICATION DIVISION. PROGRAM-ID. Selection-Program. AUTHOR. Programmers name.DATA DIVISION. WORKING-STORAGE SECTION. 01 Num1 PIC 9 VALUE ZEROS. 01 Num2 PIC 9 VALUE ZEROS. 01 Result P
37、IC 99 VALUE ZEROS. 01 Operator PIC X VALUE SPACE.PROCEDURE DIVISION. Calculator.ACCEPT Num1.ACCEPT Num2.ACCEPT OperatorIF Operator = “+“ THENADD Num1, Num2 GIVING ResultEND-IFIF Operator = “*“ THENMULTIPLY Num1 BY Num2 GIVING ResultEND-IF.DISPLAY “Result is = “, Result.STOP RUN.,Num1 Num2 Result Ope
38、rator,7,3,10,DATA,+,IDENTIFICATION DIVISION. PROGRAM-ID. Iteration-Program. AUTHOR. Programmers name.DATA DIVISION. WORKING-STORAGE SECTION. 01 Num1 PIC 9 VALUE ZEROS. 01 Num2 PIC 9 VALUE ZEROS. 01 Result PIC 99 VALUE ZEROS. 01 Operator PIC X VALUE SPACE.PROCEDURE DIVISION. Calculator.PERFORM 5 TIME
39、SACCEPT Num1ACCEPT Num2ACCEPT OperatorIF Operator = “+“ THENADD Num1, Num2 GIVING ResultEND-IFIF Operator = “*“ THENMULTIPLY Num1 BY Num2 GIVING ResultEND-IFDISPLAY “Result is = “, ResultEND-PERFORM.STOP RUN.,DATA,Num1 Num2 Result Operator,0,0,00,DATA,_,IDENTIFICATION DIVISION. PROGRAM-ID. Iteration
40、-Program. AUTHOR. Programmers name.DATA DIVISION. WORKING-STORAGE SECTION. 01 Num1 PIC 9 VALUE ZEROS. 01 Num2 PIC 9 VALUE ZEROS. 01 Result PIC 99 VALUE ZEROS. 01 Operator PIC X VALUE SPACE.PROCEDURE DIVISION. Calculator.PERFORM 5 TIMESACCEPT Num1ACCEPT Num2ACCEPT OperatorIF Operator = “+“ THENADD Nu
41、m1, Num2 GIVING ResultEND-IFIF Operator = “*“ THENMULTIPLY Num1 BY Num2 GIVING ResultEND-IFDISPLAY “Result is = “, ResultEND-PERFORM.STOP RUN.,DATA,Num1 Num2 Result Operator,0,0,00,DATA,_,IDENTIFICATION DIVISION. PROGRAM-ID. Iteration-Program. AUTHOR. Programmers name.DATA DIVISION. WORKING-STORAGE
42、SECTION. 01 Num1 PIC 9 VALUE ZEROS. 01 Num2 PIC 9 VALUE ZEROS. 01 Result PIC 99 VALUE ZEROS. 01 Operator PIC X VALUE SPACE.PROCEDURE DIVISION. Calculator.PERFORM 5 TIMESACCEPT Num1ACCEPT Num2ACCEPT OperatorIF Operator = “+“ THENADD Num1, Num2 GIVING ResultEND-IFIF Operator = “*“ THENMULTIPLY Num1 BY
43、 Num2 GIVING ResultEND-IFDISPLAY “Result is = “, ResultEND-PERFORM.STOP RUN.,DATA,Num1 Num2 Result Operator,5,0,00,DATA,_,IDENTIFICATION DIVISION. PROGRAM-ID. Iteration-Program. AUTHOR. Programmers name.DATA DIVISION. WORKING-STORAGE SECTION. 01 Num1 PIC 9 VALUE ZEROS. 01 Num2 PIC 9 VALUE ZEROS. 01
44、Result PIC 99 VALUE ZEROS. 01 Operator PIC X VALUE SPACE.PROCEDURE DIVISION. Calculator.PERFORM 5 TIMESACCEPT Num1ACCEPT Num2ACCEPT OperatorIF Operator = “+“ THENADD Num1, Num2 GIVING ResultEND-IFIF Operator = “*“ THENMULTIPLY Num1 BY Num2 GIVING ResultEND-IFDISPLAY “Result is = “, ResultEND-PERFORM
45、.STOP RUN.,DATA,Num1 Num2 Result Operator,5,3,00,DATA,_,IDENTIFICATION DIVISION. PROGRAM-ID. Iteration-Program. AUTHOR. Programmers name.DATA DIVISION. WORKING-STORAGE SECTION. 01 Num1 PIC 9 VALUE ZEROS. 01 Num2 PIC 9 VALUE ZEROS. 01 Result PIC 99 VALUE ZEROS. 01 Operator PIC X VALUE SPACE.PROCEDURE
46、 DIVISION. Calculator.PERFORM 5 TIMESACCEPT Num1ACCEPT Num2ACCEPT OperatorIF Operator = “+“ THENADD Num1, Num2 GIVING ResultEND-IFIF Operator = “*“ THENMULTIPLY Num1 BY Num2 GIVING ResultEND-IFDISPLAY “Result is = “, ResultEND-PERFORM.STOP RUN.,DATA,Num1 Num2 Result Operator,5,3,00,DATA,*,IDENTIFICA
47、TION DIVISION. PROGRAM-ID. Iteration-Program. AUTHOR. Programmers name.DATA DIVISION. WORKING-STORAGE SECTION. 01 Num1 PIC 9 VALUE ZEROS. 01 Num2 PIC 9 VALUE ZEROS. 01 Result PIC 99 VALUE ZEROS. 01 Operator PIC X VALUE SPACE.PROCEDURE DIVISION. Calculator.PERFORM 5 TIMESACCEPT Num1ACCEPT Num2ACCEPT
48、OperatorIF Operator = “+“ THENADD Num1, Num2 GIVING ResultEND-IFIF Operator = “*“ THENMULTIPLY Num1 BY Num2 GIVING ResultEND-IFDISPLAY “Result is = “, ResultEND-PERFORM.STOP RUN.,DATA,Num1 Num2 Result Operator,5,3,00,DATA,*,IDENTIFICATION DIVISION. PROGRAM-ID. Iteration-Program. AUTHOR. Programmers
49、name.DATA DIVISION. WORKING-STORAGE SECTION. 01 Num1 PIC 9 VALUE ZEROS. 01 Num2 PIC 9 VALUE ZEROS. 01 Result PIC 99 VALUE ZEROS. 01 Operator PIC X VALUE SPACE.PROCEDURE DIVISION. Calculator.PERFORM 5 TIMESACCEPT Num1ACCEPT Num2ACCEPT OperatorIF Operator = “+“ THENADD Num1, Num2 GIVING ResultEND-IFIF Operator = “*“ THENMULTIPLY Num1 BY Num2 GIVING ResultEND-IFDISPLAY “Result is = “, ResultEND-PERFORM.STOP RUN.,