Modül dersleri (2/2)
Tablolar ve OCCURS Maddesi
COBOL'da homojen veri listelerini tanımlamak için "dizi" veya "vektör" anahtar sözcüğü yoktur. Bu amaçla, bir değişkenin veya yapının bellekte kaç kez tekrarlanacağını belirten OCCURS deyimini kullanırsınız.
OCCURS ile Tablo Tanımlamak
OCCURS yan tümcesi, bir grup yapısı (düzey 01) içindeki bir alt değişkenin (örneğin, düzey 05 veya daha yüksek) bildirimine eklenir:
01 WS-SALES-DATA.
05 WS-MONTHLY-SALES PIC 9(4) OCCURS 12 TIMES.Bu örnekte WS-MONTHLY-SALES her biri 4 basamaklı 12 sayısal öğeden oluşan bir tablodur. Bu kayıt için ayrılan hafıza tam olarak 12 * 4 = 48 karakter olacaktır.
Öğelere ve Dizinlere Erişim
Bir tablodaki belirli bir öğeye erişmek için, alan adından hemen sonra parantez içinde dizini belirtin.
[!ÖNEMLİ] 0 tabanlı indekslemeyi kullanan çoğu modern dilin aksine, COBOL 1 tabanlı indekslemeyi kullanır. İlk öğe
1dizinindedir, ikincisi2dizinindedir ve bu şekilde devam eder.
MOVE 1500 TO WS-MONTHLY-SALES(1).
MOVE 2400 TO WS-MONTHLY-SALES(2).Bir Tabloda Geçiş Yapmak (Yineleme)
Bir tablonun öğeleri arasında döngü oluşturmak için PERFORM VARYING ifadesini kullanabilir veya bir sayacı PERFORM UNTIL döngüsünde manuel olarak yönetebilirsiniz:
PERFORM UNTIL WS-INDEX > 12
DISPLAY "Sales: " WS-MONTHLY-SALES(WS-INDEX)
ADD 1 TO WS-INDEX
END-PERFORM.Kendin dene
OCCURS yan tümcesini kullanarak WS-WEATHER-DATA grup yapısı altında 5 ondalık sıcaklıktan (3 tam sayı ve 1 ondalık sayı) oluşan bir tablo bildirin.
İpucu göster
Yaz: 05 WS-SICAKLIK PIC 9(3)V9 5 KEZ OLUŞUR.
3 denemeden sonra çözüm mevcut
MOVE ifadelerini kullanarak WS-MONTHLY-SALES tablosunun ilk üç öğesini sırasıyla 1200, 1500 ve 1800 değerleriyle başlatın. COBOL indekslerinin 1'den başladığını unutmayın.
İpucu göster
MOVE 1200'ü WS-AYLIK-SATIŞLARA(1) kullanın. ilk eleman için, ardından (2) ve (3) indekslerini kullanarak ikinci ve üçüncü için tekrarlayın.
3 denemeden sonra çözüm mevcut