عملگرهای منطقی در C#, C++, C


عشق؟! & دهکده دانلود

عشق و دوستی... & دانلودpdf-music-clip-narmafzar

این عملگرها در ترکیب کردن شرط ها و ایجاد شرط های مرکب نقش دارند و همانند عملگرهای معادل خود در منطق ریاضی عمل می نمایند.



عملگر && (عطف)

زمانی که از این عملگر استفاده می کنیم حتما باید هر دو (یا چند) شرط موجود درست باشد تا در مجموع جواب شرط ترکیبی، درست باشد.



عملگر || (فصل)

زمانیکه از این عملگر استفاده نماییم در صورتیکه یکی از شرط ها به جواب درست بیانجامد جواب شرط ترکیبی نیز درست خواهد بود.



عملگر ! (نقیض)

از این عملگر برای معکوس کردن جواب شرط ها استفاده می شود.



کاربرد:

از عملگرهای بالا همانطور که گفته شد برای ترکیب کردن شرط ها استفاده می گردد. که در بسیاری از موارد (مخصوصا کاربردهای ریاضی و امنیتی) فقط با استفاده از این عملگرها می توانیم کدهای بهینه تولید کنیم. مثال:

اگر بخواهیم معادل ریاضی 10 < a < 20 (معنای آن این است که متغیر a هم بزرگتر از 10 است و هم کوچکتر از 20 ) را پیاده سازی نماییم با استفاده از عملگر عطف و به شکل زیر آنرا می نویسیم.

(a > 10) && (a < 20)



توضیح: در شرط ترکیبی بالا می بینید برای ترکیب کردن دو شرطی که هر کدام در یک پرانتز نوشته شده اند از عملگر عطف (&&) استفاده نموده ایم.



جدول درستی:

برای هر کدام از عملگرهای بالا در منطق ریاضی یک جدول درستی در نظر می گیرند. جدول درستی را معمولا برای دو عبارت در نظر می گیرند و بقیه ی عبارت ها را از روی آن استدلال می کنند. که ما هم برای درک بیشتر آنرا در ادامه ذکر می کنیم.



جدول درستی عملگر عطف(&&)

B A A && B
T T T
T F F
F T F
F F F

جدول درستی عملگر فصل(||)

T B A || B
T T T
T F T
F T T
F F F

جدول درستی عملگرنقیض (!)

A A
F T
T F

به دلیل اینکه عملگر فوق بر روی یک عبارت عمل می نماید و به اصطلاح تک عملوندی می باشد جدول درستی آن نیز حاوی دو ردیف می باشد.
*در جداول بالا هر کدام از حروف T به معنای درست (True) و هر کدام از حروف F به معنای نادرست (False) استفاده گردیده است.

**هر کدام از حروف A و B نیز به جای یک عبارت استفاده گردیده است.



توضیح: همانطور که می دانید، هر عبارت یا درست است و یا نادرست پس برای هر عبارت دو انتخاب وجود دارد برای همین هم در ترکیب دو عبارت چهار حالت مختلف به وجود می آید. به همین خاطر دو جدول اول چهار ردیف و جدول آخر دو ردیف دارند.



نکته: در عبارت های عطفی (&&) تنها زمانیکه هر دو عبارت درست باشند جواب درست خواهد بود و در غیر اینصورت جواب نادرست می باشد.

در عبارت های فصلی (||) عکس عبارت های عطفی تنها زمانیکه هر دو عبارت نادرست باشند جواب نادرست است و در غیر اینصورت جواب درست می باشد.



بیشتر بدانیم: در کامپایلرهای نوین بهینه سازی (Optimization) کد انجام می گیرد که در زمان شرط های ترکیبی بسیار اتفاق می افتد که برنامه نویس بدون در نظر گرفتن این نکته کدهایی می نویسد غافل از اینکه در برخی موارد کدهای رفتار درستی از لحاظ برنامه نویس نشان نمی دهند.

بهینه سازی در زمان شرط های ترکیبی به شکل زیر انجام می پذیرد.

اگر n شرط را با هم به صورت عطفی (با عملگر&&) تر کیب کرده باشیم آنگاه زمانیکه شرط اول نادرست باشد بقیه ی شرط ها حتی بررسی هم نمی شوند. ( این به خاطر جدول درستی است که هر گاه هر کدام از عبارت ها نادرست باشد جواب نهایی صرف نظر از مقدار عبارت بعدی حتما نادرست خواهد بود.) و اگر اولین عبارت نادرست نباشد عبارت بعدی بررسی می گردد تا زمانیکه به اولین عبارت نادرست برسد.

اگر n شرط را با هم به صورت فصلی (با عملگر ||) ترکیب کرده باشیم آنگاه زمانیکه شرط اول درست باشد بقیه ی شرط ها حتی بررسی هم نمی شوند. ( این به خاطر جدول درستی است که هر گاه هر کدام از عبارت ها درست باشد جواب نهایی صرف نظر از مقدار عبارت بعدی حتما درست خواهد بود.) و اگر اولین عبارت درست نباشد عبارت بعدی بررسی می گردد تا زمانیکه به اولین عبارت درست برسد.
 



نظرات شما عزیزان:

نام :
آدرس ایمیل:
وب سایت/بلاگ :
متن پیام:
:) :( ;) :D
;)) :X :? :P
:* =(( :O };-
:B /:) =DD :S
-) :-(( :-| :-))
نظر خصوصی

 کد را وارد نمایید:

 

 

 

عکس شما

آپلود عکس دلخواه:





نوشته شده در پنج شنبه 13 مهر 1391برچسب:,ساعت 13:17 توسط abbaskazemi naini.k| |


Power By: LoxBlog.Com