ดาวน์โหลดงานนำเสนอ
งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ
1
สัปดาห์ที่ 3 CH 6 : DATA DIVISION
2
DATA DIVISION บอกรายละเอียดเกี่ยวกับข้อมูลทั้งหมดที่ใช้ในโปรแกรม เช่น รายละเอียดแต่ละ File , Record ของ File นั้นประกอบด้วย Fieldอะไรบ้าง มีลักษณะอย่างไร BC324 : COBOL Programming CH 6 : DATA DIVISION
3
DATA DIVISION ประกอบด้วย 2 Section
1. File Section : อธิบายลักษณะของ File และ Record ที่อยู่ใน File นั้น แบ่งเป็น 2 Paragraph 1.1 File Description Paragraph (FD) : อธิบาย ลักษณะของ File 1.2 Record Description Paragraph : อธิบายลักษณะ ของ Record 2. Working-Storage Section : อธิบายลักษณะของ Record หรือกลุ่มข้อมูลต่างๆ ที่ไม่ได้อยู่ใน File แต่จำเป็นต้องใช้ในระหว่างการประมวลผล BC324 : COBOL Programming CH 6 : DATA DIVISION
4
ตัวอย่าง: . * DATA DIVISION. WORKING-STORAGE SECTION.
77 Num PIC 9 VALUE ZEROS. 77 Num PIC 9 VALUE ZEROS. 77 Result PIC 99 VALUE ZEROS. BC324 : COBOL Programming CH 6 : DATA DIVISION
5
ตัวอย่าง: SELECT INVENTORY-FILE ASSIGN TO DISK. SELECT ERROR-LIST
ASSIGN TO PRINTER. * DATA DIVISION. FILE SECTION. FD INVENTORY-FILE . FD ERROR-LIST BC324 : COBOL Programming CH 6 : DATA DIVISION
6
FILE SECTION
7
File Description Paragraph
|-A-| - B SELECT INVENTORY-FILE ASSIGN TO DISK. * DATA DIVISION. FILE SECTION. FD INVENTORY-FILE LABEL RECORD IS STANDARD DATA RECORD IS INV-REC RECORD CONTAINS 80 CHARACTERS VALUE OF FILE-ID IS “C:\INV.DAT”. File Description Paragraph
8
Field ที่ไม่มี Field ย่อยใดๆ เป็นองค์ประกอบ
Files, Records, Fields. File Field ที่ประกอบด้วย Field ย่อยๆ Record Record Field ที่ไม่มี Field ย่อยใดๆ เป็นองค์ประกอบ (Elementary Item) Item Group Item (Field) (Field) Item Item (Field) โครงสร้างของแฟ้มข้อมูลใดๆ ประกอบด้วยกลุ่มของ Record ในเรื่องเดียวกัน และแต่ละ Record ประกอบด้วยกลุ่มของ Field ใน COBOL จะยึดโครงสร้างดังกล่าวในการอธิบายลักษณะข้อมูล BC324 : COBOL Programming CH 6 : DATA DIVISION
9
File STUDENTS.DAT Record #1 Record #5 Field
StudId StudName DateOfBirth COUGHLAN RYAN COFFEY O'BRIEN SMITH STUDENTS.DAT File Record #1 Record #5 Field DATA DIVISION. FILE SECTION. FD StudentFile. 01 StudentDetails. 02 StudId PIC 9(7). 02 StudName PIC X(8). 02 DateOfBirth PIC X(8). BC324 : COBOL Programming CH 6 : DATA DIVISION
10
Description Paragraph
| A | - B Record Description Paragraph DATA DIVISION. FILE SECTION. FD STUDENT-FILE LABEL RECORD IS STANDARD DATA RECORD IS STUDENT-REC. STUDENT-REC. 05 ID PIC X(03). 05 FILLER PIC X(01) VALUE SPACE. 05 NAME1 PIC A(06). STUDENT-REC ID1 FILLER (= ช่องว่าง) NAME1
11
Declaring DATA in COBOL
01 Num PIC 999 VALUE ZEROS. BC324 : COBOL Programming CH 6 : DATA DIVISION
12
Level Number ที่มีค่ามากกว่า จะแสดงถึงลำดับชั้นที่ ต่ำกว่า
LEVEL Numbers Level Number ใช้สำหรับแสดงถึงโครงสร้างของข้อมูล Level Number มีค่า , 77 , 88 Level Number ที่มีค่ามากกว่า จะแสดงถึงลำดับชั้นที่ ต่ำกว่า Field ที่อยู่ในระดับเดียวกันใช้ Level Number เท่ากัน Level Number ไม่จำเป็นต้องเพิ่มทีละ หนึ่ง BC324 : COBOL Programming CH 6 : DATA DIVISION
13
LEVEL Numbers 01 : ใช้สำหรับอธิบาย Record (บอกชื่อ Record) ซึ่ง เป็น Level สูงสุด 02-49 : ใช้สำหรับอธิบาย field ย่อยๆของ Record 77 : ใช้สำหรับอธิบาย field ที่ไม่มีโครงสร้างลำดับชั้น หรือไม่มี ความสัมพันธ์กับ field อื่นใดเลย (ไม่มี field ย่อยเป็นองค์ประกอบ และไม่เป็นองค์ประกอบของ field อื่นใด 88 : ใช้กำหนดเงื่อนไขต่าง ๆ ให้กับ field ใน Level Number ก่อนหน้า BC324 : COBOL Programming CH 6 : DATA DIVISION
14
data-name / FILLER data name : ชื่อของ Record หรือ Group Item หรือ Elementary Item ซึ่งเป็นการอ้างถึงเนื้อที่ใน หน่วยความจำ FILLER : ใช้ในกรณีที่ข้อมูลบริเวณนั้น ไม่ได้ใช้อ้างอิง ในโปรแกรม จึงไม่ต้องระบุชื่อ แต่บริเวณดังกล่าวไม่ได้ แปลว่าเป็นพื้นที่ว่าง (อาจจะว่างหรือไม่ก็ได้) BC324 : COBOL Programming CH 6 : DATA DIVISION
15
COBOL ‘PICTURE’ Clauses
PICTURE : บอกลักษณะของ data name ว่าเก็บข้อมูล ประเภทใด ขนาดเท่าไร สัญลักษณ์ที่ใช้ใน PICTURE แบ่งเป็น 3 ประเภท 1. Data Character Symbol : สัญลักษณ์ที่แสดงถึง ลักษณะของข้อมูล ได้แก่ A , X , 9 2. Operations Symbol : สัญลักษณ์ที่ใช้ในการ คำนวณ ได้แก่ S , V , P (ไม่มีผลกับขนาดของ data name) 3. Editing Symbol : สัญลักษณ์ที่ใช้ในการพิมพ์ ได้แก่ Z , * , $ , + , - , (มีผลกับขนาดของ data name) BC324 : COBOL Programming CH 6 : DATA DIVISION
16
COBOL ‘PICTURE’ Clauses
ตัวอย่าง Data Character Symbol PICTURE ลักษณะข้อมูล ตัวอย่างข้อมูล PIC 9(3) ตัวเลขเท่านั้น (Max : 18 digit) 456 PIC A(7) ตัวอักษร A-Z และช่องว่าง ‘COBOLbb’ PIC X(6) ตัวเลข , ตัวอักษร และ - (hyphen) ‘BC-324’ BC324 : COBOL Programming CH 6 : DATA DIVISION
17
COBOL ‘PICTURE’ Clauses
ตัวอย่าง Operations Symbol (ไม่ใช้เนื้อที่ในการเก็บ) PICTURE ลักษณะข้อมูล ข้อมูลในหน่วยความจำ ใช้เนื้อที่ 77 NUM PIC S9(3) VALUE -500. ตัวเลขที่อาจมีทั้งค่าบวกและค่าลบ 500- 3 byte 77 NUM PIC S9(3) VALUE 500. “ 500 77 NUM PIC 9(3) VALUE -500. 77 NUM PIC 9(2)V99 VALUE แสดงตำแหน่งของจุดทศนิยม 10^45 4 byte
18
COBOL ‘PICTURE’ Clauses
ตัวอย่าง Operations Symbol (ไม่ใช้เนื้อที่ในการเก็บ) PICTURE ลักษณะข้อมูล ข้อมูลในMemory ใช้คำนวณ ใช้เนื้อที่ 77 NUM PIC PP99 VALUE 23. แสดงตำแหน่งเลขศูนย์สมมุติ 23 ^0023 2 byte 77 NUM PIC 99PP VALUE 23. 2300^
19
COBOL ‘PICTURE’ Clauses
ตัวอย่าง Editing Symbol PICTURE ลักษณะข้อมูล ข้อมูล ผลลัพธ์ PIC ZZ9 บอกตำแหน่งที่จะแทนที่เลข 0 (ที่อยู่หน้าตัวเลข) ด้วยช่องว่าง 007 bb7 “ 027 b27 PIC Z99 b07 PIC **9 บอกตำแหน่งที่จะแทนที่เลข 0 (ที่อยู่หน้าตัวเลข) ด้วย * **7 PIC $ZZ9 เติม $ หน้าตัวเลข $bb7 BC324 : COBOL Programming CH 6 : DATA DIVISION
20
Question ? Data Character Symbol & Operations Symbol ตัวอย่างข้อมูล
PICTURE กินที่ในหน่วยความจำ 1234 ‘JUN’ ’59’ ’BKKbb’ ’BKKb10100’ -20.50 Score 0-100 PIC 9(4) 4 byte PIC A(3) / PIC X(3) 3 byte PIC X(2) 2 byte 5 byte PIC X(5) 9 byte PIC X(9) PIC S9(2)V99 4 byte PIC S9(2)V999 PIC 9(2)V999 5 byte PIC 9(3) 3 byte BC324 : COBOL Programming CH 6 : DATA DIVISION
21
Question ? Editing Symbol ตัวอย่างข้อมูล ผลลัพธ์ PICTURE ZZ9 007 Z99
012^00 000 **99 0012 ***9 bb7 b07 bb7 b12.00 bbb bb0 **12 **12 BC324 : COBOL Programming CH 6 : DATA DIVISION
22
Question ? Editing Symbol ตัวอย่างข้อมูล ผลลัพธ์ PICTURE ***9 0010
0000 **** 0100 $999 123 012 $Z99 $ZZZ 000 **10 ***0 **** *100 $123 $012 $b12 bbbb BC324 : COBOL Programming CH 6 : DATA DIVISION
23
ตัวอย่าง File Section FD STUDENT-FILE LABEL RECORD IS STANDARD
DATA DIVISION. FILE SECTION. FD STUDENT-FILE LABEL RECORD IS STANDARD DATA RECORD IS STUDENT-REC. STUDENT-REC. 02 SID PIC X(03). 02 SNAME. 07 FIRST-NAME PIC A(5). 07 LAST-NAME PIC A(10). BC324 : COBOL Programming CH 6 : DATA DIVISION
24
ตัวอย่าง File Section FD STUDENT-FILE LABEL RECORD IS STANDARD
DATA DIVISION. FILE SECTION. FD STUDENT-FILE LABEL RECORD IS STANDARD DATA RECORD IS STUDENT-REC. STUDENT-REC. 05 SID PIC X(03). 05 SNAME. 10 FIRST-NAME PIC A(5). 10 LAST-NAME PIC A(10). BC324 : COBOL Programming CH 6 : DATA DIVISION
25
COBOL ‘PICTURE’ Clauses
PIC เหมือนกับ PIC 9(5) PIC 9999V999 เหมือนกับ PIC 9(4)V9(3) PIC XXXAA เหมือนกับ PIC X(3)A(2) PIC 999XXX เหมือนกับ PIC 9(3)X(3) PIC ZZZ.ZZ เหมือนกับ PIC Z(3).Z(2) PIC ZZZ, เหมือนกับ PIC Z(3),9(3).9(2) BC324 : COBOL Programming CH 6 : DATA DIVISION
26
ตัวอย่าง File Section FD STUDENT-FILE LABEL RECORD IS STANDARD
DATA DIVISION. FILE SECTION. FD STUDENT-FILE LABEL RECORD IS STANDARD DATA RECORD IS STUDENT-REC. STUDENT-REC. 05 SID PIC X(03). 05 SNAME. 10 FIRST-NAME PIC A(5). 10 LAST-NAME PIC A(10). BC324 : COBOL Programming CH 6 : DATA DIVISION
27
WORKING-STORAGE SECTION
28
DATA DIVISION ประกอบด้วย 2 Section
1. File Section : อธิบายลักษณะของ File และ Record ที่อยู่ใน File นั้น แบ่งเป็น 2 Paragraph 1.1 File Description Paragraph (FD) : อธิบาย ลักษณะของ File 1.2 Record Description Paragraph : อธิบายลักษณะ ของ Record 2. Working-Storage Section : อธิบายลักษณะของ Record หรือกลุ่มข้อมูลต่างๆ ที่ไม่ได้อยู่ใน File แต่จำเป็นต้องใช้ในระหว่างการประมวลผล BC324 : COBOL Programming CH 6 : DATA DIVISION
29
เพิ่ม Level 77 , 88 DATA DIVISION. WORKING-STORAGE SECTION.
| -A- | - B เพิ่ม Level 77 , 88 DATA DIVISION. WORKING-STORAGE SECTION. 77 Num PIC 999 VALUE ZEROS. 77 VatRate PIC V99 VALUE .18. 01 StudentName PIC X(10) VALUE SPACES. Num1 VatRate StudentName 000 .18 DATA BC324 : COBOL Programming CH 6 : DATA DIVISION
30
LEVEL Numbers (Working-storage section)
01 : ใช้สำหรับอธิบาย Record (บอกชื่อ Record) ซึ่ง เป็น Level สูงสุด 02-49 : ใช้สำหรับอธิบาย field ย่อยๆของ Record 77 : ใช้สำหรับอธิบาย field ที่ไม่มีโครงสร้างลำดับชั้น หรือไม่มี ความสัมพันธ์กับ field อื่นใดเลย (ไม่มี field ย่อยเป็นองค์ประกอบ และไม่เป็นองค์ประกอบของ field อื่นใด 88 : ใช้กำหนดเงื่อนไขต่าง ๆ ให้กับ field ใน Level Number ก่อนหน้า 88 condition-name {VALUE IS / VALUE ARE} literal-1 [ {THROUGH / THRU } literal-2 ] BC324 : COBOL Programming CH 6 : DATA DIVISION
31
ตัวอย่าง Working-Storage Section
| - A - | B DATA DIVISION. WORKING-STORAGE SECTION. GROSS-PAY PIC 999V99. TOTAL. 05 SALARY PIC 9(04)V99. 05 OVERTIME PIC 9(03)V99. Level No. 77 จะอยู่ก่อนหน้า 01 BC324 : COBOL Programming CH 6 : DATA DIVISION
32
LEVEL Numbers 88 Level Number 88 : ใช้กำหนดเงื่อนไขต่าง ๆ ให้กับ field ใน Level Number ก่อนหน้า 88 condition-name {VALUE IS / VALUE ARE} literal-1 [ {THROUGH / THRU } literal-2 ] | - A - | B DATA DIVISION. WORKING-STORAGE SECTION. SCORE PIC 999. 88 PASS VALUE 50 THRU 100. 88 FAIL VALUE THRU 49. BC324 : COBOL Programming CH 6 : DATA DIVISION
33
LEVEL Numbers 88 Level Number 88 : ใช้กำหนดเงื่อนไขต่าง ๆ ให้กับ field ใน Level Number ก่อนหน้า 88 condition-name {VALUE IS / VALUE ARE} literal-1 [ {THROUGH / THRU } literal-2 ] | - A - | B DATA DIVISION. WORKING-STORAGE SECTION. GRADE PIC A. 88 PASS VALUE ‘A’ THRU ‘D’. 88 FAIL VALUE ‘F’. BC324 : COBOL Programming CH 6 : DATA DIVISION
34
LEVEL Numbers 88 | - A - | B IDENTIFICATION DIVISION. PROGRAM-ID. WEEK3. DATA DIVISION. WORKING-STORAGE SECTION. SCORE PIC 999. 88 PASS VALUE 50 THRU 100. 88 FAIL VALUE THRU 49. PROCEDURE DIVISION. MOVE 60 TO SCORE. IF PASS DISPLAY ‘You are pass’ ELSE DISPLAY ‘You are fail’. STOP RUN. BC324 : COBOL Programming CH 6 : DATA DIVISION
35
StudentDetails WORKING-STORAGE SECTION. 01 StudentDetails.
02 StudentName PIC X(10). 02 StudentId PIC 9(7). 02 CourseCode PIC X(4). 02 Grant PIC 9(4). 02 Gender PIC X. StudentDetails H E N N E S S Y R M L M F StudentName StudentId CourseCode Grant Gender
36
WORKING-STORAGE SECTION. 01 StudentDetails. 02 StudentName.
03 Surname PIC X(8). 03 Initials PIC XX. 02 StudentId PIC 9(7). 02 CourseCode PIC X(4). 02 Grant PIC 9(4). 02 Gender PIC X. StudentDetails H E N N E S S Y R M L M F StudentName StudentId CourseCode Grant Gender Surname Initials
37
SUMMARY
38
SELECT STUDENT-FILE ASSIGN TO ‘STUDENT.DAT’. * DATA DIVISION.
| - A - | B SELECT STUDENT-FILE ASSIGN TO ‘STUDENT.DAT’. * DATA DIVISION. FILE SECTION. FD STUDENT-FILE LABEL RECORD IS STANDARD DATA RECORD IS STUDENT-REC. STUDENT-REC. 05 SID PIC X(03). 05 SNAME. 10 FIRST-NAME PIC X(5). 10 LAST-NAME PIC X(10). WORKING-STORAGE SECTION. SALARY PIC 9(04)V99. TOTAL. 05 TUITION-FEE PIC 9(04)V99. 05 EXPENSE PIC 9(03)V99. BC324 : COBOL Programming CH 6 : DATA DIVISION
39
EXERCISE
40
ให้เขียน DATA DIVISION ของโปรแกรมที่มี File ลักษณะดังนี้
EMPLOYEE-FILE ID-NO (4) (1) NAME1 SALARY (7) (16) FIRST (10) LAST A125 b Mr. A... B 15000^00 bb...... A336 Ms. B... M 20000^00 C007 Mr. S... N 30000^00 . Record ของ EMPLOYEE-FILE ชื่อ EMPLOYEE-REC มีตัวแปรอิสระที่ไม่อยู่ใน File คือ EMP-COUNT เก็บตัวเลข 0 – 1,000 AMOUNT เก็บตัวเลข 0 – 100,000 (มีทั้งเลข + และ -)
งานนำเสนอที่คล้ายกัน
© 2024 SlidePlayer.in.th Inc.
All rights reserved.