تبلیغات
banner
banner
banner
تبلیغات
banner

فیلم های آموزشی : 36 +

تعداد کاربران : 36 +

تعداد کل مطالب : 338 +

تعداد نظرات : 29 +

حضرت محمد (ص) : طلب دانش بر هر مسلمانى واجب است. خداوند جويندگان دانش را دوست دارد.

آموزش مقدماتی تا پیشرفته سی شارپ بخش صد و پنجاهم


به نام خدایی که بر ذات وی محال است هرگز برد عقل پی

آموزش مقدماتی تا پیشرفته سی شارپ بخش صد و پنجاهم

سلام به همه کاربران وبسایت لندلرن

قسمت صد و  پنجاهم


خطاهاي منطقي :

خطاهاي منطقي يا خطاهاي مفهومي، خطاهايي هستند كه باعث مي شوند برنامه نتايج نا مطلوبي را توليد كند .

احتمالاً بيـشترين نوع خطاهاي منطقي كه در يك برنامه به وجود مي آيند، حلقه هاي بي نهايت هستند.

براي مثال كد زير را در نظر بگيريد:

اگر در كد داخل اين حلقه مقدار intIndex به نحوي تغيير نكند كه به عددي بزرگتر از ۱۰ برسد، برنامه در يك حلقه بينهايت قرار مي گيرد .

اين يك مثال ساده از خطاهاي منطقي در برنامه بود، اما حتي برنامه نويسان با تجربه نيز ممكن است در هنگام نوشتن كد دچار چنين خطاهايي در برنامه خود شوند .

پيدا كردن خطاهاي منطقي و رفع آنها در يك برنامه معمولاً از ديگر خطاها مشكل تر است، زيرا براي تـشخيص آنهـا بايـد عملكـرد تمام قسمتهاي برنامه را در مقابل مقادير مختلف ورودي بررسي كرده و مشاهده كرد كه آيا نتيجه مطلوب توسـط برنامـه توليـد مـي شود يا نه؟

خطاي منطقي ديگري كه ممكن است در برنامه ايجاد شود، خطا در مقايسه ها است .

براي مثال فرض كنيد مي خواهيد مقـدار يـك متغير را با ورودي كاربر مقايسه كرده و در صورت برابر بودن اين دو مقدار، عمل خاصـي را در برنامـه انجـام دهيـد .

در ايـن شـرايط معمولاً نمي خواهيد كه مقايسه نسبت به بزرگي و كوچكي حروف حساس باشد. فرض كنيد براي اين مقايسه از كد زير استفاده كنيد :

در اين شرايط براي مثال اگر مقدار متغيير strFileName برابر با Index.Html و مقدار موجـود در TextBox برابر با Index.Html باشد، نتيجه مقايسه نادرست خواهد بود و كد داخل دستور if اجـرا نخواهـد شـد .

يكـي از روشـهاي جلوگيري از اين خطاها در اين است كه ابتدا، هر دو مقداري كه مي خواهيد با هم مقايسه كنيد را به حروف بزرگ و يا حروف كوچك تبديل كنيد (براي اين كار مي توانيد از توابع ToUpper و يا ToLower در كـلاس String اسـتفاده كنيـد ).

بـه ايـن ترتيب اگر متني كه كاربر در TextBox وارد كرده است با متن موجود در متغيير strFileName برابـر باشـد و فقـط از نظر بزرگي و يا كوچكي كاراكتر ها با هم تفاوت داشته باشند حاصل مقايسه درست خواهد بود .

نكته: به علت اينكه خطاهاي منطقي در يك برنامه سخت ترين نوع خطاها از نظر تشخيص و رفع هستند و همچنين ممكـن اسـت باعث توقف اجراي برنامه و يا توليد نتيجه نامطلوب توسط آن شوند بايد هنگام نوشتن كد از درست بودن منطق آن اطمينان حاصـل كنيد و مطمئن شويد كه روشي كه براي اجراي اين قسمت از برنامه به كار مي بريد درست است.

همچنين بايد تمـام خطاهـايي كـه ممكن است به وسيله كاربر در برنامه ايجاد شود را نيز بررسي كرده و كنترل كنيد .

هر چه كه بيشتر در برنامه نويـسي تجربـه كـسب كنيد، بيشتر با خطاهاي عمومي و خطاهايي كه ممكن است توسط كاربر ايجاد شوند آشنا خواهيد شد.

یكي از بهترين ر اه ها براي مشخص كردن و از بين بردن خطاهاي منطقي در يك برنامه استفاده از امكانـات اشـكال زدايـي برنامـه است كه در ويژوال استوديو قرار دارد.

با استفاده از اين امكانات و ويژگيها مي توانيد به راحتي حلقه هاي بي نهايت را تشخيص داده و يا به تصحيح مقايسه هاي نادرست در برنامه بپردازيد.

اشكال زدايي :

اشكال زدايي از يك برنامه، همواره بخشي جدا نشدني از مراحل نوشتن يك نرم افزار است، زيرا حتي برنامه نويـسان بـا تجربـه نيـز ممكن است در برنامه هاي خود خطا هايي داشته باشند .

دانستن اين كه چگونه مي توان به راحتي اشكالات يك برنامـه را مـشخص كرده و آنها را رفع كرد باعث مي شود كه بتوانيد به سرعت و با حداقل خطا برنامه هاي مورد نظرتان را پياده سازي كنيد .

در بخش بعد يك برنامه ي نمونه ايجاد خواهيم كرد و به اشكال زدايي آن خواهيم پرداخت .

در طول كار بـر روي ايـن برنامـه سـعي خواهيم كرد كه با breakpoint ها، چگونگي اجراي خط به خط كد، بررسي موقعيت برنامه بعد از اجـراي هـر خـط و … آشـنا شويم .

ايجاد يك برنامه نمونه :

در تمرين هاي مختلف بخش “امتحان كنيد ” ادامه  اين دوره ، برنامه ي ساده اي خواهيم نوشت و سعي خواهيم كرد در طي اين برنامـه، نگاهي به ويژگيهاي عمومي و پر كاربرد ويژوال استوديو براي اشكال زدايي برنامه ها داشته باشيم .

در اين برنامـه آدرس يـك فايل متني را به وسيله يك كنترل TextBox از كاربر دريافت مي كنيم و محتويـات آن را نمـايش مـي دهـيم و يـا آدرسـي را دريافت كرده و محتويات داخل TextBox را در فايلي در آن آدرس ذخيره مي كنيم. البته همانطور كـه مـي دانيـد و در فـصول قبلـــي نيـــز مـــشاهده كرديـــد بهتـــرين راه بـــراي ايـــن كـــار اســـتفاده از كنتـــرل هـــاي OpenFileDialog و SaveFileDialog است، اما در اين قسمت براي اينكه بتوانيم بهتر روي خطا يابي در برنامه تمركـز كنـيم، آدرس را بـه صورت مستقيم از كاربر دريافت مي كنيم .

قسمت صد و پنجاه و یکم را دنبال کنید.


درباره نویسنده
سجاد اسدی
   سجاد اسدی

سجاد اسدی هستم دانشجوی رشته نرم افزار و علاقه مند به تدریس و یادگیری دروس مرتبط با تکنولوژی نرم افزار و اینترنت اشیاء جهت ارتباط با بنده مراجعه شود به آیدی سروش و تلگرام : @ordervira و پیج بنده در اینستاگرام instagram.com/sajjadred11 ""اللهم صل علی محمد و آل محمد"" برای شروع هیچ وقت دیر نیست. "الهم عجل لولیک الفرج"

دیدگاه بگذارید

avatar
  اشتراک  
اطلاع رسانی

aparat کانال آپارات

soroush کانال سروش

کانال آی گپ