CPSC1111 Cobol - Columbus State Universitycsc.columbusstate.edu/rogers/COBOL-I.ppt · PPT file ·...

Post on 30-Mar-2018

222 views 3 download

Transcript of CPSC1111 Cobol - Columbus State Universitycsc.columbusstate.edu/rogers/COBOL-I.ppt · PPT file ·...

CPSC3111/CISM3111 COBOL

Structured COBOL ProgrammingText: murach’s structured COBOLAuthors: 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] Control Unit (Executes Instructions) Arithmetic/Logic Unit (Math and Logic) Only ‘understands’ machine language

Hardware / SoftwareHardware: Physical equipmentSoftware: 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)

Online vs InteractiveOff-line = batch Local Batch Remote BatchOnline = Interactive Many users with terminals (PC’s) Can be either local or remote Single/Multiple User - Timesharing

Data OrganizationBit - 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’

Report ComponentsPage HeadingColumn HeadingsReport Body Possibly with subtotals, etc.Summary Final totals, summary totals, etc.

Program DesignProgram Sequence of instructions describing

actions to be taken by the computerFlowchart Graphical description of program logic Uses rectangles, diamonds, ovals, etcPseudocode Symbolic representation of program logic More ENGLISH-like

Data Information NeededType and SizeTypes Alphabetic (Seldom used = A) Alphanumeric (X) Numeric (Sign and Decimal)

BinaryNumericPacked NumericFloating Point, etc. (Compatibility)

Program DevelopmentDefine problemDesign test dataDesign programCode programCompile programTest programDocument Program

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

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

COBOL DivisionsIDENTIFICATION DIVISION.ENVIRONMENT DIVISION.DATA DIVISION.PROCEDURE DIVISION.

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

IDENTIFICATIONIDENTIFICATION DIVISION.PROGRAM-ID. PROG1.

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

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

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

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

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

DATADATA 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).

WORKING-STORAGEWORKING-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

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

(PROCESS CONTROL LOOP)

(TERMINATION)

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

ACCEPTACCEPT 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

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

READREAD 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

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

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

PERFORMPERFORM Paragraph-namePERFORM Paragraph-name UNTIL Condition

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

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

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

Decisions - SimpleIF Condition-1 True StatementsEND-IF

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

Decisions - ELSEIF condition-1 True StatementsELSE False StatementsEND-IF

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

Decisions - complexIF complex-condition True statementsELSE False statementsEND-IF

Complex - conditionsTwo 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

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

GOBACK / STOP RUNGOBACK. (Returns to ‘calling’ entity.)

STOP RUN. (Returns to Operating System)