ماڈیول اسباق (2/2)
میزیں اور OCCURS شق
COBOL میں، یکساں ڈیٹا کی فہرستوں کو متعین کرنے کے لیے کوئی "سرنی" یا "ویکٹر" کلیدی لفظ نہیں ہے۔ اس مقصد کے لیے، آپ OCCURS شق استعمال کرتے ہیں، جو یہ بتاتا ہے کہ میموری میں متغیر یا ڈھانچہ کتنی بار دہرایا جاتا ہے۔
OCCURS کے ساتھ ٹیبل کی وضاحت کرنا
OCCURS شق کو ماتحت متغیر کے اعلان میں شامل کیا جاتا ہے (مثال کے طور پر، سطح 05 یا اس سے زیادہ) گروپ کے ڈھانچے (سطح 01):
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پر ہے، وغیرہ۔
MOVE 1500 TO WS-MONTHLY-SALES(1).
MOVE 2400 TO WS-MONTHLY-SALES(2).میز کو عبور کرنا (دوبارہ)
کسی ٹیبل کے عناصر کو لوپ کرنے کے لیے، آپ PERFORM VARYING سٹیٹمنٹ استعمال کر سکتے ہیں یا PERFORM UNTIL لوپ میں کاؤنٹر کو دستی طور پر منظم کر سکتے ہیں:
PERFORM UNTIL WS-INDEX > 12
DISPLAY "Sales: " WS-MONTHLY-SALES(WS-INDEX)
ADD 1 TO WS-INDEX
END-PERFORM.خود ہی آزمائیں۔
OCCURS شق کا استعمال کرتے ہوئے WS-WEATHER-DATA گروپ ڈھانچے کے تحت 5 اعشاریہ درجہ حرارت (3 عددی ہندسوں اور 1 اعشاریہ) کی میز کا اعلان کریں۔
اشارہ دکھائیں۔
لکھیں: 05 WS-TEMPERATURE PIC 9(3)V9 5 بار ہوتا ہے۔
3 کوششوں کے بعد حل دستیاب ہے۔
WS-MONTHLY-SALES ٹیبل کے پہلے تین عناصر کو بالترتیب 1200، 1500 اور 1800 کی قدروں کے ساتھ موو سٹیٹمنٹس کا استعمال کرتے ہوئے شروع کریں۔ یاد رکھیں کہ COBOL انڈیکس 1 سے شروع ہوتے ہیں۔
اشارہ دکھائیں۔
MOVE 1200 TO WS-MONTHLY-SALES(1) کا استعمال کریں۔ پہلے عنصر کے لیے، پھر اشاریہ (2) اور (3) کا استعمال کرتے ہوئے دوسرے اور تیسرے کے لیے دہرائیں۔
3 کوششوں کے بعد حل دستیاب ہے۔