ผมคิดว่าสิ่งที่คุณกำลังมองหาที่นี่เป็นแผนภาพลำดับ สิ่งเหล่านี้ช่วยให้คุณเห็นภาพการเรียงลำดับของโมดูลต่าง ๆ ที่เรียกแต่ละคนผ่านการใช้ลูกศร
การสร้างแบบง่าย ๆ :
- วาดคลาสเริ่มต้นของคุณด้วยเส้นประด้านล่าง
- วาดคลาส / เมธอดถัดไปในการติดตามการโทรด้วยเส้นประด้านล่าง
- เชื่อมต่อเส้นด้วยลูกศรโดยวางในแนวตั้งด้านล่างลูกศรสุดท้ายที่คุณวาด
- ทำซ้ำขั้นตอนที่ 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
ด้วยกล่องอื่นเพื่อแสดงขอบเขตสำหรับการเรียกใช้ฟังก์ชัน สังเกตว่ากล่องจะสิ้นสุดลงอย่างไรเมื่อส่งคืนตัวคูณ นี่คือจุดสิ้นสุดของขอบเขตฟังก์ชั่น!
ทำซ้ำสองสามครั้งเพื่อให้ได้ตัวเลขที่มากขึ้นและแผนภูมิของคุณควรมีลักษณะดังนี้:
หมายเหตุ
คุณสามารถเลือกว่าคุณต้องการติดป้ายกำกับการโทรด้วยชื่อตัวแปรที่ส่งผ่านหรือค่าของพวกเขาหากคุณต้องการจัดทำเอกสารเฉพาะกรณีใดกรณีหนึ่งเท่านั้น คุณยังสามารถแสดงการเรียกซ้ำด้วยฟังก์ชันที่เรียกตัวเอง
นอกจากนี้คุณสามารถแสดงผู้ใช้ที่นี่และแจ้งให้พวกเขาและแสดงข้อมูลของพวกเขาเข้าสู่ระบบได้อย่างง่ายดายเพียงพอ มันเป็นระบบที่ค่อนข้างยืดหยุ่นซึ่งฉันคิดว่าคุณจะพบว่าค่อนข้างมีประโยชน์!