شنبه, ۹ تیر, ۱۴۰۳ / 29 June, 2024
پارامترهای مهم در برنامه نویسی
● اجرای صحیح برنامه و خاتمهی درست آن (Run Time)
شاید شما هم در گزارشهای خبری شنیده باشید كه در نرمافزار سیستمعامل WIN ۹۵ چندهزار اشكال وجود داشته است! و شاید از شنیدن این خبر خیلی هم تعجب كرده باشید. با توضیحاتی كه در بخش قبلی داده شد مشخص است كه این اشكالات نمیتواند به خطاهای نگارشی(Syntay error) مربوط باشد(چرا؟) بیشتر این اشكالات ناشی از خطاهایی است كه در زمان اجرای برنامه بوجود میآیند. به همین دلیل این نوع خطاها را در اصطلاح، خطاهای زمان اجرای برنامه (Run Time Error) مینامند. همچنانكه از نام آن هم پیدا است این نوع خطاها در زمان اجرای برنامه بوجود آمده و باعث اختلال در روند صحیح اجرای برنامه میگردند.
سعی میكنم با ذكر یك مثال ساده موضوع را بیشتر شرح بدهم.
▪ فرض كنید بخواهیم برنامهای بنویسیم كه مقدار n! را محاسبه كند. در این صورت برنامهی زیر را ملاحظه كنید:
۱۰ Input n
۲۰ fact %=۱
۳۰ for i=۱ to n
fact%=fact%*i
next I
۴۰ print n; != ; fact %
۵۰ end
اگر این برنامه را به ازاء ۰=n ، ۳=n و یا ۶=n اجرا كنید، جواب درستی خواهید گرفت. ولی اگر برنامه را به ازای ۲۰=n اجرا كنید، برنامه دچار مشكل شده و پایانی ناموفق خواهد داشت و مفسر زبان Basic گزارش خطایی مانند Overflow را به شما خواهد داد. علت وجود این خطا این است كه در سطر ۲۰متغیر fact از نوع صحیح كوتاه معرفی شده است كه میتواند حداكثر مقدار ۳۲۷۶۷ را داشته باشد و چون ۴۰۳۲۰=!۸ ، بنابراین این برنامه میتواند حداكثر برای ۷=n درست اجرا شود. مثال فوق یك نمونهی كوچك از خطاهای زمان اجرای برنامههای كامپیوتری است كه امیدواریم شما را با خطاهایی كه در زمان اجرای برنامه بوجود میآیند آشنا كرده باشد.
خطاهای زمان اجرا را هرگز دستكم نگیرید. حتی برنامهنویسان بسیار باتجربه هم ممكن است با چنین مشكلاتی مواجه گردند. یكی از رایجترین خطاهای زمان اجرا خطاهای Overflow و Underflow میباشند كه همیشه باعث قطع اجرای برنامه گردیده و تقریباً تمام زبانهای برنامهنویسی به طور واضح گزارش خطایی به استفاده كننده میدهند.
نكتهای كه در اینجا ذكر آن مهم به نظر میرسد این است كه متأسفانه خطاهای مورد بحث هرگز توسط مفسر(یا كامپایلر) تشخیص داده نمیشوند و به همین دلیل جهت پرهیز از آنها باید در مرحلهی برنامهنویسی به تمام جزییات برنامه دقت كرد و پس از اتمام برنامه نیز آن را با توجه بیشتر آزمایش نمود. همین دقت نظرها و توجهات در دههی اخیر منجر به بوجود
آمدن روشهای نوین برنامهنویسی گردیده كه بتوان تا حد ممكن از بروز خطا ممانعت به عمل آورد. همچنین الگوهای خاصی برای آزمایش برنامهها تهیه شده است. ولی با این حال هیچیك از این روشها كامل و بینقص نبوده و همچنان دقت در برنامهنویسی یك ضرورت انكارناپذیر است. لذا سعی میكنیم در اینجا چند نكتهی مهم را مطرح كنیم كه با رعایت این نكات تا حد ممكن از انواع خطاها از جمله خطاهای زمان اجرا دوری كنید.
۱) در موقع برنامهنویسی تا جاییكه میتوانید دقیق باشید. گاهی رفع كردن یك خطا در برنامهی نوشته شده چندین برابر بیش از نوشتن كل برنامه، دقت و حوصله میطلبد.
۲) باتجربهترین برنامهنویسان نیز هرگز از مراجعه به كتب مرجع برنامهنویسی و راهنمای دستورالعملها كه به صورت Help در نرمافزارهای برنامهنویسی وجود دارند، بینیاز نیستند. پس اگر با نحوهٔ استفاده، محدودیتها و قابلیتهای یك دستورالعمل آشنایی كامل ندارید حتماً قبل از استفاده از آن به كتب مرجع مراجعه كنید.
۳) همیشه سعی كنید مجموعه عملیات مُنسجم و واحدی را كه لازم است در برنامه استفاده كنید، به صورت یك تابع بنویسید. در این صورت از دو مزیت بهره بردهاید: اول اینكه آزمایش و رفع خطای یك تابع كوچك به مراتب سادهتر از عیبیابی در كل برنامه است. دوم اینكه اگر در برنامههای دیگر بخواهید همان عملیات را انجام بدهید، به راحتی میتوانید از تابع حاضر و آماده استفاده كنید.
۴) قبل از استفاده از هر تابع حتماً آن را به دقت آزمایش كرده و از صحت عملكرد آن مطمئن شوید.
۵) در هر دستور جایگزینی حتماً طرفین تساوی را به دقت تعیین كنید و از تطابق متغیر و مقدار جایگزین مطمئن شوید. به خصوص اگر این دستور در داخل یك حلقه باشد كه هر بار مقدار جدیدی جایگزین میشود.
۶) برنامهنویسی دقت و حوصلهی زیاد میطلبد. اگر تمركز ندارید و یا كمحوصله هستید انتظار نداشته باشید كه برنامهای بدون خطا و جذاب بنویسید.
۷) مطمئن باشید هر چقدر تمرین برنامهنویسی بیشتری داشته باشید كمتر با خطاهای مختلف روبرو میشوید.
۸) نكته آخر اینكه دقت، مطالعه و صرف حوصله رمز موفقیت شما در برنامهنویسی خواهد بود.
انتخابات ریاست جمهوری 1403 انتخابات ریاست جمهوری انتخابات انتخابات ریاست جمهوری ۱۴۰۳ انتخابات 1403 ایران انتخابات ریاست جمهوری چهاردهم مسعود پزشکیان ستاد انتخابات کشور سعید جلیلی قالیباف علیرضا زاکانی
پلیس سخنگوی فراجا تهران هواشناسی زلزله سیل بارش باران قتل قوه قضاییه فضای مجازی سوادکوه
ترکیه قیمت خودرو بازار خودرو حقوق بازنشستگان قیمت دلار خودرو دولت سیزدهم قیمت طلا دلار بازنشستگان نهضت ملی مسکن قیمت سکه
رامبد جوان تلویزیون جوکر تئاتر سینمای ایران رسانه ملی دفاع مقدس
ماهواره
روسیه رژیم صهیونیستی دونالد ترامپ جو بایدن آمریکا ترامپ فلسطین غزه لبنان جنگ غزه چین اتحادیه اروپا
پرسپولیس فوتبال استقلال یورو 2024 باشگاه پرسپولیس رئال مادرید تیم ملی فوتبال ایران جواد نکونام لیگ برتر جام ملت های اروپا بازی باشگاه استقلال
هوش مصنوعی اینترنت فیبر نوری بوگاتی عیسی زارع پور فناوری همراه اول
فشار خون ویتامین سازمان غذا و دارو دیابت گرمازدگی سازمان بهداشت جهانی