Interactive vs Batch ProgramsSlide 2Files, Records, FieldsOverview of the Four DivisionsSlide 5Slide 6Sample Interactive ProgramSlide 8Slide 9Data Defined in Sample ProgramPICTURE ClausePICTURE ClausesGiving Field Initial ValuePROCEDURE DIVISIONSlide 15PERFORM … END-PERFORMSlide 17Slide 18Sample Batch ProgramSlide 20COBOL DivisionsDATA DIVISION (will be repeating this many times)Slide 23Slide 24Slide 25100-MAIN-MODULEREAD StatementREAD Statement - 1READ Statement - 2200-WAGE-ROUTINE Entering & Running a ProgramCOMMENTS 1COMMENTS 2COMMENTS 31Interactive vs Batch ProgramsCobol suited for developing both types of programsInteractive programsAccept input data from keyboardInput data processed immediatelyOutput (results) displayed on screen immediately2Interactive vs Batch ProgramsBatch programsProcess large volumes of input at periodic intervalsInput data read in from filesOutput written to filesCan be files on disk, print files, files to be transmitted to a remote location: but files.3Files, Records, FieldsField – a single data item: your name; salary;Record – everything to do with a specific topic, such as all the information about YOU to generate your pay check:Your name, ssan, deductions, address, bank account number, hours worked, overtime hours….File – The grouping of individual records of all employees working in a corporation for whom you want to generate a pay check.Typically read a single record, prepare the output, read next record, and continue until EOF.Book definitions: p. 214Overview of the Four DivisionsEvery COBOL program contains up to four separate divisions in the following order:IDENTIFICATION DIVISIONENVIRONMENT DIVISION DATA DIVISIONPROCEDURE DIVISION5Overview of the Four DivisionsIDENTIFICATION DIVISIONIdentifies program to operating systemProvides documentation about program ENVIRONMENT DIVISIONDefines file-namesDescribes devices used to store themNot included in fully interactive programs6Overview of the Four DivisionsDATA DIVISIONDescribes input and output format of data in filesDefines any constants and work areasPROCEDURE DIVISIONContains instructions to read input, process it and create output7Sample Interactive ProgramPurposeto compute employee WAGESInput from keyboardHOURS and RATEProcessingcompute WAGES as HOURS x RATEOutput displayed on screenWAGES8Sample Interactive ProgramIDENTIFICATION DIVISIONOne required entry, PROGRAM-IDNames the programDATA DIVISIONDescribes and defines storage for all data Data defined in WORKING-STORAGE SECTION for interactive program9IDENTIFICATION DIVISION. PROGRAM-ID. CH0102. DATA DIVISION. WORKING-STORAGE SECTION. 01 SALES-AMOUNT PIC 999V99. 01 SALES-TAX PIC 99.99. Fields; sizes; numeric 01 MORE-DATA PIC XXX VALUE 'YES'. Field; alphanumeric PROCEDURE DIVISION. instructions: operate on data 100-MAIN. PERFORM UNTIL MORE-DATA = 'NO' DISPLAY 'ENTER SALES AMOUNT AS DOLLARS AND CENTS' ACCEPT SALES-AMOUNT reads / accepts from keyboard COMPUTE SALES-TAX = SALES-AMOUNT * .08 DISPLAY SALES-TAX writes to keyboard DISPLAY 'IS THER MORE INPUT (YES OR NO)?‘ prompts user ACCEPT MORE-DATA accepts keyboard input END-PERFORM STOP RUN.Sample COBOL Program – Interactive (no Environment Division)10Data Defined in Sample ProgramKeyed input fields (HOURS, RATE)Output fields (WAGES)Other fields used for processing (MORE-DATA) Wages (not shown)01 WAGES PIC 999.99.11PICTURE Clause01 level begins definition of each fieldmuch more later on this…01 has special significance.PICTURE or PIC clause describesType of dataNumeric (PIC 9)Nonnumeric (PIC X) (alphanumeric)Size of field - determined by number of 9’s or X’s12PICTURE ClausesRATE with PIC 99V99 includes V to show assumed decimal point positionUser enters data with decimal pointProgram uses V to align dataWAGES includes actual decimal point Shown when value displayed on screenWages (not shown)01 WAGES PIC 999.99.13Giving Field Initial ValueMORE-DATA with PIC XXX is nonnumeric fieldAssigned initial contents of YES by use of VALUE clauseValue must be in quotation marks since MORE-DATA is nonnumeric field14PROCEDURE DIVISIONSet of instructions to be executed by programOrganization of instructions planned before coding beginsPseudo-code, an English-like description of program instructions, used for planningDescribes program logic and order in which instructions will be executed15PROCEDURE DIVISIONPROCEDURE DIVISION includes one paragraph 100-MAINNote: program here is horribly simple, as we would expect at this time.There is only one paragraph (module) and a structure chart (architectural design) is almost meaningless – would contain a single box…List of instructions that follow make up paragraphPeriod follows last statement in paragraph (STOP RUN.)Main processing controlled by PERFORM … END-PERFORM loopEND-PERFORM is called a ‘scope terminator.’VERY important!16PERFORM … END-PERFORMRepeats set of instructions as long as user enters YES in response to prompt"IS THERE MORE DATA (YES/NO)?"MORE-DATA initially contains YES so instructions in loop executed first time17PERFORM … END-PERFORMWhen user enters NO as responseMORE-DATA set to "NO" and loop ends After loop, STOP RUN is executed, ending program(Note the indentation of code within the loop. This is essential to good programming style!)18PERFORM … END-PERFORMStatements in loop executed in order they are listedDISPLAY displays value in quotes or value of field on screenACCEPT stores value user enters from keyboard in fieldMULTIPLY performs calculation to find WAGES19Sample Batch ProgramIn batch mode, data comes from input file instead of keyboard Data for each employee stored in a record in file on disk (see page 21)Employee name, hours and rate data called fields20Sample Batch ProgramCalculated results (Wages) stored in file instead of displayed on screen (but can be both displayed as well as stored in a For each input recordRecord created and stored in output fileIncludes employee name, hours, rate and computed wages File intended for printing so spacing added between fields for readabilityI disagree. Most input data is NOT spaced for printing!!!Fields are all contiguous
View Full Document