34
CPSC3111/CISM3111 COBOL Structured COBOL Programming Text: murach’s structured COBOL Authors: Murach, Prince, Menendez

CPSC3111/CISM3111 COBOL

Embed Size (px)

DESCRIPTION

CPSC3111/CISM3111 COBOL. Structured COBOL Programming Text: murach’s structured COBOL Authors: Murach, Prince, Menendez. What is a Computer?. Components of a Computer Input Unit(s); Keyboard, tape, disks Output Unit(s); CRT, tape, disks Memory (Storage) units [Addresses] - PowerPoint PPT Presentation

Citation preview

Page 1: CPSC3111/CISM3111 COBOL

CPSC3111/CISM3111 COBOL

Structured COBOL ProgrammingText: murach’s structured COBOLAuthors: Murach, Prince, Menendez

Page 2: CPSC3111/CISM3111 COBOL

What is a Computer?

Components of a Computer Input Unit(s); Keyboard, tape, disks Output Unit(s); CRT, tape, disks Memory (Storage) units [Addresses] Control Unit (Executes Instructions) Arithmetic/Logic Unit (Math and Logic) Only ‘understands’ machine language

Page 3: CPSC3111/CISM3111 COBOL

Hardware / Software

Hardware: Physical equipment

Software: Programs, commands, etc. System: O/S, compilers, utilities, etc. Application: User or third party supplied. Languages: Assembler, Basic(VB), Fortran,

RPG, Easytrieve, C, C++, C#, Ada, Java, … Compiler’s job - translate ‘source’ language

to machine language (or ‘byte’ code)

Page 4: CPSC3111/CISM3111 COBOL

Online vs Interactive

Off-line = batch Local Batch Remote Batch

Online = Interactive Many users with terminals (PC’s) Can be either local or remote

Single/Multiple User - Timesharing

Page 5: CPSC3111/CISM3111 COBOL

Data Organization

Bit - Binary digIT - [on/off] or [1/0]Character - byte (8 Bits)Field - One or more Bytes (Characters)Record - One or more FieldsFile - One or more RecordsDatabase - One or more Files Usually contains ‘metadata’

Page 6: CPSC3111/CISM3111 COBOL

Report Components

Page HeadingColumn HeadingsReport Body Possibly with subtotals, etc.

Summary Final totals, summary totals, etc.

Page 7: CPSC3111/CISM3111 COBOL

Program Design

Program Sequence of instructions describing

actions to be taken by the computer

Flowchart Graphical description of program logic Uses rectangles, diamonds, ovals, etc

Pseudocode Symbolic representation of program logic More ENGLISH-like

Page 8: CPSC3111/CISM3111 COBOL

Data Information Needed

Type and SizeTypes Alphabetic (Seldom used = A) Alphanumeric (X) Numeric (Sign and Decimal)

BinaryNumericPacked NumericFloating Point, etc. (Compatibility)

Page 9: CPSC3111/CISM3111 COBOL

Program Development

Define problemDesign test dataDesign programCode programCompile programTest programDocument Program

Page 10: CPSC3111/CISM3111 COBOL

Identifier Rules

30 Character MaximumA-Z, a-z, 0-9, ‘-’ Characters‘-’ not first or last characterUsually at least 1 alphabetic

Page 11: CPSC3111/CISM3111 COBOL

‘CARD’ FORMAT

01 - 06 Line Numbers (XNU)07 Comment / Debug08 - 11 Margin ‘A’12 - 72 Margin ‘B’73 - 80 Identification (XNU)

Page 12: CPSC3111/CISM3111 COBOL

COBOL Divisions

IDENTIFICATION DIVISION.ENVIRONMENT DIVISION.DATA DIVISION.PROCEDURE DIVISION.

Divisions can be divided into SECTIONSSections can be divided into PARAGRAPHSParagraphs are composed of SENTENCES

Page 13: CPSC3111/CISM3111 COBOL

IDENTIFICATION

IDENTIFICATION DIVISION.PROGRAM-ID. PROG1.

All other entries are obsoleteAn ‘*’ in cc07 can be used (Comment)

Page 14: CPSC3111/CISM3111 COBOL

ENVIRONMENTENVIRONMENT DIVISION.INPUT-OUTPUT SECTION.FILE-CONTROL.SELECT INPUT-FILE

ASSIGN TO MYINFILE.SELECT PRINT-FILE ASSIGN TO MYREPORT.

Page 15: CPSC3111/CISM3111 COBOL

ENVIRONMENT (SELECTS)

SELECT PRINT-FILE ASSIGN TO “\RMC\DATA\INPUT.DAT”.(For PC Files)

SELECT PRINT-FILE ASSIGN TO PRINTER-QPRINT.(For AS400 Files)

Page 16: CPSC3111/CISM3111 COBOL

DATA

DATA DIVISION.FILE SECTION.FD INPUT-FILE.01 INPUT-REC. 10 FILLER PIC X(80).FD PRINT-FILE.01 PRINT-REC. 10 FILLER PIC X(132).

Page 17: CPSC3111/CISM3111 COBOL

WORKING-STORAGE

WORKING-STORAGE SECTION. Program’s ‘scratchpad’ LEVEL NUMBERS 01-49 01 STARTS IN COLUMN 8 02-49 COLUMN 12 AND UP

Usually use 05, 10, 15, 20,… EACH 01 IS A NEW RECORD All fields must be specified

Page 18: CPSC3111/CISM3111 COBOL

PROCEDURE

PROCEDURE DIVISION.010-START-HERE.(INITIALIZATION)

(PROCESS CONTROL LOOP)

(TERMINATION)

Page 19: CPSC3111/CISM3111 COBOL

OPEN

OPEN INPUT file-nameOPEN OUTPUT file-name(Gets files ready for processing)

Page 20: CPSC3111/CISM3111 COBOL

ACCEPT

ACCEPT identifier FROM DATE identifier will contain YYMMDDACCEPT identifier FROM TIME identifier will contain HHMMSSMS (Used to get date and time)ACCEPT identifier [options] Gets data from keyboard

Page 21: CPSC3111/CISM3111 COBOL

MOVE

MOVE identifier-1 TO identifier-2 (Alpha - Left Just. - Space Filled) (Numeric - decimal aligned) (Edited - follows edit characters)

Page 22: CPSC3111/CISM3111 COBOL

READ

READ file-name [into WS-name] AT END ANY IMPERATIVE STATEMENT(S)END-READREAD INPUT-FILE INTO WS-IN-REC AT END MOVE “YES” TO EOF-FLAGEND-READ

Page 23: CPSC3111/CISM3111 COBOL

WRITE (Generic)

WRITE record-name [FROM ws-name] AFTER ADVANCING identifier LINESEND-WRITE

WRITE PRINT-REC FROM WS-PRINT-REC AFTER ADVANCING WS-SPACINGEND-WRITE

Page 24: CPSC3111/CISM3111 COBOL

WRITE (New-Page)

MOVE SPACES TO PRINT-RECWRITE PRINT-REC AFTER ADVANCING PAGEEND-WRITE (Used to start new page for heading.)

Page 25: CPSC3111/CISM3111 COBOL

PERFORM

PERFORM Paragraph-namePERFORM Paragraph-name UNTIL Condition

PERFORM 100-READ-INPUTPERFORM 300-PROCESS-DATA UNTIL EOF-FLAG = “YES”

Page 26: CPSC3111/CISM3111 COBOL

ADD

ADD literal TO identifier-1ADD 1 TO REC-COUNT

ADD identifier-1 TO identifier-2ADD WS-SPACING TO WS-LINES

Page 27: CPSC3111/CISM3111 COBOL

Decisions - Simple

IF Condition-1 True StatementsEND-IF

Page 28: CPSC3111/CISM3111 COBOL

Relational Conditions

> GREATER THAN< LESS THAN= EQUAL TO>= GREATER OR EQUAL<= LESS OR EQUALNOT can be used with all of the above

Page 29: CPSC3111/CISM3111 COBOL

Decisions - ELSE

IF condition-1 True StatementsELSE False StatementsEND-IF

Page 30: CPSC3111/CISM3111 COBOL

Decisions - Examples

IF HOURS-WORKED > 40 PERFORM 350-CALC-OVERTIMEELSE PERFORM 360-CALC-REGTIMEEND-IF

Page 31: CPSC3111/CISM3111 COBOL

Decisions - complex

IF complex-condition True statementsELSE False statementsEND-IF

Page 32: CPSC3111/CISM3111 COBOL

Complex - conditions

Two or more simple conditions connected with ‘AND’ or ‘OR’.IF (DEPARTMENT = 234 AND HIRE-DATE < “96-06-01”) ADD 1 TO OVER-5-YEARSEND-IF

Page 33: CPSC3111/CISM3111 COBOL

CLOSE

CLOSE file-nameCLOSE INPUT-FILE (Terminate file processing.)

Page 34: CPSC3111/CISM3111 COBOL

GOBACK / STOP RUN

GOBACK. (Returns to ‘calling’ entity.)

STOP RUN. (Returns to Operating System)