मुझे लगता है कि आप यहां जो देख रहे हैं वह एक अनुक्रम आरेख है । ये आपको उस क्रम की कल्पना करने की अनुमति देते हैं जिसमें विभिन्न मॉड्यूल तीरों के उपयोग के माध्यम से प्रत्येक को कॉल करते हैं।
एक निर्माण आसान है:
- इसके नीचे एक बिंदीदार रेखा के साथ अपना शुरुआती वर्ग बनाएं।
- कॉल ट्रेस में अगली कक्षा / विधि को नीचे की बिंदीदार रेखा के साथ ड्रा करें
- आपके द्वारा खींचे गए अंतिम तीर के नीचे लंबवत रूप से एक तीर के साथ लाइनें कनेक्ट करें
- अपने ट्रेस में सभी कॉल के लिए चरण 2-3 को दोहराएं
उदाहरण
मान लेते हैं कि हमारे पास निम्नलिखित कोड हैं जिनके लिए हम एक अनुक्रम आरेख बनाना चाहते हैं:
def long_division(quotient, divisor):
solution = ""
remainder = quotient
working = ""
while len(remainder) > 0:
working += remainder[0]
remainder = remainder[1:]
multiplier = find_largest_fit(working, divisor)
solution += multiplier
working = calculate_remainder(working, multiplier, divisor)
print solution
def calculate_remainder(working, multiplier, divisor):
cur_len = len(working)
int_rem = int(working) - (int(multiplier) * int (divisor))
return "%*d" % (cur_len, int_rem)
def find_largest_fit(quotient, divisor):
if int(divisor) == 0:
return "0"
i = 0
while i <= 10:
if (int(divisor) * i) > int(quotient):
return str(i - 1)
else:
i += 1
if __name__ == "__main__":
long_division("645", "5")
पहली चीज जो हम आकर्षित करेंगे mainवह है विधि से जुड़ने वाला प्रवेश बिंदु ( ) long_division। ध्यान दें कि यह long_division में एक बॉक्स बनाता है, जो विधि कॉल के दायरे को दर्शाता है। इस सरल उदाहरण के लिए, बॉक्स इस तथ्य के कारण हमारे अनुक्रम आरेख की पूरी ऊंचाई होगी कि यह केवल एक चीज है।

अब हम find_largest_fitसबसे बड़ी बहु को खोजने के लिए कॉल करते हैं जो हमारे काम करने की संख्या के भीतर फिट होती है, और इसे हमें लौटा देती है। हम से एक रेखा खींच long_divisionकरने के लिए find_largest_fitसमारोह कॉल के लिए गुंजाइश सूचित करने के लिए एक और बॉक्स के साथ। ध्यान दें कि गुणक वापस आने पर बॉक्स कैसे समाप्त होता है; यह उस कार्य क्षेत्र का अंत है!

बड़ी संख्या के लिए कुछ बार दोहराएं और आपके चार्ट को कुछ इस तरह दिखना चाहिए:

टिप्पणियाँ
आप चुन सकते हैं कि क्या आप कॉल किए गए चर नामों के साथ कॉल लेबल करना चाहते हैं, या उनके मान यदि आप केवल एक विशिष्ट मामले को दस्तावेज करना चाहते हैं। आप स्वयं को कॉल करने वाले फ़ंक्शन के साथ भी पुनरावृत्ति दिखा सकते हैं।
इसके अतिरिक्त, आप उपयोगकर्ताओं को यहां दिखा सकते हैं और उन्हें संकेत दे सकते हैं और सिस्टम में उनके इनपुट को आसानी से दिखा सकते हैं। यह एक काफी लचीला प्रणाली है जो मुझे लगता है कि आप उपयोगी पाएंगे!