ดาวน์โหลดงานนำเสนอ
งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ
ได้พิมพ์โดยCharoen Prinya ได้เปลี่ยน 10 ปีที่แล้ว
1
TABLE
2
REDEFINES เขียนตามหลังชื่อข้อมูล ใช้สำหรับประกาศชื่อข้อมูลหรือชื่อกลุ่มข้อมูล ให้ใช้หน่วยความจำเดียวกัน รูปแบบ ระดับข้อมูล ชื่อข้อมูล -1 REDEFINES ชื่อข้อมูล -2
3
REDEFINES คำสั่ง REDEFINES ทำได้ทั้งในส่วนของ FILE SECTION และ WORKING-STORAGE SECTION ในส่วนของ FILE SECTION ห้ามใช้ REDEFINES ในระดับข้อมูล 01 แต่ในส่วนของ WORKING-STORAGE SECTION สามารถใช้ REDEFINES ในระดับข้อมูล 01 ได้
4
REDEFINES ตัวอย่าง 01 ITEM-BUFF. 03 X-ITEMPICTURE X(3). 03 N-ITEM REDEFINES X-ITEM PICTURE 9(3). X-ITEM N-ITEM ITEM-BUFF
7
01 DATA-BUFF. 05 DATA-1. 07 D-11PICTURE X(5). 07 D-12PICTURE 9(3)V99. 05 DATA-2 REDEFINES DATA-1. 10 D-21PICTURE 9(5). 10 D-22PICTURE X(5). 10 D-23REDEFINES D-22. 15 D-231 PICTURE 9(3). 15 D-232 PICTURE X(2). DATA_BUFF DATA-1 DATA-2
9
ตาราง 1 มิติ
10
01 SALES-TABLE. 02 QUARTER-SALES OCCURS 4 TIMES. 04 QTR PICTURE S9(6)V99. 01 SALES-TABLE. 02 QUARTER-SALES PICTURE S9(6)V99 OCCURS 4 TIMES. SALES-TABLE
11
ตาราง 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)
12
001002003 S(1) S(2) S(3)
14
ตาราง 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)
16
01 SALES-TABLE. 02 QUARTER-SALES OCCURS 4 TIMES. 04 YEAR-QUARTER PICTURE 999. 04 QUANTITY PICTURE S9(6)V99. SALES-TABLE QUARTER-SALES(1) QUARTER-SALES(2) QUARTER-SALES(3) QUARTER-SALES(4)
17
01 SALES-TABLE. 02 QUARTER-SALES OCCURS 4 TIMES. 04 YEAR-QUARTER PICTURE 999. 04 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)
18
01 SALES-TABLE. 02 QUARTER-SALES OCCURS 4 TIMES. 04 YEAR-QUARTER. 06 YEAR PICTURE 9. 06 QUARTER PICTURE 99. 04 QUANTITY PICTURE S9(6)V99. YEAR(1) YEAR(2) YEAR(3) YEAR(4) QUANTITY(1) QUANTITY(2) QUANTITY(3) QUANTITY(4)
21
การกำหนดค่าเริ่มต้นในตาราง ทำได้โดยใช้คำสั่ง 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.
22
การกำหนดค่าเริ่มต้นในตาราง
23
การกำหนดค่าต่างๆให้กับตาราง สามารถทำได้หลายวิธี วิธีหนึ่งที่นิยม ใช้สำหรับตารางที่มีขนาดเล็ก คือใช้ คำสั่ง REDEFINES การกำหนดค่าให้กับตารางด้วยวิธีนี้ เหมาะสำหรับกรณีที่ตารางมีขนาด เล็กเท่านั้น แต่ในกรณีที่ตารางมี ขนาดใหญ่ และมีความซับซ้อนมาก ขึ้น ควรเปลี่ยนไปใช้วิธีอ่านข้อมูล จากแฟ้มเข้าไปเก็บในตาราง จะ สะดวกกว่า
24
การกำหนดค่าต่างๆ ให้กับตาราง 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.
28
การอ่านข้อมูลจากแฟ้มเข้าไป เก็บในตาราง การเก็บข้อมูลไว้ในตารางเพื่อใช้ในการประมวลผล หรือพิมพ์รายงานตามความต้องการของผู้ใช้มี ขั้นตอนดังนี้ สร้างแฟ้มข้อมูลที่มีข้อมูลตามที่ต้องการจะนำไป เก็บไว้ในตาราง เขียนโปรแกรม โดยมี แฟ้มนำเข้า แล้วใช้ คำสั่ง READ อ่านข้อมูลจากแฟ้มเข้าไปเก็บใน ตาราง
29
ตัวอย่าง แฟ้ม WORKDAY.DAT ประกอบด้วยข้อมูล ดังนี้ MONYELLOW TUE PINK WED GREEN THR ORANGE FRI CYAN
31
การค้นหาข้อมูลในตาราง การค้นหาข้อมูลในตาราง วิธีที่ง่ายที่สุด คือ การ ค้นหาแบบเรียงลำดับ การค้นหาข้อมูลทำได้ โดยนำค่าที่ต้องการค้นหาไปเปรียบเทียบกับ ข้อมูลที่อยู่ในตารางทีละรายการ ถ้ามีค่า ตรงกันแสดงว่า พบค่าที่ต้องการค้นหาแล้ว การค้นหาก็จะหยุดลง แต่ถ้ายังมีค่าไม่ตรงกัน จะต้องอ่านข้อมูลที่อยู่ในลำดับถัดไปในตาราง แล้วนำมาเปรียบเทียบกันอีก จนกว่าพบว่า ข้อมูลมีค่าตรงกัน แต่ถ้าอ่านข้อมูลจนจบ ตารางแล้วยังไม่พบข้อมูลที่ต้องการหา แสดง ว่า ไม่มีข้อมูลนั้นในตาราง
32
12A 17C 24M 35K 18B 11D 27K 18
33
12A 17C 24M 35K 18B 11D 27K 20
34
โปรแกรม อ่านข้อมูลจากแฟ้ม WORKDAY.DAT เข้าไปเก็บใน ตาราง แล้วป้อนข้อมูลที่ ต้องการค้นหาทางจอภาพ แล้วนำข้อมูลดังกล่าวไป ค้นหาข้อมูลอื่นจากตาราง เมื่อพบแล้วจะแสดงข้อมูลที่ ค้นพบออกทางจอภาพ
35
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
36
MONYELLOW TUEPINK WEDGREEN THUORANGE FRICYAN WORKDAY-FILE
37
MONYELLOW TUEPINK WEDGREEN THUORANGE FRICYAN WORKDAY-TABLESDAY WED COLOR(K)WDAY(K)
39
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 99. 05 PIC X(2). FD PRINT-FILE. 01 PRINT-REC PIC X(80). WORKING-STORAGE SECTION. 01 EOF PIC X. 01 I PIC 9.
40
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.
41
01 PDETAIL. 05 PIC X(12) VALUE SPACES. 05 PNAME PIC X(10). 05 PIC X(6) VALUE SPACES. 05 SCORE-SPACES OCCURS 4. 10 PSCORE PIC ZZZ9. 10 PIC X(6) VALUE SPACES. 05 PIC X(12) VALUE SPACES.
42
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).
43
การวน ซ้ำซ้อน ให้เขียนโปรแกรมเพื่อทำงาน ต่อไปนี้ รับข้อมูลชื่อวิชาจากจอภาพและ พิมพ์ชื่อวิชา อ่านข้อมูลชื่อนิสิตและคะแนนของ นิสิตแต่ละคน คำนวณหานิสิตที่มีคะแนนรวมสูง กว่าค่าเฉลี่ย พิมพ์รายงาน 2 ชุด ตามรูปแบบ ต่อไปนี้
44
FD IN-FILE. 01 IN-REC. 05 SNAME PIC X(10). 05 SCORE OCCURS 4 PIC 99. 05 PIC X(2). FD PRINT-FILE. 01 PRINT-REC PIC X(80). WORKING-STORAGE SECTION. 01 EOF PIC X. 01 I PIC 9. 01 J PIC 9. 01 N PIC 9. 01 GSUM PIC 9(3)V99 PACKED-DECIMAL. 01 MEAN PIC 999V99 PACKED-DECIMAL.
45
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 5. 10 PSCORE PIC ZZZ9. 10 PIC X(7) VALUE SPACES. 05 PIC X(9) VALUE SPACES.
46
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 10. 10 DNAME PIC X(10). 10 DSUM PIC 9(3) VALUE ZERO.
47
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.
48
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).
49
PRINT-ABOVE-AVERAGE. MOVE DNAME (J) TO PANAME MOVE DSUM (J) TO PSUM WRITE PRINT-REC FROM PABOVE-AVER AFTER 1.
50
DATA DIVISION. WORKING-STORAGE SECTION. 01 I PIC 9. 01 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.
51
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 9. 01 J PIC 9. 01 NUM PIC 99. 01 T-TAB. 02 T-ROW OCCURS 3 TIMES. 03 T-COL OCCURS 5 TIMES. 04 T PIC 99. โปรแกรมเพื่อสร้างตาราง ขนาด 3 x 5 แล้วรับข้อมูลที่ มีค่าน้อยกว่า 100 จาก จอภาพ เข้าไปเก็บไว้ใน ตาราง จากนั้นให้แสดง ค่าที่อยู่ในตาราง
54
01 CountyTax PIC 9(8)V99 OCCURS 26 TIMES. 01 CountyTax OCCURS 26 TIMES PIC 9(8)V99. CountyTax(1) … CountyTax(12)
57
Three Dimension Table. 12 34 01 JeansTable. 02 Province OCCURS 4 TIMES. 03 Gender OCCURS 2 TIMES. 04 Colour OCCURS 3 TIMES. 05 SalesValue PIC 9(8)V99. 05 NumSold PIC 9(7). 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 Colour SalesValue NumSold 12346.99 309
58
INDEXING
59
การใช้งานของดรรชนีจะแตกต่างจากดรรชนี กำกับ การกำหนดค่าให้ดรรชนี หรือ เปลี่ยนค่าของดรรชนีสามารถทำได้เพียง 3 วิธีเท่านั้น คือ คำสั่ง SET คำสั่ง PERFORM คำสั่ง SEARCH
63
FILE SECTION. FD IN-FILE. 01 IN-REC. 05 IYEAR PIC 99. 05 IMONTH PIC 99. 05 ISALES PIC 9(4)V99. 05 PIC XX. FD OUT-FILE. 01 OUT-REC PIC X(80). WORKING-STORAGE SECTION. 01 M PIC 99. 01 EOF-1 PIC X. 88 EOF VALUE "T". 01 DETAIL-1. 05 PIC X(10) VALUE SPACES. 05 DMONTH PIC X(3). 05 PIC X(24) VALUE SPACES. 05 DSALES PIC ZZ,ZZ9.99. 05 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.
64
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 99. 05 IMONTH PIC 99. 05 ISALES PIC 9(4)V99. 05 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) 5502245000 5607058000 5601720000 5504095075 5407100000 5602008550 5501066000 5610122500 …
งานนำเสนอที่คล้ายกัน
© 2024 SlidePlayer.in.th Inc.
All rights reserved.