نحوه عیب یابی خطاهای برنامه نویسی

با ما در ارتباط باشید : 09039549884

نحوه عیب یابی خطاهای برنامه نویسی

در ادامه آموزش های گروه متلب پروژه آموزش نحوه عیب یابی خطاهای برنامه نویسی در کنار شما عزیزان خواهیم بود این آموزش ها به صورت کامل از مقدماتی پیشرفته ادامه خواهد داشت.با متلب پروژه همراه باشید.

آموزش برنامه نویسی در متلب پروژه

بنظر می رسد خطاها جزء جداناپذیر برنامه ها هستند. بندرت می توان برنامه ای نوشت که در همان بار اول بدرستی و بدون هیچگونه خطایی اجرا شود. اما خطاها از لحاظ تاثیری که بر اجرای برنامه ها می گذارند، متفاوتند. گروهی ممکن است باعث شوند که از همان ابتدا برنامه اصلا کامپایل نشود و گروه دیگر ممکن است پس از گذشت مدتها و در اثر دادن یک ورودی خاص به برنامه، باعث یک خروجی نامناسب و یا یک رفتار دور از انتظار (مانند قفل شدن برنامه) شوند. بطور کلی خطاها به دو دسته تقسیم می شوند:
خطاهای نحوی (خطاهای زمان کامپایل): این خطاها در اثر رعایت نکردن قواعد دستورات زبان C و یا تایپ اشتباه یک دستور بوجود می آیند و در همان ابتدا توسط کامپایلر به برنامه نویس اعلام می گردد. برنامه نویس باید این خطا را رفع کرده و سپس برنامه را مجددا کامپایل نماید. لذا معمولا این قبیل خطاها خطر کمتری را در بردارند.
خطاهای منطقی (خطاهای زمان اجرا): این دسته خطاها در اثر اشتباه برنامه نویس در طراحی الگوریتم درست برای برنامه و یا گاهی در اثر درنظر نگرفتن بعضی شرایط خاص در برنامه ایجاد می شوند. متاسفانه این دسته خطاها در زمان کامپایل اعلام نمی شوند و در زمان اجرای برنامه خود را نشان می دهند. بنابراین، این خود برنامه نویس است که پس از نوشتن برنامه باید آن را تست کرده و خطاهای منطقی آن را پیدا کرده و رفع نماید. متاسفانه ممکن است یک برنامه نویس خطای منطقی برنامه خود را تشخیص ندهد و این خطا پس از مدتها و تحت یک شرایط خاص توسط کاربر برنامه کشف شود. بهمین دلیل این دسته از خطاها خطرناکتر هستند. خود این خطاها به دو دسته تقسیم می گردند:
a. خطاهای مهلک: در این دسته خطاها کامپیوتر بلافاصله اجرای برنامه را متوقف کرده و خطا را به کاربر گزارش می کند. مثال معروف این خطاها،
b. خطای تقسیم بر صفر می باشد.
c. خطاهای غیرمهلک: در این دسته خطا
d. اجرای برنامه ادامه می یابد ولی برنامه نتایج اشتباه تولید می نماید. بعنوان مثال ممکن است دراثر وجود یک خطای منطقی در یک برنامه حقوق و دستمزد
e. حقوق کارمندان اشتباه محاسبه شود و تا مدتها نیز کسی متوجه این خطا نشود!
با توجه به آنچه گفته شد، در می یابیم که رفع اشکال برنامه ها بخصوص خطاهای منطقی از مهمترین و مشکلترین وظایف یک برنامه نویس بوده و گاهی حتی سخت تر از خود برنامه نویسی است! بهمین دلیل است که بسیاری از شرکتها(همانند مایکروسافت) ابتدا نسخه اولیه نرم افزار خود را در اختیار کاربران قرار می دهند تا اشکالات آن گزارش شده و رفع گردد. بسیار مهم است که در ابتدا سعی کنید برنامه ای بنویسید که حداقل خطاها را داشته باشد، در گام دوم با آزمایش دقیق برنامه خود هرگونه خطای احتمالی را پیدا کنید و در گام سوم بتوانید دلیل بروز خطا را پیدا کرده و آنرا رفع نمایید. هر سه عمل فوق کار سختی بوده و نیاز به تجربه و مهارت دارد.
آخرین نکته اینکه در اصطلاح برنامه نویسی به هر گونه خطا، bug و به رفع خطا debug گفته می شود. درمورد برنامه فوق به نکات زیر توجه کنید :
خط اول یک توضیح درمورد برنامه است. در زبان C برای توضیحات یک خطی از علامت // استفاده می گردد. اما چنانچه توضیحات بیش از یک خط بود، آن را با علامت /* شروع کرده و با */ پایان دهید. کامپایلر از این توضیحات صرفنظر خواهد کرد. این توضیحات باعث می شوند که برنامه شما خواناتر شده و دیگران بهتر آن را درک کنند.
هر دستوری که با علامت # شروع شود، یک دستور C نیست، بلکه جزو دستورات پیش پردازنده محسوب می گردد. دستورات پیش پردازنده، دستوراتی هستند که توسط کامپایلر قبل از شروع به کامپایل انجام می شوند. بعنوان مثال دستور #include باعث می شود که تعاریف اولیه مربوط به توابعی (زیربرنامه هایی) که قصد استفاده از آنها را داریم به برنامه اضافه شود. در مثال بالا برای استفاده از توابع printf و scanf که در کتابخانه استاندارد C تعریف شده اند، فایل سرآمد stdio.h را که این توابع در آن تعریف شده اند را استفاده کرده ایم.
هر برنامه C باید دارای تابعی به نام main باشد که اجرای برنامه از آن شروع می شود و در حقیقت همان برنامه اصلی است. البته می توان هر تعداد دیگری تابع (زیربرنامه) نیز تعریف کرد، اما وجود تابع main الزامی است. دقت کنید که گرچه این تابع پارامتر ورودی ندارد، اما از پرانتز باز و بسته تنها استفاده شده است.
در زبان C هر بلوک برنامه با علامت { آغاز شده و با } پایان می یابد. این دو معادل دستورات begin و end در زبانهای دیگر ازجمله پاسکال می باشند که برای سادگی زبان انتخاب شده اند.
دو خط بعدی به تعریف متغیرهای radius و area می پردازد. در زبان C قبل از استفاده از هر متغیری باید آن را اعلان نمایید. اعلان متغیر شامل نام و نوع متغیر است. در مثال فوق، متغیر radius از نوع عدد صحیح(integer) و متغیر area از نوع عدد اعشاری (float) تعریف شده اند.
توابع printf و scanf جزو کتابخانه استاندارد C محسوب می گردند و به ترتیب برای چاپ اطلاعات در خروجی استاندارد (نمایشگر) و دریافت اطلاعات از ورودی استاندارد (صفحه کلید) استفاده می شوند. برای چاپ رشته مورد نظر باید آنها را در داخل علامت ” قرار داد. درمورد این توابع بعداد توضیح خواهیم داد.
دقت کنید که در پایان هر دستورالعمل از علامت ; استفاده شده است. در مجموع C یک زبان قالب آزاد است و شما می توانید دستورات را به هر نحوی که دوست دارید قرار دهید (مثلا چند دستور در یک خط از برنامه). تنها چیزی که نشاندهنده پایان یک دستور است،- علامت ; است و نه انتهای خط. از آنجا که C یک زبان قالب آزاد است،- می توان با استفاده از مکان نوشتن دستورات شکل بهتری به برنامه داد. بعنوان مثال دقت کنید که پس از شروع تابع main،- دستورات حدود 3 کاراکتر جلوتر نوشته شده اند. به این نحوه نوشتن دستورات دندانه گذاری می گویند. بطور کلی هربار که بلوک جدیدی آغاز می شود،- باید آن را کمی جلوتر برد. این مسئله باعث جدا شدن بلوکها از یکدیگر و خوانایی بهتر برنامه می شود.
در پایان برنامه و در داخل مستطیل خاکستری،- یک نمونه از اجرای برنامه که شامل یک ورودی و خروجی نمونه است،- آورده شده است.

 

در اینجا آموزش نحوه عیب یابی خطاهای برنامه نویسی به اتمام رسیده است و در آموزش های بعدی به مباحث دیگر آموزش برنامه نویسی می پردازیم. همچنین از شما مخاطبین و کاربران عزیز سایت متلب پروژه دعوت می کنم که برای آموزش های بیشتر پروژه سی پلاس پلاس سایر آموزش ما را دنبال کنید.

در صورتی که نیاز به سفارش انجام پروژه دارید با کلیک بر روی دکمه زیر سفارش خود را از طریق واتس آپ ثبت نمایید.

راستی! برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام متلب پروژه عضو شوید

در ثبت سفارش خود مشکل دارید؟ 

سفارش خود را از طریق تلگرام و واتس اپ برای ما بفرستید

برای ثبت سفارش در تلگرام کلیک کنید

پروژه آماده لازم دارید ؟ 

به فروشگاه متلب پروژه سر بزنید

فروشگاه متلب پروژه