TABLE. REDEFINES เขียนตามหลังชื่อข้อมูล ใช้สำหรับประกาศชื่อข้อมูลหรือชื่อกลุ่มข้อมูล ให้ใช้หน่วยความจำเดียวกัน รูปแบบ ระดับข้อมูล ชื่อข้อมูล -1 REDEFINES.

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
โปรแกรมฝึกหัด การเลื่อนและคลิกเมาส์
Advertisements

Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Java Programming Language.
ครั้งที่ 9 Function(ต่อ).
คำสั่ง DISPLAY รูปแบบที่ 1 DISPLAY identifier-1, identifier-2 … literal-1 literal-2 [ UPON mnemonic-name ]  ตัวอย่าง DISPLAY STUDENT-NAME. DISPLAY.
1 C Programming An Introduction. 2 Preprocessing Directives เขียนได้ 2 รูปแบบ #include คอมไพเลอร์จะทำ การค้นหาเฮดเดอร์ไฟล์ที่ระบุ จากไดเร็คทอรีที่ใช้
Arithmetic Verb Template. ADD MOVE ZERO TO NO. ADD 1 TO NO. 0 1.
ACCEPT ชื่อข้อมูล FROM DATE WORKING - STORAGE SECTION. 01 TODAY PIC 9(6)..... PROCEDURE DIVISION ACCEPT-01. ACCEPT TODAY FROM DATE.
วิชา องค์ประกอบศิลป์สำหรับคอมพิวเตอร์ รหัส
การซ้อนทับกัน และคลื่นนิ่ง
Object Location Tracking System (OLTS)
นายรังสฤษดิ์ตั้งคณารหัส นายวสันต์ชานุชิตรหัส
สัปดาห์ที่ 3 CH 6 : DATA DIVISION
ครั้งที่ 8 Function.
Control Statement if..else switch..case for while do-while.
การรับค่าและแสดงผล.
Lower higher quality Monthly Review on Dec,11 03/07/57.
มิติที่ 1 มิติด้านประสิทธิผลตามแผนปฏิบัติราชการ
เปรียบเทียบจำนวนประชากรทั้งหมดจากฐาน DBPop Original กับจำนวนประชากรทั้งหมดที่จังหวัดถือเป็นเป้าหมาย จำนวน (คน) 98.08% % จังหวัด.
SORTING.
INDEXED FILES แฟ้มดรรชนี.
Building native COBOL applications คอมไพเลอร์ตรวจหา syntax errors แล้วสร้าง native machine code จากนั้น linker ทำหน้าที่ link native machine code ให้เป็น.
6. โครงสร้างข้อมูลแบบแฟ้ม
: Chapter 1: Introduction 1 Montri Karnjanadecha ac.th/~montri Image Processing.
Copyright © 2004, Oracle. All rights reserved. Oracle Practice.
Time แบ่งเป็น และ เข็มยาวเดินตั้งแต่ เลข 12 ถึง เลข 6 ใช้ after , past
Chapter 12 Riveted, Bolted & Welded Connections
ตัวแปรชุด.
Database to Ontology Mapping & Semantic Search System Tutorial
คำสั่ง READ รูปแบบ READ file-name RECORD [INTO identifier] [AT END imperative- statement] ตัวอย่าง READ STUDENT-FILE AT END GO TO END-PROCESS. READ CUSTOMER-FILE.
คำสั่ง PERFORM รูปแบบที่ 1 PERFORM procedure- name-1 THROUGH procedure- name-2 THRU ตัวอย่าง PERFORM PROCESS-01. PERFORM PARA-1 THRU PARA-2.  
กลุ่มสาระการเรียนรู้ คณิตศาสตร์ โรงเรียนบ้านหนองกุง อำเภอนาเชือก
Stored Procedure.
SCC : Suthida Chaichomchuen
กระบวนการคิดทางคณิตศาสตร์
บทที่ 7 การกำหนดชนิดข้อมูลใหม่
Millennium : Import-Export Step by Step
By Dr Nongyao Premkamolnetr Policy Innovation Center, KMUTT 17 January 2009.
หน่วยที่ 17 แอเรย์ของสตรัคเจอร์. แอเรย์ของข้อมูลสตรัคเจอร์ student_info student[30]; Student[0]Student[0].Name Student[0].Midterm Student[0].Assignment.
PHP Connect Database.
Kampol chanchoengpan it สถาปัตยกรรมคอมพิวเตอร์ Arithmetic and Logic Unit 1.
บทที่ 2 อาร์เรย์ อาร์เรย์ คือ ชุดของตัวแปรเดียวกัน ซึ่งสมาชิกของอาร์เรย์จะเป็นตัวแปรพื้นฐาน จำนวนสมาชิกในอาร์เรย์มีขนานแน่นอน และสมาชิกของอาร์เรย์แต้ละตัว.
Sticker House .บ่งบอกตำแหน่ง House ของ Shelf และแต่ละ Zone จะมีจำนวน House ไม่เท่ากัน .แต่ละ Zone ขนาด Sticker จะไม่เท่ากันขึ้นอยู่กับความหนาของแผ่นพื้น.
Flow Control.
รายงานในระบบบัญชีแยกประเภททั่วไป (GL – General Ledger)
COBOL Language มหาวิทยาลัยเนชั่น หลักการภาษาชุดคำสั่ง
ทำการตั้งเบิกเพิ่ม แบบฟอร์ม GFMIS.ขบ.02 เพื่อชดใช้ใบสำคัญ
แนวทางการปฏิบัติโครงการจูงมือ น้องน้อยบนดอยสูง 1.
PHP:Hypertext Preprocessor
ง30212 การเขียนโปรแกรมภาษาคอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Java Programming Language.
เขียนโปรแกรมเพื่อแสดงข้อมูลพนักงาน ด้วย ADO.NET vs. DataReader
21 August ดรุณี ศมาวรรตกุล 1 2. ADT List - Unsorted list ADT - list implementation - Sorted List - Circular list - Doubly linked list.
โปรแกรม Microsoft Access
การใช้ PHP ติดต่อฐานข้อมูลMySQL
คำสั่งเงื่อนไข (Condition Statement)
PHP: [7] ฟังก์ชั่นเกี่ยวกับ วัน/เวลา
เรื่องการประยุกต์ของสมการเชิงเส้นตัวแปรเดียว
จุมพฏ พงศ์ศักดิ์ศรี จุมพฏ พงศ์ศักดิ์ศรี
ASP เตรียมความพร้อมก่อนติดต่อกับ Ms Access การนำข้อมูลจากตารางมาแสดง
เรื่องการประยุกต์ของสมการเชิงเส้นตัวแปรเดียว
 Mr.Nitirat Tanthavech.  HTML forms are used to pass data to a server.  A form can contain input elements like text fields, checkboxes, radio-buttons,
บทที่ 9 การใช้งานฟอร์มและคอนโทรลต่าง ๆ
บทที่ 6 พจนานุกรมข้อมูล และ คำอธิบายกระบวนการ
ผลการประเมิน คุณภาพการศึกษาขั้นพื้นฐาน ปีการศึกษา
Nested loop.
1 Introduction to SQL กนกวรรธน์ เซี่ยงเจ็น สำนักวิชาเทคโนโลยีสารสนเทศ และการสื่อสาร มหาวิทยาลัยนเรศวร วิทยาเขต สารสนเทศพะเยา.
Concept of Programing.
คอมพิวเตอร์และการโปรแกรม
การแสดงขั้นตอนวิธีด้วยรหัสเทียม (Pseudo-Code)
เตรียมเงิน/หุ้นให้เพียงพอสำหรับการ Settlement แบบ 2 วันรวมกัน
ใบสำเนางานนำเสนอ:

TABLE

REDEFINES เขียนตามหลังชื่อข้อมูล ใช้สำหรับประกาศชื่อข้อมูลหรือชื่อกลุ่มข้อมูล ให้ใช้หน่วยความจำเดียวกัน รูปแบบ ระดับข้อมูล ชื่อข้อมูล -1 REDEFINES ชื่อข้อมูล -2

REDEFINES คำสั่ง REDEFINES ทำได้ทั้งในส่วนของ FILE SECTION และ WORKING-STORAGE SECTION ในส่วนของ FILE SECTION ห้ามใช้ REDEFINES ในระดับข้อมูล 01 แต่ในส่วนของ WORKING-STORAGE SECTION สามารถใช้ REDEFINES ในระดับข้อมูล 01 ได้

REDEFINES ตัวอย่าง 01 ITEM-BUFF. 03 X-ITEMPICTURE X(3). 03 N-ITEM REDEFINES X-ITEM PICTURE 9(3). X-ITEM N-ITEM ITEM-BUFF

01 DATA-BUFF. 05 DATA D-11PICTURE X(5). 07 D-12PICTURE 9(3)V DATA-2 REDEFINES DATA D-21PICTURE 9(5). 10 D-22PICTURE X(5). 10 D-23REDEFINES D D-231 PICTURE 9(3). 15 D-232 PICTURE X(2). DATA_BUFF DATA-1 DATA-2

ตาราง 1 มิติ

01 SALES-TABLE. 02 QUARTER-SALES OCCURS 4 TIMES. 04 QTR PICTURE S9(6)V SALES-TABLE. 02 QUARTER-SALES PICTURE S9(6)V99 OCCURS 4 TIMES. SALES-TABLE

ตาราง 1 มิติ 01 SALES-TABLE. 02 QUARTER-SALES OCCURS 4 TIMES. 04 QTR PICTURE S9(6)V99. QTR(1) QTR(2) QTR(3) QTR(4) QUARTER-SALES(1) QUARTER-SALES (2) QUARTER-SALES (3) QUARTER-SALES (4)

S(1) S(2) S(3)

ตาราง 1 มิติ 01 SALES-TABLE. 02 QUARTER-SALES PICTURE S9(6)V99 OCCURS 4 TIMES. QUARTER-SALES(1) QUARTER-SALES (2) QUARTER-SALES (3) QUARTER-SALES (4)

01 SALES-TABLE. 02 QUARTER-SALES OCCURS 4 TIMES. 04 YEAR-QUARTER PICTURE QUANTITY PICTURE S9(6)V99. SALES-TABLE QUARTER-SALES(1) QUARTER-SALES(2) QUARTER-SALES(3) QUARTER-SALES(4)

01 SALES-TABLE. 02 QUARTER-SALES OCCURS 4 TIMES. 04 YEAR-QUARTER PICTURE QUANTITY PICTURE S9(6)V99. SALES-TABLE YEAR-QUARTER (1) YEAR-QUARTER (2) YEAR-QUARTER (3) YEAR-QUARTER (4) QUANTITY(1) QUANTITY(2) QUANTITY(3) QUANTITY(4)

01 SALES-TABLE. 02 QUARTER-SALES OCCURS 4 TIMES. 04 YEAR-QUARTER. 06 YEAR PICTURE QUARTER PICTURE QUANTITY PICTURE S9(6)V99. YEAR(1) YEAR(2) YEAR(3) YEAR(4) QUANTITY(1) QUANTITY(2) QUANTITY(3) QUANTITY(4)

การกำหนดค่าเริ่มต้นในตาราง ทำได้โดยใช้คำสั่ง INITIALIZE จะทำให้มีการ กำหนดค่าเริ่มต้นที่เหมาะสมแก่ชื่อข้อมูลทุกตัวที่เขียนไว้ ในคำสั่ง INITIALIZE ตัวอย่าง 01 PRODUCT-TABLE. 05 PRODUCTOCCURS 20 TIMES. 10 PRO-IDPICTURE X(4). 10 PRO-DESPICTURE X(10). 10 PRO-QUANTPICTURE 9(4) INITIALIZE PRODUCT-TABLE.

การกำหนดค่าเริ่มต้นในตาราง

การกำหนดค่าต่างๆให้กับตาราง สามารถทำได้หลายวิธี วิธีหนึ่งที่นิยม ใช้สำหรับตารางที่มีขนาดเล็ก คือใช้ คำสั่ง REDEFINES การกำหนดค่าให้กับตารางด้วยวิธีนี้ เหมาะสำหรับกรณีที่ตารางมีขนาด เล็กเท่านั้น แต่ในกรณีที่ตารางมี ขนาดใหญ่ และมีความซับซ้อนมาก ขึ้น ควรเปลี่ยนไปใช้วิธีอ่านข้อมูล จากแฟ้มเข้าไปเก็บในตาราง จะ สะดวกกว่า

การกำหนดค่าต่างๆ ให้กับตาราง WORKING-STORAGE SECTION. 01 WORKDAY-TABLE. 03 WORKDAY-VALUE. 05 PICTURE X(3) VALUE “MON”. 05 PICTURE X(3) VALUE “TUE”. 05 PICTURE X(3) VALUE “WED”. 05 PICTURE X(3) VALUE “THR”. 05 PICTURE X(3) VALUE “FRI”. 03 WORKDAYREDEFINES WORKDAY-VALUE PICTURE X(3) OCCURS 5 TIMES.

การอ่านข้อมูลจากแฟ้มเข้าไป เก็บในตาราง การเก็บข้อมูลไว้ในตารางเพื่อใช้ในการประมวลผล หรือพิมพ์รายงานตามความต้องการของผู้ใช้มี ขั้นตอนดังนี้ สร้างแฟ้มข้อมูลที่มีข้อมูลตามที่ต้องการจะนำไป เก็บไว้ในตาราง เขียนโปรแกรม โดยมี แฟ้มนำเข้า แล้วใช้ คำสั่ง READ อ่านข้อมูลจากแฟ้มเข้าไปเก็บใน ตาราง

ตัวอย่าง แฟ้ม WORKDAY.DAT ประกอบด้วยข้อมูล ดังนี้ MONYELLOW TUE PINK WED GREEN THR ORANGE FRI CYAN

การค้นหาข้อมูลในตาราง การค้นหาข้อมูลในตาราง วิธีที่ง่ายที่สุด คือ การ ค้นหาแบบเรียงลำดับ การค้นหาข้อมูลทำได้ โดยนำค่าที่ต้องการค้นหาไปเปรียบเทียบกับ ข้อมูลที่อยู่ในตารางทีละรายการ ถ้ามีค่า ตรงกันแสดงว่า พบค่าที่ต้องการค้นหาแล้ว การค้นหาก็จะหยุดลง แต่ถ้ายังมีค่าไม่ตรงกัน จะต้องอ่านข้อมูลที่อยู่ในลำดับถัดไปในตาราง แล้วนำมาเปรียบเทียบกันอีก จนกว่าพบว่า ข้อมูลมีค่าตรงกัน แต่ถ้าอ่านข้อมูลจนจบ ตารางแล้วยังไม่พบข้อมูลที่ต้องการหา แสดง ว่า ไม่มีข้อมูลนั้นในตาราง

12A 17C 24M 35K 18B 11D 27K 18

12A 17C 24M 35K 18B 11D 27K 20

โปรแกรม อ่านข้อมูลจากแฟ้ม WORKDAY.DAT เข้าไปเก็บใน ตาราง แล้วป้อนข้อมูลที่ ต้องการค้นหาทางจอภาพ แล้วนำข้อมูลดังกล่าวไป ค้นหาข้อมูลอื่นจากตาราง เมื่อพบแล้วจะแสดงข้อมูลที่ ค้นพบออกทางจอภาพ

FD WORKDAY-FILE RECORD CONTAINS 9 CHARACTERS. 01 WORKDAY-REC. 05 WK-DAYPICTURE X(3). 05 WK-COLORPICTURE X(6). WORKING-STORAGE SECTION. 01 EOF-SWPICTURE X. 88 EOFVALUE “T”. 01 K PICTURE 9(3). 01 SDAYPICTURE X(3). 01 DCOLORPICTURE X(6). 01 WORKDAY-TABLE. 03 WORKDAY OCCURS 5 TIMES. 05 WDAYPICTURE X(3). 05 COLORPICTURE X(6). MONYELLOW TUEPINK WEDGREEN THUORANGE FRICYAN WORKDAY-FILE WORKDAY-TABLE

MONYELLOW TUEPINK WEDGREEN THUORANGE FRICYAN WORKDAY-FILE

MONYELLOW TUEPINK WEDGREEN THUORANGE FRICYAN WORKDAY-TABLESDAY WED COLOR(K)WDAY(K)

FILE-CONTROL. SELECT IN-FILE ASSIGN TO "C:\COBOLMIX\SCORE.DAT". SELECT PRINT-FILE ASSIGN TO "C:\COBOLMIX\PRINT.DAT". DATA DIVISION. FILE SECTION. FD IN-FILE. 01 IN-REC. 05 SNAME PIC X(10). 05 SCORE OCCURS 4 PIC PIC X(2). FD PRINT-FILE. 01 PRINT-REC PIC X(80). WORKING-STORAGE SECTION. 01 EOF PIC X. 01 I PIC 9.

01 PHEADING. 05 PIC X(12). 05 PIC X(10) VALUE “NAME”. 05 PIC X(6) VALUE SPACES. 05 HEAD-SUB OCCURS 4 TIMES. 10 H-SUB PIC X(4). 10 PIC X(6) VALUE SPACES. 05 PIC X(12) VALUE SPACES.

01 PDETAIL. 05 PIC X(12) VALUE SPACES. 05 PNAME PIC X(10). 05 PIC X(6) VALUE SPACES. 05 SCORE-SPACES OCCURS PSCORE PIC ZZZ9. 10 PIC X(6) VALUE SPACES. 05 PIC X(12) VALUE SPACES.

OPEN INPUT IN-FILE OUTPUT PRINT-FILE MOVE "F" TO EOF PERFORM PRINT-HEADING VARYING I FROM 1 BY 1 UNTIL I > 4 WRITE PRINT-REC FROM PHEADING AFTER PAGE PERFORM READ-PRINT-ROW UNTIL EOF = "T" CLOSE IN-FILE PRINT-FILE STOP RUN. READ-PRINT-ROW. READ IN-FILE AT END MOVE "T" TO EOF END-READ IF EOF = "T" NEXT SENTENCE ELSE MOVE SNAME TO PNAME PERFORM MOVE-SCORE VARYING I FROM 1 BY 1 UNTIL I > 4 WRITE PRINT-REC FROM PDETAIL AFTER 1 END-IF. MOVE-SCORE. MOVE SCORE (I) TO PSCORE (I). PRINT-HEADING. ACCEPT H-SUB (I).

การวน ซ้ำซ้อน ให้เขียนโปรแกรมเพื่อทำงาน ต่อไปนี้ รับข้อมูลชื่อวิชาจากจอภาพและ พิมพ์ชื่อวิชา อ่านข้อมูลชื่อนิสิตและคะแนนของ นิสิตแต่ละคน คำนวณหานิสิตที่มีคะแนนรวมสูง กว่าค่าเฉลี่ย พิมพ์รายงาน 2 ชุด ตามรูปแบบ ต่อไปนี้

FD IN-FILE. 01 IN-REC. 05 SNAME PIC X(10). 05 SCORE OCCURS 4 PIC PIC X(2). FD PRINT-FILE. 01 PRINT-REC PIC X(80). WORKING-STORAGE SECTION. 01 EOF PIC X. 01 I PIC J PIC N PIC GSUM PIC 9(3)V99 PACKED-DECIMAL. 01 MEAN PIC 999V99 PACKED-DECIMAL.

01 PHEADING. 05 PNAME PIC X(10) VALUE "NAME". 05 PIC X(6) VALUE SPACES. 05 HEAD-SUB OCCURS 4 TIMES. 10 H-SUB PIC X(4). 10 PIC X(7) VALUE SPACES. 05 PIC X(5) VALUE "TOTAL". 05 PIC X(15) VALUE SPACES. 01 PDETAIL. 05 PDNAME PIC X(10). 05 PIC X(6) VALUE SPACES. 05 SCORE-SPACES OCCURS PSCORE PIC ZZZ9. 10 PIC X(7) VALUE SPACES. 05 PIC X(9) VALUE SPACES.

01 PAVERAGE. 05 PIC X(10) VALUE "AVERAGE". 05 PIC X(48) VALUE SPACES. 05 PMEAN PIC ZZZ.ZZ. 05 PIC X(16) VALUE SPACES. 01 PABOVE-AVER. 05 PIC X(10) VALUE SPACES. 05 PANAME PIC X(10). 05 PIC X(38) VALUE SPACES. 05 PSUM PIC 9(3). 05 PIC X(19). 01 DETAIL-TABLE. 05 DE-TAB OCCURS DNAME PIC X(10). 10 DSUM PIC 9(3) VALUE ZERO.

OPEN INPUT IN-FILE OUTPUT PRINT-FILE INITIALIZE GSUM, N MOVE "F" TO EOF PERFORM ACCEPT-HEADING VARYING I FROM 1 BY 1 UNTIL I > 4 WRITE PRINT-REC FROM PHEADING AFTER PAGE PERFORM READ-PRINT-ROW VARYING J FROM 1 BY 1 UNTIL EOF = "T“ PERFORM CALCULATE-MEAN PERFORM ABOVE-AVERAGE VARYING J FROM 1 BY 1 UNTIL J > N. CLOSE IN-FILE PRINT-FILE STOP RUN. ACCEPT-HEADING. ACCEPT H-SUB (I). ABOVE-AVERAGE. IF DSUM (J) > MEAN PERFORM PRINT-ABOVE-AVERAGE. CALCULATE-MEAN. COMPUTE MEAN = GSUM / N MOVE MEAN TO PMEAN WRITE PRINT-REC FROM PAVERAGE AFTER 1.

READ-PRINT-ROW. READ IN-FILE AT END MOVE "T" TO EOF END-READ IF EOF = "T" NEXT SENTENCE ELSE ADD 1 TO N MOVE SNAME TO PDNAME DNAME (J) PERFORM MOVE-SCORE VARYING I FROM 1 BY 1 UNTIL I > 4 PERFORM MOVE-SUM WRITE PRINT-REC FROM PDETAIL AFTER 1 END-IF. MOVE-SUM. MOVE DSUM (J) TO PSCORE (5) ADD DSUM (J) TO GSUM. MOVE-SCORE. ADD SCORE (I) TO DSUM (J) MOVE SCORE (I) TO PSCORE (I).

PRINT-ABOVE-AVERAGE. MOVE DNAME (J) TO PANAME MOVE DSUM (J) TO PSUM WRITE PRINT-REC FROM PABOVE-AVER AFTER 1.

DATA DIVISION. WORKING-STORAGE SECTION. 01 I PIC J PIC 9. PROCEDURE DIVISION. PERFORM DISPLAY-NUMBER VARYING I FROM 1 BY 1 UNTIL I > 3 AFTER J FROM 1 BY 1 UNTIL J > 5. STOP RUN. DISPLAY-NUMBER. DISPLAY I " " J.

PROCEDURE DIVISION. PERFORM ACCEPT-NUMBER VARYING I FROM 1 BY 1 UNTIL I > 3 AFTER J FROM 1 BY 1 UNTIL J > 5 PERFORM DISPLAY-NUMBER VARYING I FROM 1 BY 1 UNTIL I > 3 AFTER J FROM 1 BY 1 UNTIL J > 5. STOP RUN. ACCEPT-NUMBER. ACCEPT NUM MOVE NUM TO T (I,J). DISPLAY-NUMBER. DISPLAY "T (" I "," J ") = " T (I,J). DATA DIVISION. WORKING-STORAGE SECTION. 01 I PIC J PIC NUM PIC T-TAB. 02 T-ROW OCCURS 3 TIMES. 03 T-COL OCCURS 5 TIMES. 04 T PIC 99. โปรแกรมเพื่อสร้างตาราง ขนาด 3 x 5 แล้วรับข้อมูลที่ มีค่าน้อยกว่า 100 จาก จอภาพ เข้าไปเก็บไว้ใน ตาราง จากนั้นให้แสดง ค่าที่อยู่ในตาราง

01 CountyTax PIC 9(8)V99 OCCURS 26 TIMES. 01 CountyTax OCCURS 26 TIMES PIC 9(8)V99. CountyTax(1) … CountyTax(12)

Three Dimension Table JeansTable. 02 Province OCCURS 4 TIMES. 03 Gender OCCURS 2 TIMES. 04 Colour OCCURS 3 TIMES. 05 SalesValue PIC 9(8)V NumSold PIC 9(7) Colour SalesValue NumSold

INDEXING

การใช้งานของดรรชนีจะแตกต่างจากดรรชนี กำกับ การกำหนดค่าให้ดรรชนี หรือ เปลี่ยนค่าของดรรชนีสามารถทำได้เพียง 3 วิธีเท่านั้น คือ คำสั่ง SET คำสั่ง PERFORM คำสั่ง SEARCH

FILE SECTION. FD IN-FILE. 01 IN-REC. 05 IYEAR PIC IMONTH PIC ISALES PIC 9(4)V PIC XX. FD OUT-FILE. 01 OUT-REC PIC X(80). WORKING-STORAGE SECTION. 01 M PIC EOF-1 PIC X. 88 EOF VALUE "T". 01 DETAIL PIC X(10) VALUE SPACES. 05 DMONTH PIC X(3). 05 PIC X(24) VALUE SPACES. 05 DSALES PIC ZZ,ZZ PIC X(34) VALUE SPACES. 01 MONTH-TABLE. 03 MONTH-TAB. 05 PIC X(3) VALUE "JAN". 05 PIC X(3) VALUE "FEB". 05 PIC X(3) VALUE "MAR". 05 PIC X(3) VALUE "APR". 05 PIC X(3) VALUE "MAY". 05 PIC X(3) VALUE "JUN". 05 PIC X(3) VALUE "JUL". 05 PIC X(3) VALUE "AUG". 05 PIC X(3) VALUE "SEP". 05 PIC X(3) VALUE "OCT". 05 PIC X(3) VALUE "NOV". 05 PIC X(3) VALUE "DEC". 03 MONTH-NAME REDEFINES MONTH- TAB PIC X(3) OCCURS 12. INDEXED BY MON. 01 SALES-TABLE. 10 DAT PIC 9(4)V99 OCCURS 12 INDEXED BY MONTH.

PROCEDURE DIVISION. MAIN-PARA. OPEN INPUT IN-FILE OUTPUT OUT-FILE INITIALIZE SALES-TABLE EOF-1 PERFORM LOAD-DATA UNTIL EOF PERFORM PRINT-DAT VARYING M FROM 1 BY 1 UNTIL M > 12 CLOSE IN-FILE OUT-FILE STOP RUN. LOAD-DATA. READ IN-FILE AT END MOVE "T" TO EOF- 1. IF NOT EOF SET MONTH TO IMONTH ADD ISALES TO DAT (MONTH) END-IF. PRINT-DAT. SET MONTH MON TO M MOVE MONTH-NAME (MON) TO DMONTH. MOVE DAT(MONTH) TO DSALES. WRITE OUT-REC FROM DETAIL-1 AFTER 1. FD IN-FILE. 01 IN-REC. 05 IYEAR PIC IMONTH PIC ISALES PIC 9(4)V PIC XX. 01 SALES-TABLE. 10 DAT PIC 9(4)V99 OCCURS 12 INDEXED BY MONTH. DAT(1) DAT(2) DAT(3) DAT(4) DAT(5) DAT(6) DAT(7) DAT(8) DAT(9) DAT(10) DAT(11) DAT(12) …