توسعه پیش نمونه در برابر برنامه طرح ریزی شده چیست ؟
توسعه پیش نمونه در برابر برنامه طرح ریزی شده چیست ؟
توسعه پیش نمونه در برابر برنامه طرح ریزی شده چیست ؟
در این فصل، ما راهی را براي توسعۀ برنامه نشان دادیم که آن را توسعۀ پیشنمونه مینـامیم. در هر مورد، ما یک پیشنویس موقت (یا پیشنمونه) نوشتیم که محاسـبات اساسـی را انجـام مـیداد و سپس آن را بر روي تعدادي از موارد امتحان میکردیم و همینکـه نقصـی در برنامـه مـییـافتیم آن را تصحیح میکردیم. اگرچه این راه میتواند مؤثر باشد، اما ممکن است کد برنامه را طولانی و پیچیده سازد -چون بـ موارد ویژه و غیر قابل اعتماد زیادي سر و کار دارد- لذا براي آگاهی از همۀ خطاهایی که پیدا کـردهایـد بسیار مشکل خواهد شد. یک راه دیگر برنامهنویسی توسعۀ برنامۀ طرحریزي شده است که با داشتن یک بیـنش برتـر در مسئله میتواند برنامهنویسی را بسیار آسانتر سازد. در این مثال، نحوة نگرش اینطور است کـه یـک شیء Time عددي سه رقمی در مبنـاي 60 مـیباشـد! مؤلفـۀ second سـتون یکـان اسـت، مؤلفـۀ minute ستون 60تاییها و مؤلفۀ hour ستون 3600تاییها. وقتی که ما addTime و increment را نوشتیم، به طور کارآمدي جمـع کـردن در مبنـاي 60 را انجام دادیم که این، دلیل انتقال رقم نقلی از یک ستون به ستون دیگر است. این نحوة نگرش راه دیگري را براي کل مسئله پیشنهاد میکند -ما میتوانیم یک شـیء Time را به عددي واحد تبدیل کنیم و از این واقعیت که کامپیوتر میداند چگونه اعمال حسابی را انجام دهـد، نتیجه بگیریم. تابع زیر یک شیء Time را به عددي صحیح تبدیل میکند:
def convertToSeconds(t):
minutes = t.hours * 60 + t.minutes
seconds = minutes * 60 + t.seconds
return seconds
حال، تمام آنچه نیاز داریم راهی براي تبدیل یک عدد صحیح به یک شیء Time است:
def makeTime(seconds):
time = Time()
time.hours = seconds/3600
seconds = seconds – time.hours * 3600
time.minutes = seconds/60
seconds = seconds – time.minutes * 60
time.seconds = seconds
return time
ممکن است کمی فکر کنید تاخودتان را متقاعد سازید که این تکنیک تبـدیل از یـک مبنـا بـه مبناي دیگر، صحیح است. به فرض اینکه متقاعد شدهاید، حال میتوانیـد از ایـن تـابع بـراي بازنویسـی addTime استفاده کنید:
def addTime(t1, t2):
seconds = convertToSeconds(t1) + convertToSeconds(t2)
return makeTime(seconds)
این نسخه بسیار کوتاهتر از نسخۀ اصلی است. همچنین اثبات درستی آن بسیار سـادهتـر اسـت (طبق معمول، با فرض اینکه توابع فراخوانی شده درست باشند).
برای اموزش های ویدیویی زبان پایتون به بستر ویدیو های اموزشی بروید