मॉड्यूल पाठ (2/2)
तालिकाएँ और घटित खण्ड
COBOL में, सजातीय डेटा की सूचियों को परिभाषित करने के लिए कोई "सरणी" या "वेक्टर" कीवर्ड नहीं है। इस उद्देश्य के लिए, आप OCCURS क्लॉज का उपयोग करते हैं, जो निर्दिष्ट करता है कि कोई चर या संरचना मेमोरी में कितनी बार दोहराई जाती है।
OCCURS के साथ एक तालिका को परिभाषित करना
OCCURS खंड को एक समूह संरचना (स्तर 01) के भीतर एक अधीनस्थ चर (उदाहरण के लिए, स्तर 05 या उच्चतर) की घोषणा में जोड़ा जाता है:
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-आधारित अनुक्रमणिका का उपयोग करता है। पहला तत्व सूचकांक
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-मौसम-डेटा समूह संरचना के तहत 5 दशमलव तापमान (3 पूर्णांक अंक और 1 दशमलव) की एक तालिका घोषित करें।
संकेत दिखाएँ
लिखें: 05 डब्लूएस-तापमान चित्र 9(3)वी9 5 बार आता है।
3 प्रयासों के बाद समाधान उपलब्ध है
MOVE स्टेटमेंट का उपयोग करके क्रमशः 1200, 1500 और 1800 मानों के साथ WS-मासिक-बिक्री तालिका के पहले तीन तत्वों को प्रारंभ करें। याद रखें कि COBOL इंडेक्स 1 से शुरू होते हैं।
संकेत दिखाएँ
डब्लूएस-मासिक-बिक्री(1) के लिए मूव 1200 का उपयोग करें। पहले तत्व के लिए, फिर अनुक्रमणिका (2) और (3) का उपयोग करके दूसरे और तीसरे के लिए दोहराएं।
3 प्रयासों के बाद समाधान उपलब्ध है