2D and 3D Array: किसी 2-D Array में भी हम उसी प्रकार से Traversing कर सकते हैं जिस प्रकार से किसी 1-D Array में करते हैं। हालांकि Memory में सभी Data एक 1-D Array के रूप में ही Store होते हैं लेकिन किसी 2-D Array के Data को Logically हम निम्न Format में प्रदर्शित कर सकते हैं:
0,0 | 0,1 | 0,2 |
1,0 | 1,1 | 1,2 |
2,0 | 2,1 | 2,2 |
इस Array में तीन ROW व तीन ही COLUMNS हैं। DOS में Monitor की Screen भी Rows व Columns में विभाजित रहती है। यानी Screen पर कुल 25 Rows व 80 Columns होते हैं। हम जब भी कोई Matter Screen पर लिखते हैं तो सबसे पहले पहली Row में Characters Write होते हैं। जब पहली Row में 80 Characters Write हो जाते हैं तब वापस दूसरी Row में 80 Columns में Characters Write होते हैं। यानी हमारे Monitor की Screen भी एक 2-D Array या एक Table की तरह ही होती है।
जिस तरह Screen पर Characters Write होते हैं उसी तरह किसी 2-D Array में भी Characters Insert होते हैं। यानी यदि हमें किसी 2-D Array में क्रम से Data Input करने हों तो हमें सबसे पहले पहली Row के सभी Columns में Data Write करना होगा। जब पहली Row के सभी Columns में Data Write हो जाएगा, तब हमें वापस दूसरी Row के सभी Columns में Data को Write करना होगा। 2-D Array के चित्र में हम देख सकते हैं कि पहली Row में Row का मान जब 0 होता है तब तीनों Columns का मान क्रम से 0, 1 व 2 होता है। इसी तरह दूसरी Row में Row का मान 1 होता है तब Columns का मान वापस 1, 2 व 3 होता है।
यानी यदि हम किसी 2-D Array में क्रम से Data Input करना चाहें तो हमें दो Loop चलाने होते हैं: पहला Loop Row के लिए व दूसरा Loop Column के लिए और Loop भी इस तरह से चलाने होते हैं कि जब तक पहली Row के सभी Columns में Data Feed ना हो जाएं तब तक दूसरी Row में Data Feed नहीं होना चाहिए। यानी हमें Nested Loop चलाना होता है।
Nested Loop में जब Outer Loop का मान 0 होता है तब Inner Loop का मान क्रम से 1, 2 व 3 होता है। फिर वापस Outer Loop का मान जब 1 होता है तब Inner Loop का मान 1, 2 व 3 होता है। इसी तरह हमें आगे भी Loop चलाने पडते हैं। इन सभी परिस्थितियों को ध्यान में रखते हुए तो किसी 2-D Array की Traversing करने का Algorithm हम निम्नानुसार लिख सकते हैं:
Algorithm
Here LARRAY is a Linear Array, LB is a LOWER BOUND of both the Loops and UB is a UPPER BOUND of both the Loops.
- START
- REPEATE FOR Row = LB TO UB [ Outer Loop ]
- REPEATE FOR Columns = LB TO UB [ Inner Loop ]
- PROCESS LARRAY[Row][Columns] [ Process Data Item ]
- END
जिस तरह से दो Loop चला कर हम 2-D Array की Traversing कर सकते हैं, उसी तरह यदि हमें किसी 3-D Array की Traversing करनी हो तो हमें तीन Nested Loop चलाने पडते हैं। किसी 3-D Array की Traversing करने का Algorithm निम्नानुसार लिखा जा सकता है-
Algorithm
Here LARRAY is a Linear Array, LB is a LOWER BOUND of All the Loops and UB is a
UPPER BOUND of All the Loops.
- START
- REPEATE FOR Row = LB TO UB [ Outer Loop ]
- REPEATE FOR Columns = LB TO UB [ Inner Loop ]
- REPEATE FOR InnerColumn = LB TO UB [ Inner Loop ]
- PROCESS LARRAY[Row][Columns][InnerColumn] [ Process Data Item ]
- END
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook C Programming Language in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
C Programming Language in Hindi | Page: 477 + 265 | Format: PDF