Learning Cobol Cob1
UNIVERSITY OF CEBU
Popular in Introduction to Cobol Programming
Bondad Gampal III
verified elite notetaker
Popular in Information technology
verified elite notetaker
verified elite notetaker
verified elite notetaker
verified elite notetaker
verified elite notetaker
verified elite notetaker
This 123 page Bundle was uploaded by Bondad Gampal III on Tuesday July 12, 2016. The Bundle belongs to Cob1 at UNIVERSITY OF CEBU taught by Dr. Jonathan Etcuban in Summer 2016. Since its upload, it has received 21 views. For similar materials see Introduction to Cobol Programming in Information technology at UNIVERSITY OF CEBU.
Reviews for Learning Cobol
Report this Material
What is Karma?
Karma is the currency of StudySoup.
You can buy or earn more Karma at anytime and redeem it for class notes, study guides, flashcards, and more!
Date Created: 07/12/16
AbouttheTutorial COBOL stands for Common Business-Oriented Language. The US Department of Defense, in a conference, formed CODASYL (Conference on Data Systems Language) to develop a language for business data processing needs which is now known as COBOL. COBOL is used for writing application programs and we cannot use it to write system software. The applications like those in defense domain, insurance domain, etc. which require huge data processing make extensive use of COBOL. Audience This tutorial is designed for software programmers who would like to learn the basics of COBOL. It provides enough understanding on COBOL programming language from where you can take yourself to a higher level of expertise. Prerequisites Before proceeding with this tutorial, you should have a basic understanding of computer programming terminologies and JCL. A basic understanding of any of the programming languages will help you understand the concepts of COBOL programming and move fast on the learning track. Copyright&Disclaimer Copyright 2014 by Tutorials Point (I) Pvt. Ltd. All the content and graphics published in this e-book are the property of Tutorials Point (I) Pvt. Ltd.The user of this e-book is prohibited to reuse, retain, copy, distribute or republish any contents or a part of contents of this e-book in any manner without written consent of the publisher. We strive to update the contents of our website and tutorials as timely and as precisely as possible, however, the contents may contain inaccuracies or errors. Tutori(I) Point Pvt. Ltd. provides no guarantee regarding the accuracy, timeliness or completeness of our website or its contents including this tutorial. If you discover any errors on our website or in this tutorial, please notify us at email@example.com i TableofContents About the Tutorial ·····································································································································i Audience····················································································································································i Prerequisites··············································································································································i Copyright & Disclaimer ······························································································································i Table of Contents······································································································································ii 1. OVERVIEW····························································································································1 Introduction to COBOL······························································································································1 Evolution of COBOL···································································································································1 Importance of COBOL ·······························································································································1 Features of COBOL····································································································································2 2. ENVIORNMENT SETUP··········································································································3 Installing COBOL on Windows/Linux·········································································································3 Compiling COBOL Programs······················································································································3 Executing COBOL Programs·······················································································································4 Executing COBOL-DB2 programs···············································································································4 Try it Option Online ··································································································································6 3. PROGRAM STRUCTURE·········································································································7 Divisions ···················································································································································8 4. BASIC SYNTAX·····················································································································12 Character Set ··········································································································································12 Coding Sheet···········································································································································13 Character Strings·····································································································································14 Comment················································································································································14 Literal······················································································································································16 COBOL Word···········································································································································17 ii 5. DATA TYPES ························································································································19 Data Name··············································································································································19 Level Number··········································································································································20 Picture Clause ·········································································································································21 Value Clause ···········································································································································22 6. BASIC VERBS ·······················································································································24 Input / Output Verbs ······························································································································24 Initialize Verb··········································································································································25 Move Verb··············································································································································26 Legal Moves············································································································································28 Add Verb·················································································································································28 Subtract Verb··········································································································································30 Multiply Verb··········································································································································32 Divide Verb·············································································································································33 Compute Statement································································································································34 7. DATA LAYOUT·····················································································································36 Redefines Clause·····································································································································36 Renames Clause······································································································································37 Usage Clause···········································································································································38 Copybooks··············································································································································40 8. CONDITIONAL STATEMENTS·······························································································41 IF Condition Statement···························································································································41 Relation Condition··································································································································42 Sign Condition·········································································································································44 Class Condition ·······································································································································45 Condition-name Condition······················································································································46 iii Negated Condition··································································································································47 Combined Condition ·······························································································································48 Evaluate Verb ·········································································································································49 9. LOOP STATEMENTS·············································································································51 Perform Thru ··········································································································································51 Perform Until··········································································································································52 Perform Times ········································································································································53 Perform Varying······································································································································54 GO TO Statement····································································································································55 10. STRING HANDLING··············································································································57 Inspect····················································································································································57 String ······················································································································································59 Unstring··················································································································································60 11. TABLE PROCESSING·············································································································63 Table Declaration····································································································································63 Subscript·················································································································································65 Index·······················································································································································66 Set Statement·········································································································································67 Search·····················································································································································69 Search All················································································································································69 12. FILE HANDLING···················································································································72 Field························································································································································72 Record ····················································································································································73 File··························································································································································73 13. FILE ORGANIZATION············································································································74 Sequential File Organization ···················································································································74 iv Indexed Sequential File Organization······································································································75 Relative File Organization ·······················································································································75 14. FILE ACCESS MODE··············································································································77 Sequential Access ···································································································································77 Random Access·······································································································································78 Dynamic Access ······································································································································79 15. FILE HANDLING VERBS ········································································································81 Open Verb···············································································································································81 Read Verb···············································································································································82 Write Verb··············································································································································85 Rewrite Verb···········································································································································87 Delete Verb·············································································································································89 Start Verb ···············································································································································90 Close Verb···············································································································································91 16. SUBROUTINES·····················································································································92 Call Verb ·················································································································································92 Call By Reference····································································································································92 Call By Content ·······································································································································94 Types of Call············································································································································95 17. INTERNAL SORT···················································································································96 Sort Verb·················································································································································96 Merge Verb·············································································································································98 18. DATABASE INTERFACE·······································································································101 Embedded SQL······································································································································101 DB2 Application Programming··············································································································101 Host Variables·······································································································································101 v SQLCA···················································································································································102 SQL Queries ··········································································································································103 Cursors··················································································································································109 19. INTERVIEWQUESTIONS ····································································································112 What is Next? ·······································································································································116 vi Cobol 1.OVERVIEW IntroductiontoCOBOL COBOL is a high-level language. One must understand the way COBOL works. Computers only understand machine code, a binary stream of 0s and 1s. COBOL code must be converted into machine code using a compiler. Run the program source through a compiler. The compiler first checks for any syntax errors and then converts it into machine language. The compiler creates an output file which is known as load module. This output file contains executable code in the form of 0s and 1s. EvolutionofCOBOL During 1950s, when the businesses were growing in the western part of the world, there was a need to automate various processes for ease of operation and this gave birth to a high-level programming language meant for business data processing. In 1959, COBOL was developed by CODASYL (Conference on Data Systems Language). The next version, COBOL-61, was released in 1961 with some revisions. In 1968, COBOL was approved by ANSI as a standard language for commercial use (COBOL-68). It was again revised in 1974 and 1985 to develop subsequent versions named COBOL-74 and COBOL-85 respectively. In 2002, Object-Oriented COBOL was released, which could use encapsulated objects as a normal part of COBOL programming. ImportanceofCOBOL COBOL was the first widely used high-level programming language. It is an English-like language which is user friendly. All the instructions can be coded in simple English words. COBOL is also used as a self-documenting language. COBOL can handle huge data processing. COBOL is compatible with its previous versions. COBOL has effective error messages and so, resolution of bugs is easier. 1 Cobol FeaturesofCOBOL Standard Language COBOL is a standard language that can be compiled and executed on machines such as IBM AS/400, personal computers, etc. Business Oriented COBOL was designed for business-oriented applications related to financial domain, defense domain, etc. It can handle huge volumes of data because of its advanced file handling capabilities. Robust Language COBOL is a robust language as its numerous debugging and testing tools are available for almost all computer platforms. Structured Language Logical control structures are available in COBOL which makes it easier to read and modify. COBOL has different divisions, so it is easy to debug. 2 Cobol 2.ENVIORNMENTSETUP InstallingCOBOLonWindows/Linux There are many Free Mainframe Emulators available for Windows which can be used to write and learn simple COBOL programs. One such emulator is Hercules, which can be easily installed on Windows by following a few simple steps as given below: Download and install the Hercules emulator, which is available from the Hercules' home site : www.hercules-390.eu Once you have installed the package on Windows machine, it will create a folder like C:/hercules/mvs/cobol. Run the Command Prompt (CMD) and reach the directory C:/hercules/mvs/cobol on CMD. The complete guide on various commands to write and execute a JCL and COBOL programs can be found at: www.jaymoseley.com/hercules/installmvs/instmvs2.htm Hercules is an open-source software implementation of the mainframe System/370 and ESA/390 architectures, in addition to the latest 64-bit z/Architecture. Hercules runs under Linux, Windows, Solaris, FreeBSD, and Mac OS X. A user can connect to a mainframe server in a number of ways such as thin client, dummy terminal, Virtual Client System (VCS), or Virtual Desktop System (VDS). Every valid user is given a login id to enter into the Z/OS interface (TSO/E or ISPF). CompilingCOBOLPrograms In order to execute a COBOL program in batch mode using JCL, the program needs to be compiled, and a load module is created with all the sub-programs. The JCL uses the load module and not the actual program at the time of execution. The load libraries are concatenated and given to the JCL at the time of execution using JCLLIB or STEPLIB. There are many mainframe compiler utilities available to compile a COBOL program. Some corporate companies use Change Management tools like Endevor, which compiles and stores every version of the program. This is useful in tracking the changes made to the program. //COMPILE JOB,CLASS=6,MSGCLASS=X,NOTIFY=&SYSUID 3 Cobol //* //STEP1 EXEC IGYCRCTL,PARM=RMODE,DYNAM,SSRANGE //SYSIN DD DSN=MYDATA.URMI.SOURCES(MYCOBB),DISP=SHR //SYSLIB DD DSN=MYDATA.URMI.COPYBOOK(MYCOPY),DISP=SHR //SYSLMOD DD DSN=MYDATA.URMI.LOAD(MYCOBB),DISP=SHR //SYSPRINT DD SYSOUT=* //* IGYCRCTL is an IBM COBOL compiler utility. The compiler options are passed using the PARM parameter. In the above example, RMODE instructs the compiler to use relative addressing mode in the program. The COBOL program is passed using the SYSIN parameter. Copybook is the library used by the program in SYSLIB. ExecutingCOBOLPrograms Given below is a JCL example where the program MYPROG is executed using the input file MYDATA.URMI.INPUT and produces two output files written to the spool. //COBBSTEP JOB CLASS=6,NOTIFY=&SYSUID // //STEP10 EXEC PGM=MYPROG,PARM=ACCT5000 //STEPLIB DD DSN=MYDATA.URMI.LOADLIB,DISP=SHR //INPUT1 DD DSN=MYDATA.URMI.INPUT,DISP=SHR //OUT1 DD SYSOUT=* //OUT2 DD SYSOUT=* //SYSIN DD * //CUST1 1000 //CUST2 1001 /* The load module of MYPROG is located in MYDATA.URMI.LOADLIB. This is important to note that the above JCL can be used for a non-DB2 COBOL module only. ExecutingCOBOL-DB2programs For running a COBOL-DB2 program, a specialized IBM utility is used in the JCL and the program; DB2 region and required parameters are passed as input to the utility. 4 Cobol The steps followed in running a COBOL-DB2 program are as follows: When a COBOL-DB2 program is compiled, a DBRM (Database Request Module) is created along with the load module. The DBRM contains the SQL statements of the COBOL programs with its syntax checked to be correct. The DBRM is bound to the DB2 region (environment) in which the COBOL will run. This can be done using the IKJEFT01 utility in a JCL. After the bind step, the COBOL-DB2 program is run using IKJEFT01 (again) with the load library and the DBRM library as the input to the JCL. //STEP001 EXEC PGM=IKJEFT01 //* //STEPLIB DD DSN=MYDATA.URMI.DBRMLIB,DISP=SHR //* //input files //output files //SYSPRINT DD SYSOUT=* //SYSABOUT DD SYSOUT=* //SYSDBOUT DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //DISPLAY DD SYSOUT=* //SYSOUT DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSTSIN DD * DSN SYSTEM(SSID) RUN PROGRAM(MYCOBB) PLAN(PLANNAME) PARM(parameters to cobol program) - LIB('MYDATA.URMI.LOADLIB') END /* In the above example, MYCOBB is the COBOL-DB2 program run using IKJEFT01. Please note that the program name, DB2 Sub-System Id (SSID), and DB2 Plan name are passed within the SYSTSIN DD statement. The DBRM library is specified in the STEPLIB. 5 Cobol TryitOptionOnline You really do not need to set up your own environment to start learning COBOL programming language. Reason is very simple, we have already set up COBOL Programming environment online, so that you can compile and execute all the available examples online at the same time, when you are doing your theory work. This gives you confidence in what you are reading and to check the result with different options. Feel free to modify any example and execute it online. Try the following example using our Try it option available alongside the code in our website. IDENTIFICATION DIVISION. PROGRAM-ID. HELLO. PROCEDURE DIVISION. DISPLAY 'Hello World'. STOP RUN. When you compile and execute the above program, it produces the following result: Hello World For some of the examples given in this tutorial, you will fina Try it option in our website code sections at the top right corner that will take you to the online compiler. So just make use of it and enjoy your learning. Try it option would work only with the code compatible with OpenCOBOL. The programs that require JCL (Input file, Output file or Parameters) for execution would not run on Try it option. 6 Cobol 3.PROGRAMSTRUCTURE A COBOL program structure consists of divisions as shown in the following image: A brief introduction of these divisions is given below: Sections are the logical subdivision of program logic. A section is a collection of paragraphs. Paragraphs are the subdivision of a section or division. It is either a user-defined or a predefined name followed by a period, and consists of zero or more sentences/entries. Sentences are the combination of one or more statements. Sentences appear only in the Procedure division. A sentence must end with a period. Statements are meaningful COBOL statements that perform some processing. Characters are the lowest in the hierarchy and cannot be divisible. You can co-relate the above-mentioned terms with the COBOL program in the following example: PROCEDURE DIVISION. A0000-FIRST-PARA SECTION. FIRST-PARAGRAPH. ACCEPT WS-ID - Statement-1 -----| MOVE '10' TO WS-ID - Statement-2 |-- Sentence - 1 DISPLAY WS-ID - Statement-3 -----| . 7 Cobol Divisions A COBOL program consists of four divisions. Identification Division It is the first and only mandatory division of every COBOL program. The programmer and the compiler use this division to identify the program. In this division, PROGRAM-ID is the only mandatory paragraph. PROGRAM-ID specifies the program name that can consist 1 to 30 characters. Try the following example usingtheTry it option online. IDENTIFICATION DIVISION. PROGRAM-ID. HELLO. PROCEDURE DIVISION. DISPLAY 'Welcome to Tutorialspoint'. STOP RUN. Given below is the JCL to execute the above COBOL program. //SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C //STEP1 EXEC PGM=HELLO When you compile and execute the above program, it produces the following result: Welcome to Tutorialspoint Environment Division Environment division is used to specify input and output files to the program. It consists of two sections: Configuration section provides information about the system on which the program is written and executed. It consists of two paragraphs: o Source computer : System used to compile the program. o Object computer : System used to execute the program. Input-Output section provides information about the files to be used in the program. It consists of two paragraphs: o File control : Provides information of external data sets used in the program. o I-O control : Provides information of files used in the program. ENVIRONMENT DIVISION. 8 Cobol CONFIGURATION SECTION. SOURCE-COMPUTER. XXX-ZOS. OBJECT-COMPUTER. XXX-ZOS. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT FILEN ASSIGN TO DDNAME ORGANIZATION IS SEQUENTIAL. Data Division Data division is used to define the variables used in the program. It consists of four sections: File section is used to define the record structure of the file. Working-Storage section is used to declare temporary variables and file structures which are used in the program. Local-Storage section is similar to Working-Storage section. The only difference is that the variables will be allocated and initialized every time a program starts execution. Linkage section is used to describe the data names that are received from an external program. COBOL Program IDENTIFICATION DIVISION. PROGRAM-ID. HELLO. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT FILEN ASSIGN TO INPUT. ORGANIZATION IS SEQUENTIAL. ACCESS IS SEQUENTIAL. DATA DIVISION. FILE SECTION. FD FILEN 01 NAME PIC A(25). WORKING-STORAGE SECTION. 01 WS-STUDENT PIC A(30). 01 WS-ID PIC 9(5). 9 Cobol LOCAL-STORAGE SECTION. 01 LS-CLASS PIC 9(3). LINKAGE SECTION. 01 LS-ID PIC 9(5). PROCEDURE DIVISION. DISPLAY 'Executing COBOL program using JCL'. STOP RUN. The JCL to execute the above COBOL program is as follows: //SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C //STEP1 EXEC PGM=HELLO //INPUT DD DSN=ABC.EFG.XYZ,DISP=SHR When you compile and execute the above program, it produces the following result: Executing COBOL program using JCL Procedure Division Procedure division is used to include the logic of the program. It consists of executable statements using variables defined in the data division. In this division, paragraph and section names are user-defined. There must be at least one statement in the procedure division. The last statement to end the execution in this division is either STOP RUN which is used in the calling programs or EXIT PROGRAM which is used in the called programs. IDENTIFICATION DIVISION. PROGRAM-ID. HELLO. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-NAME PIC A(30). 01 WS-ID PIC 9(5) VALUE '12345'. PROCEDURE DIVISION. A000-FIRST-PARA. DISPLAY 'Hello World'. MOVE 'TutorialsPoint' TO WS-NAME. DISPLAY "My name is : "WS-NAME. DISPLAY "My ID is : "WS-ID. 10 Cobol STOP RUN. JCL to execute the above COBOL program: //SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C //STEP1 EXEC PGM=HELLO When you compile and execute the above program, it produces the following result: Hello World My name is : TutorialsPoint My ID is : 12345 11 Cobol 4.BASICSYNTAX CharacterSet 'Characters' are lowest in the hierarchy and they cannot be divided further. The COBOL Character Set includes 78 characters which are shown below: Character Description A-Z Alphabets(Upper Case) a-z Alphabets (Lower Case) 0-9 Numeric Space + Plus Sign - Minus Sign or Hyphen * Asterisk / Forward Slash $ Currency Sign , Comma ; Semicolon . Decimal Point or Period " Quotation Marks ( Left Parenthesis 12 Cobol ) Right Parenthesis > Greater than < Less than : Colon ' Apostrophe = Equal Sign CodingSheet The source program of COBOL must be written in a format acceptable to the compilers. COBOL programs are written on COBOL coding sheets. There are 80 character positions on each line of a coding sheet. Character positions are grouped into the following five fields: Positions Field Description 1-6 Column Numbers Reserved for line numbers. 7 Indicator It can have Asterisk (*) indicating comments, Hyphen (-) indicating continuation and Slash ( / ) indicating form feed. 8-11 Area A All COBOL divisions, sections, paragraphs and some special entries must begin in Area A. 12-72 Area B All COBOL statements must begin in area B. 73-80 Identification AreaIt can be used as needed by the programmer. Example The following example shows a COBOL coding sheet: 000100 IDENTIFICATION DIVISION. 000100 13 Cobol 000200 PROGRAM-ID. HELLO. 000101 000250* THIS IS A COMMENT LINE 000102 000300 PROCEDURE DIVISION. 000103 000350 A000-FIRST-PARA. 000104 000400 DISPLAY “Coding Sheet”. 000105 000500 STOP RUN. 000106 JCL to execute the above COBOL program: //SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C //STEP1 EXEC PGM=HELLO When you compile and execute the above program, it produces the following result: Coding Sheet CharacterStrings Character strings are formed by combining individual characters. A character string can be a Comment, Literal, or COBOL word. All character strings must be ended with separators. A separator is used to separate character strings. Frequently used separators : Space, Comma, Period, Apostrophe, Left/Right Parenthesis, and Quotation mark. Comment A comment is a character string that does not affect the execution of a program. It can be any combination of characters. There are two types of comments: 14 Cobol Comment Line A comment line can be written in any column. The compiler does not check a comment line for syntax and treats it for documentation. Comment Entry Comment entries are those that are included in the optional paragraphs of an Identification Division. They are written in Area B and programmers use it for reference. The text highlighted in Bold are the commented entries in the following example: 000100 IDENTIFICATION DIVISION. 000100 000150 PROGRAM-ID. HELLO. 000101 000200 AUTHOR. TUTORIALSPOINT. 000102 000250* THIS IS A COMMENT LINE 000103 000300 PROCEDURE DIVISION. 000104 000350 A000-FIRST-PARA. 000105 000360/ First Para Begins - Documentation Purpose 000106 000400 DISPLAY “Comment line”. 000107 000500 STOP RUN. 000108 JCL to execute above COBOL program: //SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C //STEP1 EXEC PGM=HELLO When you compile and execute the above program, it produces the following result: Comment Line 15 Cobol Literal Literal is a constant that is directly hard-coded in a program. In the following example, "Hello World" is a literal. PROCEDURE DIVISION. DISPLAY 'Hello World'. There are two types of literals as discussed below: Alphanumeric Literal Alphanumeric Literals are enclosed in quotes or apostrophe. Length can be up to 160 characters. An apostrophe or a quote can be a part of a literal only if it is paired. Starting and ending of the literal should be same, either apostrophe or quote. Example The following example shows valid and invalid Alphanumeric Literals: Valid: ‘This is valid’ "This is valid" ‘This isn’’t invalid’ Invalid: ‘This is invalid” ‘This isn’t valid’ Numeric Literal A Numeric Literal is a combination of digits from 0 to 9, +, –, or decimal point. Length can be up to 18 characters. Sign cannot be the rightmost character. Decimal point should not appear at the end. Example The following example shows valid and invalid Numeric Literals: Valid: 100 +10.9 -1.9 16 Cobol Invalid: 1,00 10. 10.9- COBOLWord COBOL Word is a character string that can be a reserved word or a user-defined word. Length can be up to 30 characters. User-Defined User-defined words are used for naming files, data, records, paragraph names, and sections. Alphabets, digits, and hyphens are allowed while forming user- defined words. You cannot use COBOL reserved words. Reserved Words Reserved words are predefined words in COBOL. Different types of reserved words that we use frequently are as follows: Keywords like ADD, ACCEPT, MOVE, etc. Special characters words like +, -, *, <, <=, etc. Figurative constants are constant values like ZERO, SPACES, etc. All the constant values of figurative constants are mentioned in the following table. Figurative Constants Figurative Description Constants HIGH-VALUES One or more characters which will be at the highest position in descending order. LOW-VALUES One or more characters have zeros in binary representation. ZERO/ZEROES One or more zero depending on the size of the variable. SPACES One or more spaces. QUOTES Single or double quotes. 17 Cobol ALL literal Fills the data-item with Literal. 18 Cobol 5.DATATYPES Data Division is used to define the variables used in a program. To describe data in COBOL, one must understand the following terms: Data Name Level Number Picture Clause Value Clause 01 TOTAL-STUDENTS PIC9(5) VALUE '125'. | | | | | | | | | | | | Level Number Data Name Picture Clause Value Clause DataName Data names must be defined in the Data Division before using them in the Procedure Division. They must have a user-defined name; reserved words cannot be used. Data names give reference to the memory locations where actual data is stored. They can be elementary or group type. Example The following example shows valid and invalid data names: Valid: WS-NAME TOTAL-STUDENTS A100 100B Invalid: MOVE (Reserved Words) COMPUTE (Reserved Words) 100 (No Alphabet) 100+B (+ is not allowed) 19 Cobol LevelNumber Level number is used to specify the level of data in a record. They are used to differentiate between elementary items and group items. Elementary items can be grouped together to create group items. Level Number Description 01 Record description entry 02 to 49 Group and Elementary items 66 Rename Clause items 77 Items which cannot be sub-divided 88 Condition name entry Elementary items cannot be divided further. Level number, Data name, Picture clause, and Value clause (optional) are used to describe an elementary item. Group items consist of one or more elementary items. Level number, Data name, and Value clause (optional) are used to describe a group item. Group level number is always 01. Example The following example shows Group and Elementary items: DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-NAME PIC X(25). ---> ELEMENTARY ITEM 01 WS-CLASS PIC 9(2) VALUE '10'. ---> ELEMENTARY ITEM 01 WS-ADDRESS. ---> GROUP ITEM 05 WS-HOUSE-NUMBER PIC 9(3). ---> ELEMENTARY ITEM 05 WS-STREET PIC X(15). ---> ELEMENTARY ITEM 05 WS-CITY PIC X(15). ---> ELEMENTARY ITEM 05 WS-COUNTRY PIC X(15) VALUE 'INDIA'.--> ELEMENTARY ITEM 20 Cobol PictureClause Picture clause is used to define the following items: Data type can be numeric, alphabetic, or alphanumeric. Numeric type consists of only digits 0 to 9. Alphabetic type consists of letters A to Z and spaces. Alphanumeric type consists of digits, letters, and special characters. Sign can be used with numeric data. It can be either + or –. Decimal point position can be used with numeric data. Assumed position is the position of decimal point and not included in the data. Length defines the number of bytes used by the data item. Symbols used in a Picture clause: Symbol Description 9 Numeric A Alphabetic X Alphanumeric V Implicit Decimal S Sign P Assumed Decimal Example The following example shows the use of PIC clause: IDENTIFICATION DIVISION. PROGRAM-ID. HELLO. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-NUM1 PIC S9(3)V9(2). 01 WS-NUM2 PIC PPP999. 01 WS-NUM3 PIC S9(3)V9(2) VALUE -123.45. 01 WS-NAME PIC A(6) VALUE 'ABCDEF'. 21 Cobol 01 WS-ID PIC X(5) VALUE 'A121$'. PROCEDURE DIVISION. DISPLAY "WS-NUM1 : "WS-NUM1. DISPLAY "WS-NUM2 : "WS-NUM2. DISPLAY "WS-NUM3 : "WS-NUM3. DISPLAY "WS-NAME : "WS-NAME. DISPLAY "WS-ID : "WS-ID. STOP RUN. JCL to execute the above COBOL program: //SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C //STEP1 EXEC PGM=HELLO When you compile and execute the above program, it produces the following result: WS-NUM1 : +000.00 WS-NUM2 : .000000 WS-NUM3 : -123.45 WS-NAME : ABCDEF WS-ID : A121$ ValueClause Value clause is an optional clause which is used to initialize the data items. The values can be numeric literal, alphanumeric literal, or figurative constant. It can be used with both group and elementary items. Example The following example shows the use of VALUE clause: IDENTIFICATION DIVISION. PROGRAM-ID. HELLO. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-NUM1 PIC 99V9 VALUE IS 3.5. 01 WS-NAME PIC A(6) VALUE 'ABCD'. 01 WS-ID PIC 99 VALUE ZERO. 22 Cobol PROCEDURE DIVISION. DISPLAY "WS-NUM1 : "WS-NUM1. DISPLAY "WS-NAME : "WS-NAME. DISPLAY "WS-ID : "WS-ID. STOP RUN. JCL to execute the above COBOL program: //SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C //STEP1 EXEC PGM=HELLO When you compile and execute the above program, it produces the following result: WS-NUM1 : 03.5 WS-NAME : ABCD WS-ID : 00 23 Cobol 6.BASICVERBS COBOL verbs are used in the procedure division for data processing. A statement always start with a COBOL verb. There are several COBOL verbs with different types of actions. Input/OutputVerbs Input/Output verbs are used to get data from the user and display the output of COBOL programs. The following two verbs are used for this process: Accept Verb Accept verb is used to get data such as date, time, and day from the operating system or directly from the user. If a program is accepting data from the user, then it needs to be passed through JCL. While getting data from the operating system, FROM option is included as shown in the following example: ACCEPT WS-STUDENT-NAME. ACCEPT WS-DATE FROM SYSTEM-DATE. Display Verb Display verb is used to display the output of a COBOL program. DISPLAY WS-STUDENT-NAME. DISPLAY "System date is : " WS-DATE. COBOL PROGRAM IDENTIFICATION DIVISION. PROGRAM-ID. HELLO. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-STUDENT-NAME PIC X(25). 01 WS-DATE PIC X(10). PROCEDURE DIVISION. ACCEPT WS-STUDENT_NAME. ACCEPT WS-DATE FROM DATE. DISPLAY "Name : " WS-STUDENT_NAME. 24 Cobol DISPLAY "Date : " WS-DATE. STOP RUN. JCL to execute the above COBOL program: //SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C //STEP1 EXEC PGM=HELLO //INPUT DD DSN=PROGRAM.DIRECTORY,DISP=SHR //SYSIN DD * TutorialsPoint /* When you compile and execute the above program, it produces the following result: Name : TutorialsPoint Date : 2014-08-30 InitializeVerb Initialize verb is used to initialize a group item or an elementary item. Data names with RENAME clause cannot be initialized. Numeric data items are replaced by ZEROES. Alphanumeric or alphabetic data items are replaced by SPACES. If we include REPLACING term, then data items can be initialized to the given replacing value as shown in the following example: IDENTIFICATION DIVISION. PROGRAM-ID. HELLO. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-NAME PIC A(30) VALUE 'ABCDEF'. 01 WS-ID PIC 9(5). 01 WS-ADDRESS. 05 WS-HOUSE-NUMBER P
Are you sure you want to buy this material for
You're already Subscribed!
Looks like you've already subscribed to StudySoup, you won't need to purchase another subscription to get this material. To access this material simply click 'View Full Document'