منطق گزاره ای (مبانی برنامه نویسی)
تو این مقاله سعی داریم مبحث منطق گزاره ای رو بهتون معرفی کنیم، مبحثی که به مراتب در برنامه نویسی از اون استفاده میشه اما به جرات می تونم بگم تو هیچ اموزش برنامه نویسی ای وجود نداره، و اگر شما دانشجوی رشته ی مهندسی کامپیوتر یا فناوری اطلاعات یا علوم کامپیوتر باشین این مبحث رو به عنوان فصل اول درس “ریاضیات گسسته” یا “ساختمان های گسسته” یاد می گیرید. اما از اون جایی که از این مبحث تو برنامه نویسی استفاده ی زیادی میشه لازم دونستیم تا به عنوان یکی از گام های صفر تا قهرمان برنامه نویسی اون رو به شما یاد بدیم.
اما قبل از تعریف مبحث منطق گزاره ای باید خود گزاره رو تعریف کنیم.
گزاره: جمله ای خبری که یا درست است یا غلط و نه هر دو.
خب این تعریف خیلی ساده ست، تنها نکته شم همینه که نمی تونه هم زمان هم درست باشه هم غلط. برای مثال تمام جملات زیر گزاره هستن:
هوا خوبه.
من درس می خونم.
علی دوست محمد است.
و هیچ کدوم از جملات زیر گزاره نیستن:
سلام! (خبری نیست و درست یا غلط نمی تونه باشه)
حالتون چطوره؟ (خبری نیست)
تمام اعداد صحیح مثبت، یا اول هستند یا نیستند(عدد یک نه اوله و نه اول نیست، پس به ازای این عدد جمله هم غلطه هم درست، پس گزاره نیست)
تو منطق گزاره ای ما گزاره هارو با حروف کوچک انگلیسی نام گذاری می کنیم، برای مثال p,q,r,s می تونن اسم گزاره هامون باشن. بعد از تعریف گزاره ها به بحث ترکیب گزاره ها می رسیم. در منطق گزاره ای ما از طریق ۳ عملگر و گزاره هایی که داریم می تونیم گزاره های جدید تولید کنیم. این سه عملگر عملگرهای عطف(“و”)، فصل(“یا”) و نقیض، که هر کدوم رو به صورت جداگانه توضیح میدیم.
عملگر عطف: این عملگر که معادل کلمه ی “و” تو زبان فارسیه، دو گزاره رو دقیقا با همین کلمه به هم وصل می کنه، برای مثال دو گزاره ی زیر رو فرض کنید:
۱- هوا خوبه.
۲- بارون نمی باره.
اگر این دو گزاره رو با عملگر عطف (AND) به هم وصل کنیم، گزاره ی جدید به این صورت خواهد بود:
هوا خوبه و بارون نمی باره.
نکاتی که در مورد این عملگر وجود داره اینه که گزاره ای که با این عملگر ساخته میشه تنها در صورتی درسته که هر دو گزاره ی عملوند درست باشن و اگر حتی یکیشون غلط باشه، گزاره ی نهایی غلطه. و نکته ی بعدی اینه که در برنامه نویسی معمولا از علامت “&&” برای نشون دادن این عملگر استفاده میشه.
عملگر فصل: این عملگر که معادل کلمه ی “یا” تو زبان فارسیه، دو گزاره رو دقیقا با همین کلمه به هم وصل می کنه، برای مثال دو گزاره ی زیر رو فرض کنید:
۱- همه ی جزوه رو کامل می خونم.
۲- نمره ی کامل نمی گیرم.
اگر این دو گزاره رو با عملگر فصل (OR) به هم وصل کنیم، گزاره ی جدید به این صورت خواهد بود:
همه ی جزوه رو کامل می خونم یا نمره ی کامل نمی گیرم.
نکاتی که در مورد این عملگر وجود داره اینه که گزاره ای که با این عملگر ساخته میشه تنها در صورتی غلطه که هر دو گزاره ی عملوند غلط باشن و اگر حتی یکیشون درست باشه، گزاره ی نهایی درسته. و نکته ی بعدی اینه که در برنامه نویسی معمولا از علامت “||” برای نشون دادن این عملگر استفاده میشه.
عملگر نقیض: این عملگر یک عملگر تک عملوندیه، یعنی فقط روی یک گزاره اعمال میشه و همونطور که از اسمش پیداست یک گزاره رو نقیض می کنه. برای مثال اگر گزاره ی زیر رو نقیض کنیم:
هوا خوبه.
به گزاره ی زیر می رسیم:
هوا خوب نیست.
نکات مهم درباره ی این عملگر اینه که این عملگر درستی گزاره رو برعکس می کنه و این که تو برنامه نویسی معمولا از علامت “!” برای نشون دادن عملگر نقیض استفاده میشه.
حالا با یک مثال برنامه نویسی این مباحث رو مرور می کنیم. مثال پست قبلی رو به یاد بیارید. باید ۳ عدد از کاربر دریافت می کردیم که دو عدد اول طول دو ضلع مجاور متوازی الاضلاع و عدد سوم زاویه ی بینشون بود و قرار بود نوع این متوازی الاضلاع رو تشخیص بدیم. حالا که منطق گزاره ای رو یاد گرفتیم می تونیم به صورت خیلی ساده تر کد مثال رو به این صورت بنویسیم:
#include <iostream> using namespace std; int main(){ int x; int y; int z; cin >> x; cin >> y; cin >> z; if(x == y && z == 90) cout << "morabba" << endl; if(x == y && z != 90) cout << "lozi" << endl; if(x != y && z == 90) cout << "mostatil" << endl; if(x != y && z != 90) cout << "motevaziolazla" << endl; return 0; }
همون طور که می بینید، شرط های مورد نیاز رو با هم با علامت “&&” AND کردیم. و اگر برنامه رو اجرا کنیم به خروجی های زیر می رسیم که کاملا درستن.
منتظر مقاله های بعدی مبانی برنامه نویسی و الگوریتم ها باشید.
قهرمان دنیای خودت باش!
لینک پست بعدی مبانی برنامه نویسی
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.