مرکزی مواد پر جائیں
ماڈیول 4 · سبق 2 از 2کورس میں 8/10~15 min
ماڈیول اسباق (2/2)

میزیں اور OCCURS شق

COBOL میں، یکساں ڈیٹا کی فہرستوں کو متعین کرنے کے لیے کوئی "سرنی" یا "ویکٹر" کلیدی لفظ نہیں ہے۔ اس مقصد کے لیے، آپ OCCURS شق استعمال کرتے ہیں، جو یہ بتاتا ہے کہ میموری میں متغیر یا ڈھانچہ کتنی بار دہرایا جاتا ہے۔

OCCURS کے ساتھ ٹیبل کی وضاحت کرنا

OCCURS شق کو ماتحت متغیر کے اعلان میں شامل کیا جاتا ہے (مثال کے طور پر، سطح 05 یا اس سے زیادہ) گروپ کے ڈھانچے (سطح 01):

COBOL
01 WS-SALES-DATA.
    05 WS-MONTHLY-SALES PIC 9(4) OCCURS 12 TIMES.

اس مثال میں، WS-MONTHLY-SALES ایک جدول ہے جس میں 4 ہندسوں کے 12 عددی عناصر شامل ہیں۔ اس ریکارڈ کے لیے مختص کردہ میموری بالکل 12 *4 = 48 حروف کی ہوگی۔

عناصر اور اشاریہ جات تک رسائی

ٹیبل میں کسی مخصوص عنصر تک رسائی کے لیے، فیلڈ کے نام کے فوراً بعد قوسین میں انڈیکس کی وضاحت کریں۔

[!اہم] زیادہ تر جدید زبانوں کے برعکس جو 0 پر مبنی اشاریہ کاری کا استعمال کرتی ہیں، COBOL 1-based indexing کا استعمال کرتا ہے۔ پہلا عنصر انڈیکس 1 پر ہے، دوسرا انڈیکس 2 پر ہے، وغیرہ۔

COBOL
MOVE 1500 TO WS-MONTHLY-SALES(1).
MOVE 2400 TO WS-MONTHLY-SALES(2).

میز کو عبور کرنا (دوبارہ)

کسی ٹیبل کے عناصر کو لوپ کرنے کے لیے، آپ PERFORM VARYING سٹیٹمنٹ استعمال کر سکتے ہیں یا PERFORM UNTIL لوپ میں کاؤنٹر کو دستی طور پر منظم کر سکتے ہیں:

COBOL
PERFORM UNTIL WS-INDEX > 12
    DISPLAY "Sales: " WS-MONTHLY-SALES(WS-INDEX)
    ADD 1 TO WS-INDEX
END-PERFORM.

خود ہی آزمائیں۔

ورزش#cobol.m4.l2.e1
کوششیں: 0لوڈ ہو رہا ہے…

OCCURS شق کا استعمال کرتے ہوئے WS-WEATHER-DATA گروپ ڈھانچے کے تحت 5 اعشاریہ درجہ حرارت (3 عددی ہندسوں اور 1 اعشاریہ) کی میز کا اعلان کریں۔

ایڈیٹر لوڈ ہو رہا ہے…
اشارہ دکھائیں۔

لکھیں: 05 WS-TEMPERATURE PIC 9(3)V9 5 بار ہوتا ہے۔

3 کوششوں کے بعد حل دستیاب ہے۔

ورزش#cobol.m4.l2.e2
کوششیں: 0لوڈ ہو رہا ہے…

WS-MONTHLY-SALES ٹیبل کے پہلے تین عناصر کو بالترتیب 1200، 1500 اور 1800 کی قدروں کے ساتھ موو سٹیٹمنٹس کا استعمال کرتے ہوئے شروع کریں۔ یاد رکھیں کہ COBOL انڈیکس 1 سے شروع ہوتے ہیں۔

ایڈیٹر لوڈ ہو رہا ہے…
اشارہ دکھائیں۔

MOVE 1200 TO WS-MONTHLY-SALES(1) کا استعمال کریں۔ پہلے عنصر کے لیے، پھر اشاریہ (2) اور (3) کا استعمال کرتے ہوئے دوسرے اور تیسرے کے لیے دہرائیں۔

3 کوششوں کے بعد حل دستیاب ہے۔