عملگر در برنامه نویسی چیست؟ — تعریف، انواع و اولویت به زبان ساده
در یادگیری برنامه نویسی، برخی از اصطلاحات و مفاهیم به ظاهر ساده وجود دارند که کمتر به آنها توجه میشود، با این حال اگر این مفاهیم درک نشوند ممکن است در کدنویسی برنامه مشکل پیش بیاید و نتیجه دلخواه برنامه نویس به دست نیاید. «عملگر» (Operator) در برنامه نویسی یکی از مفاهیم پایه و مهم در یادگیری برنامه نویسی به حساب میآید. بنابراین، اینجا به این سوال مهم پاسخ داده شده است که عملگر در برنامه نویسی چیست و همچنین سایر مفاهیم و بحثهای پیرامون مفهوم عملگر در برنامه نویسی نیز شرح داده شدهاند.
در این نوشتار به طور جامع به این سوال پاسخ داده میشود که عملگر در برنامه نویسی چیست و همچنین سعی شده است تا به انواع، مباحث و نکات پیرامون مفهوم عملگر پرداخته شود. در نهایت روش استفاده از عملگر در زبانهای برنامه نویسی C، پایتون و جاوا مورد بررسی قرار گرفته است.
عملگر در برنامه نویسی چیست ؟
در ریاضیات و همچنین در برنامه نویسی کامپیوتری، عملگر نوعی کاراکتر به حساب میآید که نشان دهنده یک عمل است. برای مثال $$times$$ نوعی عملگر محسوب میشود که نشان دهنده ضرب بین دو آرگومان است. در برنامه نویسی کامپیوتری یکی از محبوبترین مجموعههای عملگرها، مجموعه عملگرهای «بولی» (Boolean) به حساب میآید که همراه با مقدارهای «درست و غلط» (True and False) مورد استفاده قرار میگیرند. برخی از عملگرهای بولی در ادامه فهرست شدهاند:
- «و» (AND)
- «یا» (OR)
- «NOT» یا «AND NOT»
- «NEAR»
به طور خلاصه، میتوان گفت عملگرها، علامتهای ریاضی هستند که متغیرها (Variable) و آرگومانهای برنامه نویسی به وسیله آنها با یکدیگر ارتباط برقرار میکنند. این عملگرها و همچنین عملگرهای متفاوتی مانند «XOR» در «گیتهای منطقی» (Logic Gate) استفاده میشوند. از انواع دیگر عملگرهای مورد استفاده در برنامه نویسی کامپیوتر، میتوان به «عملگرهای انتسابی» (Assignment Operator) که یک مقدار مشخص را به مقدار دیگری اختصاص میدهند و «عملگرهای رابطهای» (Relational Operator) که دو مقدار را با یکدیگر مقایسه میکنند، به عنوان نمونههایی از انواع عمگرها در برنامه نویسی اشاره کرد.
یک عملگر، در برنامه نویسی کامپیوتری، نمادی است که عمل یا پردازشی را نشان میدهد. این سمبلها میتوانند به صورت منطقی یا ریاضی باشند. عملگرها میتوانند مقدار یا «عملوند» (Operand) خاصی را ویرایش و دستکاری کنند. عملوند به مقدار یا آرگومانی گفته میشود که عملگرها روی آنها عملیات انجام میدهند. عملگرها ستون فقرات هر برنامهای هستند و برای همه چیز، از تابعهای ساده مانند تابع شمارش عددها گرفته تا الگوریتمهای پیچیده مانند «رمزگذاری امنیتی» (Security Encryption) استفاده میشوند.
چند اصطلاح دیگر نیز مرتبط با کلمه عملگر وجود دارند، برای مثال «عملگر یا اپراتور سیستم» (System Operator) که به صورت خلاصه «sysop» نوشته شده است، به شخصی گفته میشود که سرور را پیادهسازی میکند. همچنین، «عملگر یا اپراتور کامپیوتر» (Computer Operator) به طور سنتی به شخصی گفته میشود که سیستمهای کامپیوتری را در اتاق کامپیوتر مدیریت میکند. در بخش بعدی از مقاله «عملگر در برنامه نویسی چیست» به بررسی انواع عملگرها در برنامه نویسی کامپیوتر پرداخته شده است.
انواع عملگرها در برنامه نویسی کامپیوتر
در این بخش به بررسی انواع عملگرهایی که در برنامه نویسی کامپیوتر وجود دارند، فارغ از زبان برنامه نویسی آنها پرداخته شده است. ابتدا دستهبندی کلی از انواع عملگرها در ادامه ارائه شده میشود:
- «عملگرهای حسابی» (Arithmetic Operator)
- «عملگرهای رابطهای» (Relational Operator)
- «عملگرهای بیتی» (Bitwise Operator)
- «عملگرهای منطقی» (Logical Operator)
- «عملگرهای انتسابی» (Assignment Operator)
- «عملگرهای افزایشی و کاهشی» (Increment and Decrement Operator)
- عملگرهای متفرقه دیگر
در ادامه این بخش از مقاله «عملگر در برنامه نویسی چیست»، انواع عملگرهای فوق به صورت جداگانه بررسی میشوند. ابتدا در بخش بعدی به تفسیر و شرح عملگرهای حسابی پرداخته شده است.
عملگر حسابی در برنامه نویسی چیست؟
عملگرهای حسابی در برنامه نویسی مورد استفاده قرار میگیرند و دقیقاً همان عملگرهایی هستند که در ریاضیات استفاده میشوند. میتوان گفت این نوع از عملگرها سادهترین نوع عملگر در برنامه نویسی و ریاضیات به حساب میآیند. در جدول زیر این عملگرها همراه با نماد، عملکرد، روش استفاده و توضیح آنها ارائه شدهاند.
نماد | عملکرد | روش استفاده | توضیح |
+ | جمع یا بعلاوه | x + y | این عملگر، مقدارهای دو طرف عملگر را با یکدیگر جمع میکند. |
– | تفریق یا منها | x – y | این عملگر، عملوند سمت راست را از عملوند سمت چپ کم میکند. |
* | ضرب | x * y | عملوندهای دو طرف این عملگر در یکدیگر ضرب میشوند. |
/ | تقسیم | x / y | عملوند سمت چپ این عملگر بر عملوند سمت راست آن تقسیم میشود. |
٪ | باقیمانده تقسیم | x % y | این عملگر، عملوند سمت چپ را بر عملوند سمت راست تقسیم میکند و باقیمانده این تقسیم را برمیگرداند. |
در بخش بعدی از مقاله «عملگر در برنامه نویسی چیست» به بررسی عملگرهای رابطهای پرداخته شده است.
عملگر رابطه ای در برنامه نویسی چیست؟
عملگرهای رابطهای معمولاً برای مقایسه عملوندها مورد استفاده قرار میگیرند. این عملگرها بر اساس مقایسهای که بین عملوندها انجام میدهند، مقدارهای True یا False را برمیگردانند. همچنین، باید به نکاتی درباره این عملگرها توجه داشت؛ برای مثال عملگر «=» نباید با عملگر «==» اشتباه گرفته شود و این دو عملگر با یکدیگر تفاوت دارند. انواع عملگرهای رابطهای در جدول زیر توضیح داده شدهاند.
نماد | عملکرد | روش استفاده | توضیح |
== | مساوی یا برابری | x == y | این عملگر، مساوی بودن یا نبودن دو عملوند را بررسی میکند و در صورت برابری، شرط True را برمیگرداند. |
=! | نامساوی یا نابرابری | x != y | این عمگر، مساوی نبودن دو عملوند را بررسی میکند و در صورت مساوی نبودن آنها، شرط True را برمیگرداند. |
بزرگتر از | x > y | این عملگر بزرگتر بودن عملوند سمت چپ را از سمت راستی بررسی میکند و اگر بزرگتر باشد، شرط True را برمیگرداند. | |
> | کوچکتر از | x | این عملگر کوچکتر بودن عملوند سمت چپ را از عملوند سمت راست بررسی میکند و در صورت صحت این موضوع، True را برمیگرداند. |
= | بزرگتر مساوی | x >= y | این عملگر، بزرگتر یا مساوی بودن عملوند سمت چپ را از سمت راستی بررسی میکند و اگر این عملوند، بزرگتر یا مساوی باشد، شرط True را برمیگرداند. |
=> | کوچکتر مساوی | x | این عملگر کوچکتر یا مساوی بودن عملوند سمت چپ را از عملوند سمت راست بررسی میکند و در صورت کوچکتر یا مساوی بودن این عملوند، True را برمیگرداند. |
بخش بعدی از مبحث انواع عملگرها در برنامه نویسی به بررسی عملگرهای بیتی اختصاص داده میشود.
عملگر بیتی در برنامه نویسی چیست؟
عملگرهای بیتی از عملگرهای بسیار کاربردی برنامه نویسی به حساب میآیند. این عملگرها، اعداد صحیح داده شده به آنها را به اعداد باینری تبدیل میکنند و سپس عملیات مورد نیاز را انجام میدهند و نتیجه نهایی را به صورت «اعداد دهدهی» (Decimal) برمیگردانند. در جدول زیر این عملگرهای بیتی همراه با نماد، عملکرد، روش استفاده و توضیحشان ارائه شدهاند.
نماد | عملکرد | روش استفاده | توضیح |
& | AND (و) بیتی | x & y | در عملگر AND، بیتهایی به عنوان نتیجه نمایش داده میشود که در هر دو عملوند وجود داشته باشد. |
| | OR (یا) بیتی | x | y | در عملگر OR، بیتهایی به عنوان نتیجه نشان داده میشوند که حداقل در یکی از عملوندها موجود باشند. |
^ | XOR بیتی | x ^ y | عملگر XOR، بیتهایی را برمیگرداند که فقط در یک عملوند موجود هستند و در هر دو عملوند به صورت مشترک وجود نداشته باشند. |
~ | NOT بیتی | x~ | عملگر NOT، یک عملگر «یگانی» (Unary) به حساب میآید که بیتهای ۰ را به ۱ و بیتهای ۱ را به ۰ تبدیل میکند. |
شیفت به چپ | x | با استفاده از این عملگر، مقدار عملوند سمت چپ به اندازه بیتهای مشخص شده در عملوند سمت راست، به سمت چپ منتقل یا شیفت داده میشود. این عملکرد معادل ضرب x در $$2^y$$ است. | |
>> | شیفت به راست | x >> y | به وسیله این عملگر، مقدار عملوند سمت چپ به اندازه بیتهای مشخص شده در عملوند سمت راست، به سمت راست منتقل یا شیفت داده میشود. این عملکرد معادل تقسیم x بر $$2^y$$ است. |
عملگر یکانی یا یگانی به عملگرهایی گفته میشود که فقط دارای یک عملوند هستند. در ادامه این بخش از شرح عملگرهای بیتی، مثالهایی برای درک بهتر این نوع از عملگرهای برنامه نویسی کاربردی ارائه شده است.
مثال استفاده از عملگرهای بیتی در برنامه نویسی
در این مثال مقدارهای x و y به صورت زیر فرض میشوند:
x = 42، y = 27، x = 00101010، y = 00011011
حال مثالهای زیر همراه با پاسخ و با استفاده از این دو مقدار ارائه شدهاند. پاسخ نهایی آنها به صورت عدد دهدهی در مقابلشان نوشته شده است.
x & y = 0000 1010 = 10
x | y = 0011 1011 = 59
x ^ y = 0011 0001 = 49
~x = 1101 0101
x = 168
x = 1101 0101
x = 168
x = 1101 0101
x = 168
x = 1101 0101
x = 168
x = 1101 0101
x = 168
در خط بالا باید به این نکته توجه شود که بیتها به اندازه دو واحد به سمت چپ منتقل شدهاند و بیتهای جدید با عدد صفر جایگزین میشوند.
x >> 2 = = 1010 0000 = 10
10
10
10
10
در این مثال نیز بیتها به اندازه ۲ واحد به سمت راست منتقل و بیتهای جدید با عدد ۰ جایگزین شدهاند. در بخش بعدی از مقاله «عملگر در برنامه نویسی چیست» به بررسی عملگرهای منطقی پرداخته شده است.
عملگر منطقی در برنامه نویسی چیست؟
عملگرهای منطقی به عنوان ورودی، مقدارهای بولی را دریافت میکنند و برای خروجی هم مقدارهای بولی را برمیگردانند. باید به این نکته توجه داشت که در برخی از زبانهای برنامه نویسی از جمله C و ++C هر عدد غیر صفری به عنوان True و عدد صفر به عنوان False در نظر گرفته میشود. اما این موضوع در برخی از زبانها مانند جاوا صادق نیست. در جدول زیر مشخصات عملگرهای بیتی به طور کامل ارائه شدهاند.
نماد | عملکرد | روش استفاده | توضیح |
&& | AND منطقی | x && y | اگر هر دو عملوند این عملگر True باشند، True را برمیگرداند، در غیر این صورت False را در خروجی نشان میدهد. |
|| | OR منطقی | x || y | اگر هر دو عملوند این عملگر Flase باشند، False را بازمیگرداند. در غیر این صورت True بازگردانده میشود. |
! | NOT منطقی | ! x | این یک عملگر یگانی است و اگر عملوند آن False باشد، True را برمیگرداند و اگر عملوند آن True باشد، False برگردانده خواهد شد. |
در بخش بعدی از مقاله «عملگر در برنامه نویسی چیست» ، پس از معرفی مجموعه دورههای آموزش برنامه نویسی، به بررسی عملگرهای انتسابی، پرداخته شده است.
معرفی فیلم های آموزش برنامه نویسی تم آف
دورههای آموزشی تم آف بر اساس موضوع در این وب سایت به صورت مجموعههای آموزشی مختلفی دستهبندی شدهاند. یکی از این مجموعههای جامع، مربوط به دورههای آموزش انواع زبانهای برنامه نویسی گوناگون است. علاقهمندان میتوانند از این مجموعه آموزشی برای یادگیری و بیشتر برنامه نویسی استفاده کنند. در زمان تدوین این مقاله، مجموعه دورههای برنامه نویسی تم آف حاوی بیش از ۴۹۱ ساعت محتوای ویدیویی و حدود ۵۹ عنوان آموزشی مختلف است. در ادامه این بخش، برخی از دورههای این مجموعه به طور مختصر معرفی شدهاند:
- فیلم آموزش برنامه نویسی پایتون Python – مقدماتی (طول مدت: ۱۹ ساعت و ۵۳ دقیقه، مدرس: پژمان اقبالی شمس آبادی): در این تم آف، زبان پایتون از پایهایترین مباحث مانند انواع دادههای آن آموزش داده میشود و سعی شده است که همه مباحث مقدماتی مورد نیاز آن ارائه شوند. برای مشاهده فیلم آموزش برنامه نویسی پایتون Python – مقدماتی + کلیک کنید.
- فیلم آموزش برنامه نویسی C++ سی پلاس پلاس (طول مدت: ۲۰ ساعت و ۱۴ دقیقه، مدرس: دکتر فرشید شیرافکن): در این دوره آموزشی تم آف، زبان برنامه نویسیC++ در دو بخش و از مفاهیم پایه آموزش داده شده است. برای مشاهده فیلم آموزش برنامه نویسی C++ سی پلاس پلاس + کلیک کنید.
- فیلم آموزش برنامه نویسی جاوا Java (طول مدت: 19 ساعت و 19 دقیقه، مدرس: دکتر سید مصطفی کلامی هریس): این دوره آموزشی به دانشجویان و علاقهمندانی پیشنهاد میشوند که قصد یادگیری زبان برنامه نویسی جاوا را به صورت جامع دارند. برای مشاهده فیلم آموزش برنامه نویسی جاوا Java + کلیک کنید.
- فیلم آموزش برنامه نویسی C (طول مدت: ۱۳ ساعت و ۳۰ دقیقه، مدرس: دکتر سید مصطفی کلامی هریس): در این دوره آموزشی، زبان برنامه نویسی C همراه با مفاهیم کاربردی آن و مثالهای عملی آموزش داده شده است. برای مشاهده فیلم آموزش برنامه نویسی C + کلیک کنید.
- فیلم آموزش کاربردی برنامه نویسی سی شارپ #C (طول مدت: ۱۳ ساعت و ۵۸ دقیقه، مدرس: مهندس رشید شجاعی): در این دوره آموزشی تم آف، دانشجویان و علاقهمندان به صورت کاربردی با زبان سی شارپ و محیطهای Visual Studio و داتنت آشنا میشوند. برای مشاهده فیلم آموزش کاربردی برنامه نویسی سی شارپ #C + کلیک کنید.
- فیلم آموزش برنامه نویسی تایپ اسکریپت TypeScript (طول مدت: ۸ ساعت و ۴۵ دقیقه، مدرس: پوریا کهریزی): این تم آف به دانشجویانی پیشنهاد شده است که قصد یادگیری زبان برنامه نویسی تایپ اسکریپت را از پایه دارند. تایپ اسکریپت دارای شباهتهای بسیاری با زبانهای #C و جاوا اسکریپت است. برای مشاهده فیلم آموزش برنامه نویسی تایپ اسکریپت TypeScript + کلیک کنید.
اکنون پس از معرفی مجموعه دورههای آموزش برنامه نویسی و شرح خلاصهای از برخی دورههای این مجموعه، در بخش بعدی مقاله «عملگر در برنامه نویسی چیست» به بررسی و شرح عملگر انتسابی در برنامه نویسی، پرداخته شده است.
عملگر انتسابی در برنامه نویسی چیست؟
تعداد عملگرهای انتسابی از دیگر عملگرهای برنامه نویسی بیشتر است و در این بخش به بررسی این عملگرها پرداخته میشود. سعی شده است در جدول زیر به طور جامع عملگرهای انتسابی برنامه نویسی مورد بررسی قرار بگیرند.
نماد | عملکرد | روش استفاده | معادل | توضیح |
= | انتساب | x = y | با استفاده از این عملگر، تخصیص مقدار از عملوند سمت راست به عملوند سمت چپ انجام میشود. | |
=+ | اضافه کردن و تخصیص به عملوند | x += y | x = x + y | به وسیله این عملگر، مقدار عملوند سمت راست به عملوند چپ اضافه میشود و به عملوند سمت چپ تخصیص داده میشوند. |
=- | کم کردن و تخصیص به عملکرد | x -= y | x= x – y | به وسیله این عملگر، عملوند سمت چپ از عملوند سمت راست کم میشود و نتیجه به عملوند سمت چپ اختصاص داده خواهد شد. |
=* | ضرب کردن و تخصیص به عملوند | x *= y | x = x * y | با استفاده از این عملگر، عملوند سمت راست با عملوند سمت چپ ضرب میشود و نتیجه آن به عملوند سمت چپ تخصیص داده خواهد شد. |
=/ | تقسیم کردن و تخصیص به عملوند | x /= y | x = x / y | با استفاده از این عملگر، عملوند سمت چپ بر عملوند سمت راست تقسیم میشود و پاسخ آن به عملوند سمت چپ تخصیص داده خواهد شد. |
=% | محاسبه باقیمانده تقسیم و تخصیص به عملوند | x %= y | x = x % y | این عملگر، باقیمانده تقسیم عملوند سمت چپ بر عملوند سمت راست را به عملوند سمت چپ تخصیص میدهد. |
=>> | شیفت به چپ و تخصیص به عملوند | x | x = x | این عملگر مقدار x را به اندازه تعداد y به سمت چپ منتقل میکند و آن را به عملوند سمت چپ یا همان x تخصیص میدهد. |
= | شیفت به راست و تخصیص به عملوند | x >>= y | x = x >> y | این عملگر مقدار x را به اندازه تعداد y به سمت چپ منتقل میکند و آن را در x ذخیره میکند. |
=& | AND بیتی و تخصیص به عملوند | x &= y | x = x & y | x & y انجام و نتیجه آن به x تخصیص داده میشود. |
=| | OR بیتی و تخصیص به عملوند | x |= y | x = x | y | x | y انجام و نتیجه آن به عملوند سمت چپ یا همان x تخصیص داده میشود. |
=^ | XOR بیتی و تخصیص به عملوند | x ^= y | x = x ^ y | x ^ y انجام میگیرد و نتیجه آن به x تخصیص داده میشود. |
در بخش بعدی از مقاله «عملگر در برنامه نویسی چیست» به بررسی انواع عملگرهای افزایشی و کاهشی پرداخته شده است.
عملگر های افزایشی و کاهشی در برنامه نویسی چیست؟
عملگرهای افزایشی و کاهشی از نوع عملگرهای یگانی هستند و فقط به یک عملوند نیاز دارند. در جدول زیر، نماد، عملکرد، روش استفاده و توضیحهای مرتبط با این عملگرها در برنامه نویسی ارائه شدهاند.
نماد | عملکرد | روش استفاده | توضیح |
++ | «پسا افزایش» (Postincrement) | ++x | این عملگر، پس از استفاده از x، یک مقدار به آن اضافه میکند. |
— | «پسا کاهش» (Postdecrement) | –x | این عملگر، پس از استفاده از x، مقدار آن را یک واحد کاهش میدهد. |
++ | «پیش افزایش» (Preincrement ) | x++ | این عملگر، قبل از استفاده از x، یک مقدار به آن اضافه میکند. |
– | «پیش کاهش» (Predecrement) | x– | این عملگر، قبل از استفاده از x، مقدار آن را یک واحد کاهش میدهد. |
برای درک بهتر مفهوم عملگرهای افزایش و کاهشی در برنامه نویسی، مثالی در ادامه ارائه شده است.
مثالی برای درک بهتر عملگرهای افزایشی و کاهشی در برنامه نویسی
در این مثال مقدار x برابر با ۱۰ در نظر گرفته میشود. حالا در عبارت y=x++ مقدار یک واحد به متغیر x اضافه خواهد شد و مقدار آن برابر با ۱۱ میشود. اما مقدار y برابر با ۱۰ خواهد بود. زیرا ابتدا مقدار اولیه x در y ذخیره میشود و سپس یک واحد به مقدار x اضافه خواهد شد.
اما اگر عبارت y = ++x در نظر گرفته شود، مقدار ۱۱ هم به x و هم به y تخصیص داده میشود؛ زیرا x پس از افزایش آن به y اختصاص داده شده است. همین روش برای مثالهای کاهشی نیز صدق میکند. در ادامه مقاله «عملگر در برنامه نویسی چیست» به بررسی انواع عملگرهای متفرقه در برنامه نویسی پرداخته شده است.
عملگرهای متفرقه در برنامه نویسی چیست ؟
برخی از عملگرها وجود دارند که در دسته خاصی قرار نمیگیرند و به عنوان عملگرهای متفرقه شناخته میشوند، برای مثال «عملگرهای شرطی» (Conditional Operator) از این دسته از عملگرها به حساب میآیند و بسیار شبیه به if else
در برنامه نویسی هستند. این عملگرها به صورت زیر مورد استفاده قرار میگیرند.
x = (condition) ? a : b
در عبارت فوق، اگر شرط صحیح باشد، a به x نسبت داده میشود و در غیر این صورت b به x اختصاص داده خواهد شد. به این نوع عملگر، یک «عملگر سه گانه» (Ternary Operator) گفته میشود. زیرا از سه عملوند «شرط»، a و b استفاده میکند. باید به این نکته نیز توجه داشت که شرط را میتوان به عنوان عملوند بولی در نظر گرفت. ممکن است این عملگرها در هر زبان برنامه نویسی متفاوت باشند. در بخش بعدی از مقاله «عملگر در برنامه نویسی چیست» به بررسی اولویت و مشارکت عملگرها در برنامه نویسی پرداخته شده است.
اولویت و مشارکت عملگر در برنامه نویسی چیست؟
قانون «اولویت» یا «تقدم» (Precedence) عملگر در برنامه نویسی بیان میکند که وقتی دو عملگر با اولویتهای گوناگون در یک عبارت وجود دارند، ابتدا کدام یک از آنها باید ارزیابی شوند. تقدم عملگر تنها در صورتی معنادار است که عملگرهای دیگری با اولویت بالاتر یا پایینتر وجود داشته باشند. در برنامههای نوشته شده، ابتدا عبارتها با عملگرهای اولویت بالاتر ارزیابی میشوند. برای مثال میتوان عبارت زیر را در نظر گرفت:
x = a +++ b
عبارت فوق را میتوان به صورت افزایش «پسوندی» (Postfix) روی a و جمع با b یا افزایش «پیشوندی» (Prefix) روی b و جمع آن با a مشاهده کرد. چنین مسائلی با استفاده از قوانین تقدم یا اولویت حل میشوند که در هر زبان برنامه نویسی متفاوت هستند.
قانون «انجمنی» (Associativity) عملگر در برنامه نویسی نشان میدهد که وقتی دو عملگر با اولویتهای یکسان در یک عبارت وجود دارند و پرانتزی برای مشخص شدن اولویت اجرای آنها وجود نداشته باشد، کدام عملگر ابتدا ارزیابی خواهد شد. قانون انجمنی ترتیب چپ به راست یا راست به چپ برای گروهبندی عملوندها به عملگرهایی است که دارای اولویت یکسان هستند. گروهبندی عملوندها را میتوان با استفاده از پرانتز اجباری کرد. برای مثال عبارت زیر در نظر گرفته شده است:
a * b / c
در مثال فوق باید نسبت به قانونهای زبان برنامه نویسی مشخص شود که ابتدا کدام یک از عملهای ضرب یا تقسیم انجام میشوند. در جدول زیر تربیت برخی از عملگرها در برنامه نویسی شرح داده شده است. در این جدول عملگرهایی که بیشترین اولویت را دارند در بالا و آنهایی که از اولویت کمتری برخوردار هستند در بخشهای پایینتر جدول نوشته شدهاند. در هر عبارت داده شده، ابتدا عملگرهایی با اولویتهای بالاتر بررسی میشوند. در این جدول از عبارت «LR» یا «Left to Right» به معنی چپ به راست و از عبارت «RL» یا همان «Right to Left» به معنی راست به چپ استفاده شده است.
شماره اولویت | گروه | قانون انجمنی | عملگر |
1 | پسوندی | LR | ++ — |
2 | یکانی | RL | + – ! ~ ++ — |
3 | ضربی | LR | * / % |
4 | افزودنی | LR | + – |
5 | شیفت | LR | > |
6 | رابطهای | LR | >= |
7 | برابری | LR | == != |
8 | AND بیتی | LR | & |
9 | XOR بیتی | LR | ^ |
10 | OR بیتی | LR | | |
11 | AND منطقی | LR | && |
12 | OR منطقی | LR | || |
13 | شرطی | RL | ?: |
14 | انتسابی | RL | = += -= *= /= %= >>= |
در ادامه مثالی برای درک بهتر قوانین اولویت و مشارکت عملگر در برنامه نویسی ارائه شده است.
مثالی برای درک بهتر اولویت و مشارکت عملگر در برنامه نویسی
در عبارت زیر به دلیل قانون انجمنی راست به چپ عملگر =
، مقدار 5 به a و b نسبت داده شده است. یعنی به عبارت دیگر، مقدار c ابتدا به b و سپس مقدار b به a نسبت داده میشود.
b = 9;
c = 5;
a = b = c;
میتوان در مثال فوق، با استفاده از پرانتز ترتیب مورد نظر خود را اعمال کرد. در ادامه مثال ساده دیگری ارائه شده است.
a + b * c / d
در مثال فوق، طبق قانون اولویت یا تقدم عملگر *
و /
قبل از عملگر +
اجرا میشوند. همچنین به دلیل وجود قوانین انجمنی، ابتدا متغیر b با c ضرب میشود و سپس پاسخ آن بر d تقسیم خواهد شد. در بخشهای بعدی از این مقاله به صورت اختصاصیتر و همراه با مثال به بررسی عملگرها در چند زبان برنامه نویسی پرداخته شده است. ابتدا به بررسی برخی از عملگرها در زبان برنامه نویسی C پرداخته میشود.
عملگر در زبان برنامه نویسی C چیست ؟
عملگر در زبان برنامه نویسی C نمادی به حساب میآید که به کامپایلر یا «مفسر» (Interpreter) اعلام میکند عملیات ریاضی، منطقی یا رابطهای خاصی را انجام دهند و نتیجه نهایی را تولید کنند. در ادامه ابتدا به بررسی عملگرهای حسابی در زبان برنامه نویسی C پرداخته میشود. به این نکته نیز باید توجه داشت که عملگرها در زبان C و ++C بسیار شبیه به یکدیگر هستند و با یادگیری یکی از آنها به راحتی میتوان نحوه استفاده از عملگرها در آن زبان دیگر را هم فرا گرفت. در بخش بعدی از مقاله «عملگر در برنامه نویسی چیست» ابتدا به بررسی عملگرهای حسابی در زبان برنامه نویسی C پرداخته شده است.
عملگرهای حسابی در زبان برنامه نویسی C
برنامه نویسی کامپیوتری به صورت گستردهای برای محاسبات ریاضی مورد استفاده قرار میگیرد. میتوان برنامههای سادهای مثلاً برای جمع کردن دو عدد با یکدیگر (2 + 3) و حتی برنامههای پیچیدهای برای محاسبه معادلههای چند جملهای مثل معادله ($$P(x) = x^4 + 7x^3 – 5x + 9$$) نوشت. دو عبارتی که مثال زده شدند به عنوان عبارتهای حسابی در نظر گرفته میشوند و هر دو از عملگرهای جمع و تفریق استفاده کردهاند. همچنین مقدارهای ۲، ۳، x و سایر موارد عملوند نامیده میشوند.
خروجی مثالهای این چنینی، عدد است. برخی از عملگرهای مهم و کاربردی در زبان برنامه نویسی C شامل +
، –
، *
، /
، %
میشوند. در ادامه مثال سادهای برای درک بهتر عملگرهای حسابی در زبان برنامه نویسی C ارائه شده است:
#include
int main() {
int a, b, c;
a = 10;
b = 20;
c = a + b;
printf( "Value of c = %dn", c);
c = a - b;
printf( "Value of c = %dn", c);
c = a * b;
printf( "Value of c = %dn", c);
c = b / a;
printf( "Value of c = %dn", c);
c = b % a;
printf( "Value of c = %dn", c);
}
زمانی که کدهای فوق، پیادهسازی شوند، خروجی زیر نشان داده میشود.
Value of c = 30 Value of c = -10 Value of c = 200 Value of c = 2 Value of c = 0
ادامه این بخش به بررسی عملگرهای رابطهای در زبان برنامه نویسی C اختصاص داده شده است.
عملگرهای رابطه ای در زبان برنامه نویسی C
با استفاده از این نوع عملگرها بعد از ایجاد متغیرها میتوان رابطه بین آنها را نشان داد. برای مثال دو متغیر زیر با مقدارهای تخصیص داده شده آنها ارائه شدهاند.
A = 20، B = 10
مشاهده میشود که مقدار متغیر A از متغیر B بزرگتر است. بنابراین، به عملگرهای رابطهای برای نشان دادن این نوع از ارتباطها در برنامه نویسی نیاز است. ارتباط بین این دو متغیر به صورت زیر نشان داده میشود:
A > B
عمگر رابطهای که در عبارت فوق مورد استفاده قرار گرفته است، یکی از سادهترین نوع عملگرها به حساب میآید. نتایج این نوع از عملگرها به صورت بولی نمایش داده میشوند. به عنوان برخی از عملگرهای رابطهای که در زبان برنامه نویسی C مورد استفاده قرار میگیرند، میتوان به ==
، =!
، >
،
، >=
،
اشاره کرد. در ادامه مثالی در زبان C ارائه شده است که در آن از عبارتهای رابطهای استفاده میشود. از دستور if نیز در این مثال برای نشان دادن صحیح و غلط بودن رابطهها استفاده شده است.
#include
int main() {
int a, b;
a = 10;
b = 20;
/* Here we check whether a is equal to 10 or not */
if( a == 10 ) {
/* if a is equal to 10 then this body will be executed */
printf( "a is equal to 10n");
}
/* Here we check whether b is equal to 10 or not */
if( b == 10 ) {
/* if b is equal to 10 then this body will be executed */
printf( "b is equal to 10n");
}
/* Here we check if a is less b than or not */
if( a
زمانی که کدهای برنامه فوق، اجرا شوند، خروجی زیر به عنوان نتیجه برنامه نشان داده میشود.
a is equal to 10 a is less than b a is not equal to b
بخش بعدی از مقاله «عملگر در برنامه نویسی چیست» به بررسی عملگرهای منطقی در زبان برنامه نویسی C اختصاص دارد.
عملگرهای منطقی در زبان برنامه نویسی C
عملگرهای منطقی در همه زبانهای برنامه نویسی از اهمیت بالایی برخوردار هستند. همچنین آنها به برنامه نویس در گرفتن تصمیم بر اساس شرطهایی خاص کمک میکنند. در شرایطی که قصد ترکیب دو شرط با یکدیگر وجود داشته باشد، عملگرهای AND و OR به برنامه نویسها در ایجاد نتیجه نهایی میکنند. برخی از عملگرهای مهمی که در زبان برنامه نویسی C استفاده میشوند، شامل &&
، ||
و !
هستند. در ادامه مثالی برای درک بهتر روش استفاده از این عملگرها ارائه شده است:
#include
int main() {
int a = 1;
int b = 0;
if ( a && b ) {
printf("This will never print because condition is falsen" );
}
if ( a || b ) {
printf("This will be printed print because condition is truen" );
}
if ( !(a && b) ) {
printf("This will be printed print because condition is truen" );
}
}
زمانی که برنامه فوق، کامپایل و پیادهسازی میشود، خروجی زیر را ارائه میدهد:
This will be printed print because condition is true This will be printed print because condition is true
در بخش بعدی به بررسی عملگرهای افزایشی و کاهشی در زبان برنامه نویسی C پرداخته شده است.
عملگرهای افزایشی و کاهشی در زبان برنامه نویسی C
در زبان برنامه نویسی C از عملگرهای افزایشی و کاهشی —
و ++
استفاده بسیاری میشود. در ادامه مثالی برای درک بهتر این عملگرها در زبان C ارائه شده است.
// Working of increment and decrement operators
#include
int main()
{
int a = 10, b = 100;
float c = 10.5, d = 100.5;
printf("++a = %d n", ++a);
printf("--b = %d n", --b);
printf("++c = %f n", ++c);
printf("--d = %f n", --d);
return 0;
}
خروجی مثال فوق، به صورت زیر نمایش داده میشود:
++a = 11 --b = 99 ++c = 11.500000 --d = 99.500000
در این مثال عملگرهای افزایشی و کاهشی به صورت پیشوندی مانند a++
و a–
مورد استفاده قرار گرفتهاند. در زبان C این عملگرها به صورت پسوندی نیز میتوانند استفاده شوند. در بخش بعدی به بررسی مثالی از عملگرهای انتسابی در زبان برنامه نویسی C پرداخته شده است.
عملگرهای انتسابی در زبان برنامه نویسی C
برخی از عملگرهای انتسابی که در زبان C استفاده میشوند، شامل =
، +=
، -=
، *=
، /=
، %=
هستند. در ادامه مثالی برای درک بهتر روش استفاده از این عملگرها ارائه شده است.
// Working of assignment operators
#include
int main()
{
int a = 5, c;
c = a; // c is 5
printf("c = %dn", c);
c += a; // c is 10
printf("c = %dn", c);
c -= a; // c is 5
printf("c = %dn", c);
c *= a; // c is 25
printf("c = %dn", c);
c /= a; // c is 5
printf("c = %dn", c);
c %= a; // c = 0
printf("c = %dn", c);
return 0;
}
خروجی کدهای فوق در ادامه نشان داده شده است.
c = 5 c = 10 c = 5 c = 25 c = 5 c = 0
در بخش بعدی مقاله «عملگر در برنامه نویسی چیست» به بررسی برخی از عملگرهای دیگر در زبان C پرداخته شده است.
عملگرهای متفرقه در زبان برنامه نویسی C
برخی از عملگرها در زبانهای برنامه نویسی هستند که در گروه خاصی قرار نمیگیرند. برای مثال میتوان به عملگر «ویرگول» (Comma) اشاره کرد. عملگر ویرگول برای پیوند دادن عبارتهای مرتبط به یکدیگر استفاده میشود. در ادامه مثالی در این رابطه ارائه شده است:
int a, c = 5, d;
عملگر متفرقه دیگری نیز در زبان C وجود دارد که یک عملگر یگانی، sizeof
نامیده میشود. این عملگر اندازه دادههایی از جمله «ثابتها» (constant)، متغیرها، آرایهها، ساختمان دادهها و سایر موارد را برمیگرداند. مثالی برای درک بهتر روش عملکرد عملگر sizeof
در ادامه ارائه شده است.
#include
int main()
{
int a;
float b;
double c;
char d;
printf("Size of int=%lu bytesn",sizeof(a));
printf("Size of float=%lu bytesn",sizeof(b));
printf("Size of double=%lu bytesn",sizeof(c));
printf("Size of char=%lu byten",sizeof(d));
return 0;
}
خروجی کدهای فوق، پس از پیادهسازی و کامپایل آن به صورت زیر نمایش داده شده است:
Size of int = 4 bytes Size of float = 4 bytes Size of double = 8 bytes Size of char = 1 byte
در ادامه مثالهای سادهای برای عملگرها در زبان برنامه نویسی جاوا ارائه شده است.
عملگر در برنامه نویسی جاوا چیست ؟
در این بخش مثالی کاملاً شبیه به مثال بخش عملگر در زبان برنامه نویسی C ارائه شده است. برنامه نویسی C و جاوا معمولاً عملگرها و دستورات شرطی یکسانی دارند. در کدهای زیر، دو عملوند a و b وجود دارند که مقدارهای آنها به ترتیب ۱۰ و ۲۰ است و با عملگرهای گوناگونی از جمله عملگرهای حسابی و رابطهای، عملیاتی روی آنها انجام میشود.
public class DemoJava {
public static void main(String []args) {
int a, b, c;
a = 10;
b = 20;
c = a + b;
System.out.println("Value of c = " + c );
c = a - b;
System.out.println("Value of c = " + c );
c = a * b;
System.out.println("Value of c = " + c );
c = b / a;
System.out.println("Value of c = " + c );
c = b % a;
System.out.println("Value of c = " + c );
if( a == 10 ) {
System.out.println("a is equal to 10" );
}
}
}
زمانی که کدهای فوق اجرا میشوند، خروجی زیر نمایش داده میشود.
Value of c = 30 Value of c = -10 Value of c = 200 Value of c = 2 Value of c = 0 a is equal to 10
در ادامه مقاله «عملگر در برنامه نویسی چیست» مثالی از عملگرها در زبان برنامه نویسی پایتون ارائه شده است.
عملگر در برنامه نویسی پایتون چیست ؟
در این بخش برنامهای برابر با برنامه بخش قبلی با زبان برنامه نویسی پایتون نوشته شده است. این برنامه دو متغیر a و b ایجاد میکند و در همان زمان مقدار 10 و 20 را به آن متغیرها اختصاص میدهد. عملگرهای این زبان برنامه نویسی نیز مانند اکثر زبانهای برنامه نویسی دیگر هستند. در مثال زیر از عملگرهای گوناگون حسابی و رابطهای استفاده شده است.
a = 10
b = 20
c = a + b
print "Value of c = ", c
c = a - b
print "Value of c = ", c
c = a * b
print "Value of c = ", c
c = a / b
print "Value of c = ", c
c = a % b
print "Value of c = ", c
if( a == 10 ):
print "a is equal to 10"
خروجی برنامه فوق به صورت زیر است:
Value of c = 30 Value of c = -10 Value of c = 200 Value of c = 0 Value of c = 10 a is equal to 10
جمعبندی
همانطور که در این مقاله مشخص شد، عملگر در برنامه نویسی یکی از بخشهای مهم و پرکاربرد در توسعه و ساخت نرم افزارها و برنامههای کامپیوتری به حساب میآید. میتوان از عملگر به عنوان ارتباط دهنده متغیرها و مقدارهای آنها استفاده کرد. همچنین این مفهوم مهم در اکثر زبانهای برنامه نویسی مورد استفاده قرار میگیرد. یادگیری انواع عملگرها، روش استفاده و اولویتهای آنها یکی از مفاهیم پایه و اصلی یادگیری برنامه نویسی به حساب میآید.
در مقاله «عملگر در برنامه نویسی چیست» سعی شد به تعریف، انواع و اولویتهای عملگر در برنامه نویسی به طور کامل پرداخته شود و این مفهوم از جهتهای گوناگون مورد بررسی قرار بگیرد. در بخشهای پایانی مقاله نیز به بررسی عملگر در زبان برنامه نویسی C، پایتون و جاوا و میزان شباهت روش تعریف عملکرد در آنها پرداخته شد. همچنین، در این مقاله با هدف یادگیری بهتر و بیشتر علاقهمندان به برنامه نویسی، تعدادی از دورههای آموزشی برای زبانهای برنامه نویسی رایج و محبوب معرفی شدهاند.