0% found this document useful (0 votes)
33 views

Lab 5: Using Go To, Looping

This document contains code listings for several programs that generate multiplication tables. It shows how to use GO TO, PERFORM multiple times, PERFORM VARYING, and pausing output every 15 lines to avoid a "press enter" bug. The programs get input from the user, perform calculations in nested loops, and output multiplication tables of varying sizes.

Uploaded by

LG LøGeS
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views

Lab 5: Using Go To, Looping

This document contains code listings for several programs that generate multiplication tables. It shows how to use GO TO, PERFORM multiple times, PERFORM VARYING, and pausing output every 15 lines to avoid a "press enter" bug. The programs get input from the user, perform calculations in nested loops, and output multiplication tables of varying sizes.

Uploaded by

LG LøGeS
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 8

Lab 5 : Using Go To, Looping

TYPE: Listing 5.1. Using GO TO.


000100 IDENTIFICATION DIVISION.
000200 PROGRAM-ID. QUIT01.
000300 ENVIRONMENT DIVISION.
000400 DATA DIVISION.
000500 WORKING-STORAGE SECTION.
000600
000700 01 YES-OR-NO PIC X.
000800
000900 PROCEDURE DIVISION.
001000 PROGRAM-BEGIN.
001100
001200 PERFORM SHALL-WE-CONTINUE.
001300 IF YES-OR-NO = "N"
001400 GO TO PROGRAM-DONE.
001500
001600 PERFORM MAIN-LOGIC.
001700
001800 PROGRAM-DONE.
001900 STOP RUN.
002000
002100 SHALL-WE-CONTINUE.
002200 DISPLAY "Continue (Y/N)?".
002300 ACCEPT YES-OR-NO.
002400 IF YES-OR-NO = "n"
002500 MOVE "N" TO YES-OR-NO.
002600
002700 MAIN-LOGIC.
002800 DISPLAY "This is the main logic.".
002900

000100 IDENTIFICATION DIVISION.


000200 PROGRAM-ID. MULT01.
000300*--------------------------------------------------
000400* This program asks the user for a number for a
000500* multiplication table,
000600* and then displays a table for that number times
000700* the values 1 through 12.
000800*--------------------------------------------------
000900 ENVIRONMENT DIVISION.
001000 DATA DIVISION.
001100 WORKING-STORAGE SECTION.
001200
001300 01 THE-NUMBER PIC 99.
001400 01 THE-MULTIPLIER PIC 999.
001500 01 THE-PRODUCT PIC 9999.
001600
001700 PROCEDURE DIVISION.
001800* LEVEL 1 ROUTINES
001900 PROGRAM-BEGIN.
002000 PERFORM PROGRAM-INITIALIZATION.
002100 PERFORM GET-TABLE-NUMBER.
002200 PERFORM DISPLAY-THE-TABLE.
002300
002400 PROGRAM-DONE.
002500 STOP RUN.
002600
002700* LEVEL 2 ROUTINES
002800 PROGRAM-INITIALIZATION.
002900 MOVE 0 TO THE-MULTIPLIER.
003000
003100 GET-TABLE-NUMBER.
003200 DISPLAY
003300 "Which multiplication table (01-99)?".
003400 ACCEPT THE-NUMBER.
003500
003600 DISPLAY-THE-TABLE.
003700 DISPLAY "The " THE-NUMBER `s table is:".
003800 PERFORM CALCULATE-AND-DISPLAY.
003900
004000* LEVEL 3 ROUTINES.
004100 CALCULATE-AND-DISPLAY.
004200 ADD 1 TO THE-MULTIPLIER.
004300 COMPUTE THE-PRODUCT = THE-NUMBER * THE-MULTIPLIER.
004400 DISPLAY
004500 THE-NUMBER " * " THE-MULTIPLIER " = " THE-PRODUCT.
004600 IF THE-MULTIPLIER < 12
004700 GO TO CALCULATE-AND-DISPLAY.
004800

ANALYSIS: Listing 5.3. Using PERFORM multiple TIMES.


000100 IDENTIFICATION DIVISION.
000200 PROGRAM-ID. MULT02.
000300*--------------------------------------------------
000400* This program asks the user for a number for a
000500* multiplication table,
000600* and then displays a table for that number times
000700* the values 1 through 12.
000800*--------------------------------------------------
000900 ENVIRONMENT DIVISION.
001000 DATA DIVISION.
001100 WORKING-STORAGE SECTION.
001200
001300 01 THE-NUMBER PIC 99.
001400 01 THE-MULTIPLIER PIC 999.
001500 01 THE-PRODUCT PIC 9999.
001600
001700 PROCEDURE DIVISION.
001800* LEVEL 1 ROUTINES
001900 PROGRAM-BEGIN.
002000 PERFORM PROGRAM-INITIALIZATION.
002100 PERFORM GET-TABLE-NUMBER.
002200 PERFORM DISPLAY-THE-TABLE.
002300
002400 PROGRAM-DONE.
002500 STOP RUN.
002600
002700* LEVEL 2 ROUTINES
002800 PROGRAM-INITIALIZATION.
002900 MOVE 0 TO THE-MULTIPLIER.
003000
003100 GET-TABLE-NUMBER.
003200 DISPLAY
003300 "Which multiplication table (01-99)?".
003400 ACCEPT THE-NUMBER.
003500
003600 DISPLAY-THE-TABLE.
003700 DISPLAY "The " THE-NUMBER "`s table is:".
003800 PERFORM CALCULATE-AND-DISPLAY 12 TIMES.
003900
004000* LEVEL 3 ROUTINES.
004100 CALCULATE-AND-DISPLAY.
004200 ADD 1 TO THE-MULTIPLIER.
004300 COMPUTE THE-PRODUCT = THE-NUMBER * THE-MULTIPLIER.
004400 DISPLAY
004500 THE-NUMBER " * " THE-MULTIPLIER " = " THE-PRODUCT.

000100 IDENTIFICATION DIVISION.


000200 PROGRAM-ID. MULT03.
000300*--------------------------------------------------
000400* This program asks the user for a number for a
000500* multiplication table, and a table size
000600* and then displays a table for that number times
000700* the values 1 through HOW-MANY.
000800*
000900*
001000*--------------------------------------------------
001100 ENVIRONMENT DIVISION.
001200 DATA DIVISION.
001300 WORKING-STORAGE SECTION.
001400
001500 01 THE-NUMBER PIC 99.
001600 01 THE-MULTIPLIER PIC 999.
001700 01 THE-PRODUCT PIC 9999.
001800 01 HOW-MANY PIC 99.
001900
002000
002100
002200
002300 PROCEDURE DIVISION.
002400* LEVEL 1 ROUTINES
002500 PROGRAM-BEGIN.
002600 PERFORM PROGRAM-INITIALIZATION.
002700 PERFORM GET-TABLE-DATA.
002800 PERFORM DISPLAY-THE-TABLE.
002900
003000 PROGRAM-DONE.
003100 STOP RUN.
003200
003300* LEVEL 2 ROUTINES
003400 PROGRAM-INITIALIZATION.
003500 MOVE 0 TO THE-MULTIPLIER.
003600
003700
003800 GET-TABLE-DATA.
003900 DISPLAY
004000 "Which multiplication table(01-99)?".
004100 ACCEPT THE-NUMBER.
004200
004300 DISPLAY "How many entries would you like (01-99)?".
004400 ACCEPT HOW-MANY.
004500
004600 DISPLAY-THE-TABLE.
004700 DISPLAY "The " THE-NUMBER "`s table is:".
004800 PERFORM CALCULATE-AND-DISPLAY HOW-MANY TIMES.
004900
005000* LEVEL 3 ROUTINES.
005100 CALCULATE-AND-DISPLAY.
005200 ADD 1 TO THE-MULTIPLIER.
005300 COMPUTE THE-PRODUCT = THE-NUMBER * THE-MULTIPLIER.
005400 DISPLAY
005500 THE-NUMBER " * " THE-MULTIPLIER " = " THE-PRODUCT.
005600
TYPE: Listing 5.5. Pausing after 15 lines.
000100 IDENTIFICATION DIVISION.
000200 PROGRAM-ID. MULT04.
000300*--------------------------------------------------
000400* This program asks the user for a number for a
000500* multiplication table, and a table size
000600* and then displays a table for that number
000700* times the values 1 through HOW-MANY.
000800*
000900* The display is paused after each 15 lines.
001000*--------------------------------------------------
001100 ENVIRONMENT DIVISION.
001200 DATA DIVISION.
001300 WORKING-STORAGE SECTION.
001400
001500 01 THE-NUMBER PIC 99.
001600 01 THE-MULTIPLIER PIC 999.
001700 01 THE-PRODUCT PIC 9999.
001800 01 HOW-MANY PIC 99.
001900 01 SCREEN-LINES PIC 99.
002000
002100 01 A-DUMMY PIC X.
002200
002300 PROCEDURE DIVISION.
002400* LEVEL 1 ROUTINES
002500 PROGRAM-BEGIN.
002600 PERFORM PROGRAM-INITIALIZATION.
002700 PERFORM GET-TABLE-DATA.
002800 PERFORM DISPLAY-THE-TABLE.
002900
003000 PROGRAM-DONE.
003100 STOP RUN.
003200
003300* LEVEL 2 ROUTINES
003400 PROGRAM-INITIALIZATION.
003500 MOVE 0 TO THE-MULTIPLIER.
003600 MOVE 0 TO SCREEN-LINES.
003700
003800 GET-TABLE-DATA.
003900 DISPLAY
004000 "Which multiplication table (01-99)?".
004100 ACCEPT THE-NUMBER.
004200
004300 DISPLAY "How many entries would you like (01-99)?".
004400 ACCEPT HOW-MANY.
004500
004600 DISPLAY-THE-TABLE.
004700 DISPLAY "The " THE-NUMBER "`s table is:".
004800 PERFORM CALCULATE-AND-DISPLAY HOW-MANY TIMES.
004900
005000* LEVEL 3 ROUTINES.
005100 CALCULATE-AND-DISPLAY.
005200 ADD 1 TO THE-MULTIPLIER.
005300 COMPUTE THE-PRODUCT = THE-NUMBER * THE-MULTIPLIER.
005400 DISPLAY
005500 THE-NUMBER " * " THE-MULTIPLIER " = " THE-PRODUCT.
005600
005700 ADD 1 TO SCREEN-LINES.
005800 IF SCREEN-LINES = 15
005900 DISPLAY "Press ENTER to continue . . ."
006000 ACCEPT A-DUMMY
006100 MOVE 0 TO SCREEN-LINES.
006200

TYPE: Listing 5.12. Using PERFORM VARYING UNTIL.


000100 IDENTIFICATION DIVISION.
000200 PROGRAM-ID. MULT05.
000300*--------------------------------------------------
000400* This program asks the user for a number for a
000500* multiplication table, and a table size and then
000600* displays a table for that number times the values
000700* 1 through HOW-MANY using PERFORM VARYING UNTIL.
000800*--------------------------------------------------
000900 ENVIRONMENT DIVISION.
001000 DATA DIVISION.
001100 WORKING-STORAGE SECTION.
001200
001300 01 THE-NUMBER PIC 99.
001400 01 THE-MULTIPLIER PIC 999.
001500 01 THE-PRODUCT PIC 9999.
001600 01 HOW-MANY PIC 99.
001700
001800 PROCEDURE DIVISION.
001900* LEVEL 1 ROUTINES
002000 PROGRAM-BEGIN.
002100 PERFORM PROGRAM-INITIALIZATION.
002200 PERFORM GET-TABLE-DATA.
002300 PERFORM DISPLAY-THE-TABLE.
002400
002500 PROGRAM-DONE.
002600 STOP RUN.
002700
002800* LEVEL 2 ROUTINES
002900 PROGRAM-INITIALIZATION.
003000* MOVE 0 TO THE-MULTIPLIER.
003100* is no longer needed
003200
003300 GET-TABLE-DATA.
003400 DISPLAY
003500 "Which multiplication table(01-99)?".
003600 ACCEPT THE-NUMBER.
003700
003800 DISPLAY "How many entries would you like (01-99)?".
003900 ACCEPT HOW-MANY.
004000
004100 DISPLAY-THE-TABLE.
004200 DISPLAY "The " THE-NUMBER "`s table is:".
004300 PERFORM CALCULATE-AND-DISPLAY
004400 VARYING THE-MULTIPLIER
004500 FROM 1 BY 1
004600 UNTIL THE-MULTIPLIER > HOW-MANY.
004700
004800* LEVEL 3 ROUTINES.
004900 CALCULATE-AND-DISPLAY.
005000
005100 COMPUTE THE-PRODUCT = THE-NUMBER * THE-MULTIPLIER.
005200 DISPLAY
005300 THE-NUMBER " * " THE-MULTIPLIER " = " THE-PRODUCT.
005400

TYPE: Listing 5.15. Eliminating the Press ENTER bug.


000100 IDENTIFICATION DIVISION.
000200 PROGRAM-ID. MULT06.
000300*--------------------------------------------------
000400* This program asks the user for a number for a
000500* multiplication table, and a table size
000600* and then displays a table for that number
000700* times the values 1 through HOW-MANY.
000800*
000900* The display is paused after each 15 lines.
001000*--------------------------------------------------
001100 ENVIRONMENT DIVISION.
001200 DATA DIVISION.
001300 WORKING-STORAGE SECTION.
001400
001500 01 THE-NUMBER PIC 99.
001600 01 THE-MULTIPLIER PIC 999.
001700 01 THE-PRODUCT PIC 9999.
001800 01 HOW-MANY PIC 99.
001900 01 SCREEN-LINES PIC 99.
002000
002100 01 A-DUMMY PIC X.
002200
002300 PROCEDURE DIVISION.
002400* LEVEL 1 ROUTINES
002500 PROGRAM-BEGIN.
002600 PERFORM PROGRAM-INITIALIZATION.
002700 PERFORM GET-TABLE-DATA.
002800 PERFORM DISPLAY-THE-TABLE.
002900
003000 PROGRAM-DONE.
003100 STOP RUN.
003200
003300* LEVEL 2 ROUTINES
003400 PROGRAM-INITIALIZATION.
003500
003600 MOVE 0 TO SCREEN-LINES.
003700
003800 GET-TABLE-DATA.
003900 DISPLAY
004000 "Which multiplication table(01-99)?".
004100 ACCEPT THE-NUMBER.
004200
004300 DISPLAY "How many entries would you like (01-99)?".
004400 ACCEPT HOW-MANY.
004500
004600 DISPLAY-THE-TABLE.
004700 DISPLAY "The " THE-NUMBER "`s table is:".
004800 PERFORM CALCULATE-AND-DISPLAY
004900 VARYING THE-MULTIPLIER
005000 FROM 1 BY 1
005100 UNTIL THE-MULTIPLIER > HOW-MANY.
005200
005300* LEVEL 3 ROUTINES.
005400 CALCULATE-AND-DISPLAY.
005500
005600 IF SCREEN-LINES = 15
005700 DISPLAY "Press ENTER to continue . . ."
005800 ACCEPT A-DUMMY
005900 MOVE 0 TO SCREEN-LINES.
006000
006100 COMPUTE THE-PRODUCT = THE-NUMBER * THE-MULTIPLIER.
006200 DISPLAY
006300 THE-NUMBER " * " THE-MULTIPLIER " = " THE-PRODUCT.
006400
006500 ADD 1 TO SCREEN-LINES.
006600
TYPE: Listing 5.10. Using PERFORM UNTIL in a loop.
003700 MOVE 1 TO THE-MULTIPLIER.
003800 PERFORM CALCULATE-AND-DISPLAY
003900
004000 UNTIL THE-MULTIPLIER > 12.
004100
004200 CALCULATE-AND-DISPLAY.
004300 COMPUTE THE-PRODUCT = THE-NUMBER * THE-MULTIPLIER.
004400 DISPLAY
004500 THE-NUMBER " * " THE-MULTIPLIER " = " THE-PRODUCT.
004600 ADD 1 TO THE-MULTIPLIER.

TYPE: Listing 5.11. Using PERFORM VARYING UNTIL.


003700
003800 PERFORM CALCULATE-AND-DISPLAY
003900 VARYING THE-MULTIPLIER FROM 1 BY 1
004000 UNTIL THE-MULTIPLIER > 12.
004100
004200 CALCULATE-AND-DISPLAY.
004300 COMPUTE THE-PRODUCT = THE-NUMBER * THE-MULTIPLIER.
004400 DISPLAY
004500 THE-NUMBER " * " THE-MULTIPLIER " = " THE-PRODUCT.
004600

You might also like