یک عملگر در زبان برنامه نویسی یک علامت است که انجام عملیات خاصی را مشخص میکند. این عملیات معمولاً یک عمل ریاضیاتی، رابطهای یا منطقی است. در این آموزش با مفهوم عملگر و انواع عملگرهای برنامهنویسی آشنا شده تا بتوانیم در توسعه نرمافزار از آنها به درستی استفاده کنیم.
عملگرها در اکثر زبانهای برنامهنویسی وجود دارند. از آنها برای انجام عملیاتهای ریاضی، مقایسه مقادیر و یا ترکیبهای منطقی استفاده میشود.
معمولاً مفهوم و نماد عملگرهای پایه در زبانها ثابت است. خارج از دنیای برنامهنویسی هم با عملگرها سر و کار داشتهایم؛ برای مثال عملگرهای ریاضی (مثل جمع و ضرب).
عملگر (operator) یک نماد است که یک یا چند عملوند (operand) دارد. این نماد مشخص میکند که کامپایلر یا مفسر زبان برنامهنویسی باید چه کاری با عملوندها انجام دهد.
فهرست محتوای آموزش
انواع عملگر در برنامهنویسی
از یک نظر میتوانیم عملگرها را بر اساس تعداد عملوندهایشان تقسیمبندی کنیم. اما دستهبندی رایجتر و درستتر، تقسیم operatorها بر اساس نوع کاری است که انجام میدهند.
در این تقسیمبندی، چهار نوع عملگر در برنامه نویسی داریم:
- عملگر ریاضی
- عملگر رابطهای
- عملگر منطقی
- عملگر بیتی
در بخشهای بعدی به ترتیب هر کدام از این عملگرها را تعریف کرده و با آنها آشنا خواهیم شد.
عملگر انتساب
یک عملگر عمومی که در همه زبان ها وجود دارد و به نوعی در هیچ کدام از دستهبندیهای بالا قرار نمیگیرد، عملگر انتساب (assignment) است. اپراتور انتساب به شکل =
نمایش داده شده و دو عملوند دارد.
یکی از عملوندها در سمت راست تساوی قرار گرفته و مقدار آن در عملوند سمت چپی ریخته میشود. از این عملگر در تعریف متغیر برنامهنویسی استفاده میکنیم. همچنین با علامت انتساب میتوان مقدار متغیرها را در برنامه تغییر داد.
در قطعه کد تصویر زیر، در خط اول مقدار متغیر x را برابر با 17 و در خط دوم متغیر y را 25 در نظر گرفتهام. در خط سوم، این دو مقدار را با هم جمع کرده و نتیجه را در متغیری به نام result قرار دادهایم.
عملگرهای ریاضی در برنامه نویسی
محاسبات در برنامههای کامپیوتری یک جزء و عملیات جدانشدنی است. در سادهترین حالت میتوانیم یک برنامه برای جمع دو عدد بنویسیم (مشابه خط سوم تصویر بالا) و یا یک برنامه بسیار پیچیده برای حل مسائل ریاضی سنگین ایجاد کنیم.
در هر صورت باید برای انجام عملیاتهای پایه، از عملگرهای ریاضی (mathematical operators) در آن استفاده کنیم. قطعاً با بیشتر عملگرهای ریاضی از دوران مدرسه آشنایی دارید. عملگرهای جمع، تفریق، ضرب، تقسیم، توان و … .
هر کدام از این عملگرها با نمادی شبیه به آنچه تا به حال استفاده کردهایم در زبانهای برنامهنویسی استفاده میشوند. در جدول زیر عملگرهای ریاضی که دو عملوند میپذیرند را مشاهده میکنید.
نماد عملگر | عملیات | مثال |
---|---|---|
+ | جمع دو مقدار | 17 + 5 |
– | تفریق دو مقدار از هم | 7 – 29 |
* | ضرب دو عملوند در هم | 7 * 11 |
/ | تقسیم دو مقدار | 3 / 26 |
٪ | باقیمانده تقسیم صحیح | 5 ٪ 34 |
** | اولی به توان دومین مقدار | 4 ** 3 |
از علامت باقیمانده تقسیم در ریاضیات روزمره کمتر استفاده کردهایم. همان مثالی که در جدول آورده شده را در نظر بگیرید. اگر عدد 34 را بر 5 تقسیم کنیم، حاصل صحیح ما برابر 6 شده و در 4 باقی میماند. در اینصورت میگوییم 4 باقیمانده تقسیم صحیح 34 بر 5 است.
هر کدام از عملوندهای یک عملگر میتوانند مقدار مشخص یا یک متغیر باشند. در نتیجه میتوانیم مقدار دو متغیر را با هم جمع کرده یا یک مقدار ثابت را به متغیری اضافه کنیم. در بخشهای بعدی مثالهای بیشتری از عملوندهای متغیری خواهید دید.
عملگرهای ترکیبی ریاضی
در بسیاری از زبانها یکسری عملگرهای ریاضی ترکیبی برای سادهنویسی بیشتر در برنامهنویسی وجود دارد. فرض کنید دو متغیر x و y داریم. میخواهیم این دو را با هم جمع کرده و نتیجه را در متغیر x جایگزین مقدار قبلی کنیم.
اولین چیزی که به ذهنمان میرسد این است که بنویسیم: x = x + y
این عبارت کاملاً صحیح است. اما اگر دقت کنید، ما دو بار نام متغیر x را نوشتهایم. عملگرهای ترکیبی ریاضی، عملگر ریاضی و عملگر انتساب را با هم ترکیب کرده و یک عملگر جدید به ما میدهد. به کمک این اپراتورها، به جای عبارت بالا مینویسیم: x += y
در جدول زیر پنج عملگر ترکیبی را مشاهده میکنید.
+= | انتساب جمع |
-= | انتساب تفریق |
*= | انتساب ضرب |
/= | انتساب تقسیم |
٪= | انتساب تقسیم |
عملگر ریاضی افزایش یا کاهش
فرقی ندارد در ابتدای راه برنامهنویسی باشید یا سالها تجربه داشته باشید، همیشه نیاز دارید مقادیر بعضی از متغیرها را یک واحد افزایش یا کاهش دهید. معمولاً در دستورهای تکرار یا بخشهای دیگر برنامه که نیاز به شمارش تعداد دفعات تکرار دارید از این نوع عملیاتها بیشتر انجام میشود.
تا به اینجا دو روش برای افزایش یک واحدی یک متغیر یاد گرفتیم.
x = x + 1 x += 1
یک دستور کوتاهتر برای افزایش یا کاهش یک واحدی مقدار متغیر، استفاده از عملگرهای ++ یا — است. (بخوانید plus plus یا minus minus)
اگر چنین علامتی پس از نام متغیر قرار گیرد، به مقدار عددی آن یک واحد افزوده شده یا از آن کم میشود.
x++ x--
در بعضی زبانها، میتوانیم این عملگر را قبل از نام متغیر نیز صدا بزنیم؛ به گونهای که داشته باشیم --x
یا ++x
.
عملگرهای رابطهای در برنامهنویسی
عملگرهای دیگری که در برنامهنویسی از آنها زیاد استفاده میکنیم، عملگرهای رابطهای یا relational operators هستند. همانطور که از نامش مشخص است، از این عملگرهای برای بررسی رابطه میان دو مقدار استفاده میشود.
رابطه میان دو مقدار به صورت بزرگتر، کوچکتر یا مساوی تعریف میشود. در اصل در حال مقایسه دو مقدار با هم هستیم. به همین دلیل به این نوع عملگرها، عملگرهای مقایسهای هم گفته میشود.
فرض کنید دو متغیر عددی به نامهای a و b داریم. میخواهیم مقادیر این دو را با هم مقایسه کنیم. در علائم ریاضی از =
برای مساوی بودن، >
برای بزرگتری و <
برای کوچکتری استفاده میکنیم.
برای عملگر رابطهای هم از همین علائم استفاده میکنیم با یک تفاوت: چون علامت = برای عملگر انتساب استفاده شده است، از ==
برای بررسی تساوی دو مقدار استفاده میشود.
== | بررسی تصاویر دو مقدار |
!= | بررسی عدم تساوی دو مقدار |
> | بررسی بزرگتری مقدار سمت چپ |
< | بررسی کوچکتری مقدار سمت چپ |
>= | مقایسه بزرگتر مساوی |
<= | مقایسه کوچکتر مساوی |
معمولاً از این عملگرها در دستورهای شرطی استفاده میکنیم.
عملگرهای منطقی
تقریباً مهمترین عملگر در برنامهنویسی کامپیوتر، عملگرهای منطقی یا logical operators هستند. این عملگرها برای انجام عملیاتهای منطقی بین مقادیر مختلف استفاده میشوند.
منظور از عملیات منطقی، همان عملیاتهای AND و OR و NOT هست. معمولاً عملوندهای یک عملگر منطقی، یک مقدار منطقی است. اما بنا به تعریف هر نوع دادهای در زبانهای مختلف، میتوانیم از سایر انواع داده هم استفاده کنیم. البته این کار خیلی منطقی و درست به نظر نمیرسد.
منظور من از داده منطقی همان مقادیر true و false هست.
نماد سه عمل منطقی را در جدول زیر میبینید. دو عملگر اول میتوانند به تعداد زیاد و پشتِ سرِ هم استفاده شوند. برای مثال میتوانیم ۴ مقدار را با هم AND منطقی کنیم.
&& | عملیات AND منطقی |
|| | عملیات OR منطقی |
! | عملیات NOT منطقی |
عملیات not روی یک عملوند اجرا شده و علامت آن پیش از نام عملوند قرار میگیرد.
در جدول زیر به صورت کلی، نتیجه انجام عملیات منطقی روی دو داده با مقادیر مختلف (true یا false) نمایش داده شده است.
عملگرهای بیتی
در بعضی از زبانهای برنامهنویسی، برای انجام عملیات روی بیتها، عملگرهایی در نظر گرفته شده است. به عملوندهای اپراتورهای بیتی به شکل یک رشته 0 و 1 یا همان مبنای دودویی نگاه میشود.
مثلاً نتیجه اجرای and بین دو مقدار 0110
و 1010
مقدار 0010
خواهد شد.
& | and بیتی |
| | or بیتی |
~ | not بیتی |
در برخی زبانهای برنامه نویسی مثل C، فقط برای مقادیر یک بایتی (مثل کاراکتر یا int) مجاز به استفاده از عملگرهای بیتی هستید. اما در برخی زبانهای دیگر، اگر از bitwise operator ها بین دو عملوند غیر دودویی استفاده کنید، مقدار آن عملوندها به رشته بیتی تبدیل شده و سپس عملیات روی آنها انجام میشود.
اگر دوست داشتید انواع عملگرها را در زبانهای مختلف برنامهنویسی بررسی کنید، میتوانید به جدول موجود در این صفحه ویکیپدیا مراجعه کنید.
این آموزش بخشی از یک آموزش جامع و قدم به قدم در سبز دانش است: دوره رایگان آموزش برنامه نویسی
این آموزش برای همیشه رایگانه! میتونید با اشتراکگذاری لینک این صفحه از ما حمایت کنید یا با خرید یه فنجون نوشیدنی بهمون انرژی بدید!
میخوام یه نوشیدنی مهمونتون کنم
ممنونم واقعا مفید بود
خوشحالیم که براتون مفید بوده امیر عزیز
سلام خسته نباشید من یه سوال داشتم چرا من هر چی فیلم میخوام دانلود کنم یا برنامه ای نصب کنم پیام میاد گوگل پلیتونو به روز رسانی کنید ممنون میشم راهنمایی کنید من چطور گوگل پلیمو نصب وبه روز رسانی کنم چون میدونم خیلی مطالب وتوصیحاتتون جالب ومفهمی میخوام کمکم کنید تشکر
سلام
اطلاعی در این مورد نداریم. توی سایتهای مربوط به برنامههای موبایل به نتیجهٔ بهتری میرسید.
سلام خسته نباشید بابت پاسخ به سوال من واقعا تشکر میکنم بله منطور من اموزش نرم افزار وبرنامه نویسی هر دو accessوacxel ممنون میشم راهنمایم کنید
سلام
برای آموزش نرمافزارش پیشنهاد میکنم از ویدئوهای کوتاه و مربوط به حوزه کاری خودتون استفاده کنید. چون این برنامهها جامع هستن ممکنه یادگیری همه بخشها خستهکننده بشه.
تا جایی که اطلاع داریم برای ماکرونویسی داخل این برنامهها از vba استفاده میشه.
مجموعه ما فعلاً در حوزه وب و پایتون تخصص داره و احتمال زیاد آموزشی برای برنامه نویسی vba ارائه نمیشه. (حداقل در امسال)
میشه لطفا در مورد برنامه ecxel و access بیشتر توصیح بدید چون برنامتون جالب وخوب مفهوم رو میرسونید
سلام
لطف دارین شما. منظورتون آموزشهای این نرمافزارهاست یا برنامهنویسی اونها؟
سلام خسته نباشید مطالبتون جالب وعالی مفهوم خوب میرسونید
دمتون گرم دوستان از مطالب خوبتون خیلی لذت بردم
خوشحالیم که از این آموزشها برای پیشرفت خودتون استفاده میکنید. مرسی بابت انرژی خوبتون
با دسته بندی مناسبی توضیح دادید..اینکه مطالب دسته بندی بشن و به ترتیب توضیح داده بشنهمیشه تو درکمطلب کمک میکنه.
وظیفه خودم دونستم بابت این اموزشتشکر کنم.
سلامت باشی پاشای عزیز
خیلی خوشحالم که آموزشهامون برات مفیده و ممنون برای لطفت و انرژی خوبی که بهمون دادی 🙂
ممنون ازینکه خیلی خوب و متفاوت تر از سایت های دیگه توضیح داده بودید
خوشحالیم که آموزشهامون رو کاربردی میدونی محسن عزیز. ممنون بابت انرژی خوبت 🙂