Biến và kiểu dữ liệu trong COBOL – Hướng dẫn chi tiết với ví dụ và bài tập
Biến và kiểu dữ liệu trong COBOL là gì? Vì sao quan trọng?
Trong phần trước, bạn đã làm quen với cấu trúc chương trình COBOL và các division cơ bản. Bước tiếp theo để có thể viết được bất kỳ chương trình thực tế nào là hiểu rõ biến (variable) và kiểu dữ liệu (data type) trong COBOL.
Khác với nhiều ngôn ngữ hiện đại như Java, Python, COBOL mô tả dữ liệu rất chi tiết bằng PIC (PICTURE clause). Điều này giúp mô tả chính xác độ dài, loại ký tự, dấu thập phân, dấu âm dương của từng field – cực kỳ quan trọng trong hệ thống tài chính, ngân hàng, bảo hiểm nơi mà 1 sai số nhỏ cũng có thể gây lỗi lớn.
Trong bài này, bạn sẽ học:
- Cách khai báo biến trong COBOL (level number, tên biến, PIC)
- Các kiểu dữ liệu cơ bản: numeric, string, signed number, decimal
- Giới thiệu COMP, COMP-3 (packed decimal) – rất phổ biến trong banking
- Cách dùng group item (giống struct) để mô hình hóa dữ liệu thực tế
- Các lỗi thường gặp khi khai báo biến
- Bài tập thực hành để luyện tập ngay
Tổng quan: DATA DIVISION và WORKING-STORAGE
Tất cả biến trong COBOL (trừ parameter đặc biệt) đều được khai báo trong DATA DIVISION. Phần bạn sẽ làm việc nhiều nhất khi khai báo biến là:
- WORKING-STORAGE SECTION – khai báo biến dùng trong suốt chương trình
- (Sau này nâng cao) FILE SECTION, LINKAGE SECTION – dùng cho file và parameter
Ví dụ một skeleton đơn giản:
IDENTIFICATION DIVISION.
PROGRAM-ID. VARIABLE-DEMO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-NAME PIC X(20).
01 WS-AGE PIC 99.
PROCEDURE DIVISION.
MOVE "Nguyen Van A" TO WS-NAME.
MOVE 25 TO WS-AGE.
DISPLAY WS-NAME.
DISPLAY WS-AGE.
STOP RUN.
Điểm quan trọng:
- Mỗi biến bắt đầu bằng level number (01, 05, 10, ...)
- Theo sau là tên biến (WS-NAME, WS-AGE, ...)
- Và PIC để mô tả kiểu dữ liệu
Giải thích:
DISPLAY WS-NAME./DISPLAY WS-AGE.: câu lệnh I/O console, in giá trị field ra output device (tương đương print/println hoặc printf tối giản).STOP RUN.: statement kết thúc chương trình COBOL, trả control về OS – về mặt ý nghĩa giống return ở cuối main trong C/Java.
Yêu cầu đăng nhập
Vui lòng đăng nhập để truy cập nội dung này
Additional Resources
Course Guide
Comprehensive PDF guide with examples
GitHub Repository
Example code for all lessons
Discussion
Have a question about this lesson? Post it here and get answers from instructors and peers.
