ट्रेसिंग वाले सवालों में अक्सर एल्गोरिदम न समझने की वजह से नहीं, बल्कि गलत टेबल बनाने की वजह से मार्क्स कटते हैं। जैसे कि एक ही लाइन में चुपके से दो स्टेप्स लिख देना, या किसी वेरिएबल में कोई बदलाव न होने पर उसे खाली छोड़ देना।
छोटी लिस्ट A = [4, 1, 3] के साथ, हर लाइन को ठीक एक स्टेप के बाद पूरे प्रोग्राम की स्टेट (स्थिति) मानें। स्यूडोकोड लाइन क्या काम करती है, इसके आधार पर एक स्टेप का मतलब एक लूप इटरेशन, एक असाइनमेंट या एक स्वैप हो सकता है।
टेबल देखने से पहले, इसका जवाब दें। अगर कोई लूप हर इटरेशन पर A[i] को पढ़ता है, तो A = [4, 1, 3] के लिए उस लाइन में current_value कॉलम में क्या वैल्यू होनी चाहिए जहाँ i = 1 है?
देखें कि A = [4, 1, 3] के लिए सिंगल-स्टेप स्टेट टेबल कैसे भरी जाती है।
यह टेबल इसलिए काम करती है क्योंकि हर लाइन में सभी ट्रैक किए गए वेरिएबल दोहराए जाते हैं, भले ही वे बदलते न हों। अगर i बढ़ता है लेकिन current_value वही रहती है, तो भी आप current_value को दोबारा लिखते हैं, क्योंकि मार्किंग स्कीम यह सबूत चाहती है कि आपने उसे बिना बदले रखा है, न कि आप उसे भूल गए हैं।
जब आप हर लाइन में वेरिएबल को एक जैसा बनाए रखने लगते हैं, तो ऐरे में गलतियाँ होने की संभावना होती है। मुख्य गलती यह होती है कि ‘रीड’ और ‘राइट’ को ऐसे किया जाता है जैसे वे एक ही समय पर हो रहे हों, जिससे लाइन में ऐसी वैल्यू दिखती है जो असल में बाद के किसी स्टेप के बाद ही आती है।
इंडेक्स वह जगह है जिसका इस्तेमाल ऐरे एलिमेंट को एक्सेस करने के लिए किया जाता है, जैसे A[0] या A[1], और आपको परीक्षा के नियमों का पालन करना होगा। अगर सवाल में 1-बेस्ड इंडेक्सिंग की बात कही गई है, तो A[1] पहला आइटम होगा, और आपकी ट्रेस टेबल में हर एक्सेस को उसी नियम का पालन करना होगा।
ऐरे स्नैपशॉट से पहले, इसका जवाब दें। अगर आप A = [4, 1, 3] में इंडेक्स 0 और 1 वाले एलिमेंट को आपस में बदलते हैं, तो अगली ऐरे स्नैपशॉट लाइन में क्या दिखना चाहिए?
जानें कि ऐरे रीड और राइट को अलग-अलग, सिंगल-लाइन स्टेट बदलाव के तौर पर कैसे रिकॉर्ड किया जाए।