Pelajaran modul (2/2)
Tabel dan Klausul TERJADI
Di COBOL, tidak ada kata kunci "array" atau "vektor" untuk menentukan daftar data yang homogen. Untuk tujuan ini, Anda menggunakan klausa OCCURS, yang menentukan berapa kali suatu variabel atau struktur berulang dalam memori.
Mendefinisikan Tabel dengan OCCURS
Klausa OCCURS ditambahkan ke deklarasi variabel bawahan (misalnya, level 05 atau lebih tinggi) dalam struktur grup (level 01):
01 WS-SALES-DATA.
05 WS-MONTHLY-SALES PIC 9(4) OCCURS 12 TIMES.Dalam contoh ini, WS-MONTHLY-SALES adalah tabel yang terdiri dari 12 elemen numerik yang masing-masing terdiri dari 4 digit. Memori yang dialokasikan untuk catatan ini tepat 12 * 4 = 48 karakter.
Mengakses Elemen dan Indeks
Untuk mengakses elemen tertentu dalam tabel, tentukan indeks dalam tanda kurung tepat setelah nama kolom.
[!PENTING] Tidak seperti kebanyakan bahasa modern yang menggunakan pengindeksan berbasis 0, COBOL menggunakan pengindeksan berbasis 1. Elemen pertama berada pada indeks
1, elemen kedua pada indeks2, dan seterusnya.
MOVE 1500 TO WS-MONTHLY-SALES(1).
MOVE 2400 TO WS-MONTHLY-SALES(2).Melintasi Tabel (Iterasi)
Untuk mengulang elemen tabel, Anda dapat menggunakan pernyataan PERFORM VARYING atau mengelola penghitung secara manual dalam perulangan PERFORM UNTIL:
PERFORM UNTIL WS-INDEX > 12
DISPLAY "Sales: " WS-MONTHLY-SALES(WS-INDEX)
ADD 1 TO WS-INDEX
END-PERFORM.Cobalah sendiri
Deklarasikan tabel 5 suhu desimal (3 digit bilangan bulat dan 1 desimal) di bawah struktur grup WS-WEATHER-DATA menggunakan klausa OCCURS.
Tunjukkan petunjuk
Tulis: 05 WS-TEMPERATURE PIC 9(3)V9 TERJADI 5 KALI.
Solusi tersedia setelah 3 upaya
Inisialisasi tiga elemen pertama tabel WS-MONTHLY-SALES dengan nilai masing-masing 1200, 1500, dan 1800 menggunakan pernyataan MOVE. Ingatlah bahwa indeks COBOL dimulai dari 1.
Tunjukkan petunjuk
Gunakan PINDAHKAN 1200 KE WS-PENJUALAN BULANAN(1). untuk elemen pertama, lalu ulangi untuk elemen kedua dan ketiga menggunakan indeks (2) dan (3).
Solusi tersedia setelah 3 upaya