Interactive vs Batch Programs - PowerPoint PPT Presentation

paul2
interactive vs batch programs n.
Skip this Video
Loading SlideShow in 5 Seconds..
Interactive vs Batch Programs PowerPoint Presentation
Download Presentation
Interactive vs Batch Programs

play fullscreen
1 / 34
Download Presentation
Interactive vs Batch Programs
314 Views
Download Presentation

Interactive vs Batch Programs

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Interactive vs Batch Programs • Cobol suited for developing both types of programs Interactive programs • Accept input data from keyboard • Input data processed immediately • Output (results) displayed on screen immediately

  2. Interactive vs Batch Programs Batch programs • Process large volumes of input at periodic intervals • Input data read in from files • Output written to files • Can be files on disk, print files, files to be transmitted to a remote location: but files.

  3. Files, Records, Fields • Field – 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. 21

  4. Overview of the Four Divisions • Every COBOL program contains up to four separate divisions in the following order: IDENTIFICATION DIVISION ENVIRONMENT DIVISION DATA DIVISION PROCEDURE DIVISION

  5. Overview of the Four Divisions • IDENTIFICATION DIVISION • Identifies program to operating system • Provides documentation about program • ENVIRONMENT DIVISION • Defines file-names • Describes devices used to store them • Not included in fully interactive programs

  6. Overview of the Four Divisions • DATA DIVISION • Describes input and output format of data in files • Defines any constants and workareas • PROCEDURE DIVISION • Contains instructions to read input, process it and create output

  7. Sample Interactive Program • Purpose • to compute employee WAGES • Input from keyboard • HOURS and RATE • Processing • compute WAGES as HOURS x RATE • Output displayed on screen • WAGES

  8. Sample Interactive Program • IDENTIFICATION DIVISION • One required entry, PROGRAM-ID • Names the program • DATA DIVISION • Describes and defines storage for all data • Data defined in WORKING-STORAGE SECTION for interactive program

  9. IDENTIFICATION 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)

  10. Data Defined in Sample Program • Keyed input fields (HOURS, RATE) • Output fields (WAGES) • Other fields used for processing (MORE-DATA) • Wages (not shown) 01 WAGES PIC 999.99.

  11. PICTURE Clause • 01 level begins definition of each field • much more later on this… • 01 has special significance. • PICTURE or PIC clause describes • Type of data • Numeric (PIC 9) • Nonnumeric (PIC X) (alphanumeric) • Size of field - determined by number of 9’s or X’s

  12. PICTURE Clauses • RATE with PIC 99V99 includes V to show assumed decimal point position • User enters data with decimal point • Program uses V to align data • WAGES includes actual decimal point • Shown when value displayed on screen • Wages (not shown) 01 WAGES PIC 999.99.

  13. Giving Field Initial Value • MORE-DATA with PIC XXX is nonnumeric field • Assigned initial contents of YES by use of VALUE clause • Value must be in quotation marks since MORE-DATA is nonnumeric field

  14. PROCEDURE DIVISION • Set of instructions to be executed by program • Organization of instructions planned before coding begins • Pseudo-code, an English-like description of program instructions, used for planning • Describes program logic and order in which instructions will be executed

  15. PROCEDURE DIVISION • PROCEDURE DIVISION includes one paragraph 100-MAIN • Note: 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 paragraph • Period follows last statement in paragraph (STOP RUN.) • Main processing controlled by PERFORM … END-PERFORM loop • END-PERFORM is called a ‘scope terminator.’ • VERY important!

  16. PERFORM … END-PERFORM • Repeats 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 time

  17. PERFORM … END-PERFORM • When user enters NO as response • MORE-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!)

  18. PERFORM … END-PERFORM Statements in loop executed in order they are listed • DISPLAY displays value in quotes or value of field on screen • ACCEPT stores value user enters from keyboard in field • MULTIPLY performs calculation to find WAGES

  19. Sample Batch Program • In 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 fields

  20. Sample Batch Program • Calculated results (Wages) stored in file instead of displayed on screen (but can be both displayed as well as stored in a • For each input record • Record created and stored in output file • Includes employee name, hours, rate and computed wages • File intended for printing so spacing added between fields for readability • I disagree. Most input data is NOT spaced for printing!!! • Fields are all contiguous for important reasons! (will discuss)

  21. COBOL Divisions • All four divisions included for batch programs • IDENTIFICATION DIVISION first with required PROGRAM-ID paragraph • ENVIRONMENT DIVISION • CONFIGURATION SECTION – not required. • INPUT-OUTPUT SECTION assigns input and output files to specific devices. • required to name (called logical file names or programmer-defined file names) files and associate them with specific devices, such as a CD or disk or …

  22. DATA DIVISION(will be repeating this many times) • FILE SECTION describes format of input and output files • Characteristics of the file itself • Characteristics of the records and their fields. • Fields in records described using PICTURE clause • Decimal point not stored in input records • Use V for ‘implied decimal’ for alignment • Use actual decimal point for fields in output record so it is printed

  23. PROCEDURE DIVISION • Contains instructions to be executed by computer • Instructions executed in order they appear • Includes two paragraphs with period at end of each. • Let’s consider the program in your textbook. • This is also assignment #1 to be turned in later. • First, let’s overview…

  24. IDENTIFICATION DIVISION. <alignment and indentation!> PROGRAM-ID. SAMPLE <divisions, sections, paragraphs, sentences statements> AUTHOR. YOUR-NAME-PLEASE. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT EMPLOYEE-DATA ASSIGN TO EMP-DAT. SELECT PAYROLL-LISTING ASSIGN TO PRINTER. <will change> DATA DIVISION. <input and output files and formats; working storage…> FILE SECTION. FD EMPLOYEE-DATA. 01 EMPLOYEE-RECORD. 05 EMPLOYEE-NAME-IN PIC X(20). 05 HOURS-WORKED-IN PIC 99. 05 HOURLY-RATE-IN PIC 9V99. <alignment; pic clauses> FD PAYROLL-LISTING. 01 PRINT-REC. 05 PIC X(20). 05 NAME-OUT PIC X(20). 05 PIC X(10). 05 HOURS-OUT PIC 99. 05 PIC X(8). 05 RATE-OUT PIC 9.99. 05 PIC XXXXXX. 05 WEEKLY-WAGES-OUT PIC 999.99. WORKING-STORAGE SECTION. 01 ARE-THERE-MORE-RECORDS PIC XXX VALUE ‘YES’. <Value clause>

  25. PROCEDURE DIVISION. <instructions to operate (read. print) / manipulate data> 100-MAIN-MODULE. OPEN INPUT EMPLOYEE-DATA <must have for files> OUTPUT PAYROLL-LISTING. PERFORM UNTIL ARE-THERE-MORE-RECORDS = ‘NO’ <loop construct> READ EMPLOYEE-DATA <note the indentation!!!> AT END MOVE ‘NO’ TO ARE-THERE-MORE-RECORDS NOT AT END PERFORM 200-WAGE-ROUTINE END-READ <note the ‘control’ here – not detail!> END-PERFORM <note: scope terminators end-read; end-perform> CLOSE EMPLOYEE-DATA PAYROLL-LISTING STOP RUN. <last logical executable statement in program> 200-WAGE-ROUTINE. MOVE SPACES TO PRINT-REC MOVE EMPLOYEE-NAME-IN TO NAME-OUT MOVE HOURS-WORKED-IN TO HOURS-OUT MOVE HOURLY-RATE-IN TO RATE-OUT MULTIPLY HOURS-WORKED-IN BY HOURLY-RATE-IN GIVING WEEKLY-WAGES-OUT WRITE PRINT-REC. OBSERVE INPUT AND OUTPUT ON P. 24.

  26. 100-MAIN-MODULE • OPENs files to be used by program • Repeatedly READs in records (PERFORM … END-PERFORM) until there are no more • Calls second paragraph 200-WAGE-ROUTINE to process each record • CLOSEs files after all records read • Ends program (STOP RUN)

  27. READ Statement • Reads one record into program storage area • Record must be in storage to use it • Entire record ‘read into’ the Process Area (the 01 area) • Takes one of two actions depending on whether record was read

  28. READ Statement - 1 • PERFORM instruction after NOT AT END executed when a successful read occurs: • Statements in paragraph 200-WAGE-ROUTINE executed to process record • Control remains within the Perform. Condition is evaluated and is false, so the loop iterates.

  29. READ Statement - 2 • If no more records are available, MOVE instruction after AT END executed • 'NO ' moved to ARE-THERE-MORE-RECORDS, ends loop • Control returns to the Perform which determines that the condition is now True and control passes to the statement following the Perform.

  30. 200-WAGE-ROUTINE • First MOVE initializes PRINT-REC to blanks • Then MOVEs name, hours, wages to output fields • Calculates WAGES with MULTIPLY statement, MOVES it to output field • WRITEs data in employee output record to print file

  31.  Entering & Running a Program To type in and run a COBOL program on your computer system, you need to know how to: • Log on and off of the computer • Name COBOL files on the computer • Use a text editor to key in, modify and save files • Compile a COBOL source program to translate it into machine language • Link or load the object program • Run the object program

  32. COMMENTS 1 • Interactive Programs • don’t need Environment Division • Batch Programs • Need all four divisions – in order • Environment Division names / associates files with devices. • machine / implementation dependent. • Assign to clauses will differ (will inform you…)

  33. COMMENTS 2 • Data Division • will always have a File Section • describes the file in general and the records with their fields in particular. • Provides the sizes and classification of fields and relative placement of data in input and output records • All data fields are named! (Constants {later} are treated separately) All fields must be defined with their sizes and type of data expected. • Name files with meaningful names.

  34. COMMENTS 3 • Filler – reserved word • Many reserved words – have special meanings. • ARE-THERE-MORE-RECORDS is really a flag field. I prefer EOF. Will discuss more later. • types of data: • numeric pic 9 • alphanumeric pic x (non-numeric) • alphabetic pic A (not used much anymore). • Data name rules – later • Editing characters (decimals, commas…) later.