بایگانی برچسب‌ها : عملگر انتساب

انتساب Assignment

انتساب یا Assignment چیست؟

انتساب (Assignment) یا تخصیص در دانش برنامه نویسی عملی است که طی آن مقداری به فضای نگه‌داری متناظر با نام یک متغیر تخصیص داده می‌شود.

رایج‌ترین نمادی که برای انجام این عمل (در قالب یک عملگر کاربردی یا عبارت انتساب) مورد استفاده قرار می‌گیرد نماد تساوی (یا =) می‌باشد. در برخی دیگر از زبان‌ها نیز از نمادهای متفاوتی از جمله := برای عمل انتساب استفاده می‌شود. در سمت چپ دستور انتساب نام متغیر و در سمت راست مقدار یا عبارتی قرار می‌گیرد که قرار است حاصل آن به متغیر اختصاص داده شود:

x = عبارت

در چنین دستوری ابتدا حاصل عبارت ارزیابی و سپس به متغیر تخصیص داده می‌شود (در صورتی که متغیر دارای مقداری باشد، مقدار جدید جایگزین مقدار پیشین خواهد شد).

الگوهای کاربردی مختلفی از عمل Assignment وجود دارد که معمولا به ساده‌سازی کد و کاهش تکرارها می‌انجامد و البته توسط تمامی زبان‌های برنامه‌نویسی پشتیبانی نمی‌شود. از رایج‌ترین انواع این الگوها می‌توان به انتساب افزوده (Augmented Assignment) اشاره نمود. در این نوع تخصیص مقدار جدیدی که قرار است به متغیر اختصاص داده شود به مقدار قبلی آن متغیر نیز بستگی دارد. به عنوان مثال در x += 2 مقدار کنونی متغیر x دو واحد افزایش می‌یابد.

در برخی از زبان‌های برنامه‌نویسی از انتساب زنجیره‌ای (Chained Assignment) نیز پشتیبانی می‌شود. برای مثال در a = b = c = 0 مقدار صفر به هر سه متغیر a و b و c تخصیص داده می‌شود. در برخی از زبان‌ها نیز امکان تخصیص موازی (Parallel Assignment) در نظر گرفته شده است به این شکل که تخصیص مقادیر مختلف به متغیرهای مجزا به صورت همزمان در یک دستور انجام می‌شود.

در بسیاری از زبان‌های برنامه‌نویسی از نماد یکسانی برای انتساب و تساوی مقایسه‌ای استفاده می‌شود. از اینرو در زبان‌هایی نظیر سی و پاسکال برای این دو عملگر از نمادهای متفاوتی استفاده می‌شود که می‌تواند به خوانایی و وضوح سورس کد کمک کند.

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

عملگر Operator

عملگر یا Operator چیست؟

عملگر (Operator) در برنامه‌نویسی به ساختاری گفته می‌شود که رفتاری مشابه با تابع دارد اما از نظر سازمان گرامری با آن متفاوت می‌باشد. شاید بتوان از نظر معنایی عملگرها را گونه‌ای از توابع دانست که نحوه قرارگیری پارامترهای آن‌ها (که به عملوند یا Operand موسومند) با حالت رایج توابع (که در اغلب زبان‌های برنامه‌نویسی داخل پرانتز قرار می‌گیرند) متفاوت است.

از سوی دیگر در اکثر زبان‌های برنامه نویسی، اجازه تعریف توابع به برنامه نویس داده می‌شود اما ممکن است تنها استفاده از عملگرهای از پیش تعریف شده در کدنویسی مجاز باشد. به علاوه تعداد عملوندها برخلاف تعداد پارامترهای توابع محدود هستند. اغلب عملگرها در زبان‌های برنامه‌نویسی تنها یک یا دو عملوند دارند و تعداد اندکی از عملگرها از تعداد بیشتری عملوند برخوردار هستند (به عنوان مثال عملگر ?: در زبان C یک عملگر سه عملوندی به شمار می‌رود). با وجود این تفاوت‌ها می‌توان بسیاری از عملگرها نظیر عملگر باقی‌مانده‌ی تقسیم یک عدد بر عددی دیگر را با یک تابع دو پارامتری که چنین عملی را انجام می‌دهد معادل دانست.

Operator ها معمولا با استفاده از یک نماد نمایش داده می‌شوند اما استفاده از نام‌هایی همچون div یا AND و Is نیز در زبان‌های امروزی به عنوان Operator مشاهده می‌شود. عملگرهایی که دارای یک، دو یا سه عملوند هستند را به ترتیب عملگرهای یکانی (Unary Operator)، عملگرهای باینری یا دودویی (Binary Operator) و عملگرهای تِرنِری یا سه‌تایی (Ternary Operator) می‌نامند.

محل قرارگیری عملگر در مقایسه با عملوندها می‌تواند مبتنی بر یکی از حالات پیشوندی، میانوندی و یا پسوندی باشد. به عبارت بهتر ممکن است عملگر پیش از عملوند، مابین عملوندها یا پس از عملوند قرار بگیرد. به عنوان مثال عملگرهای یکانی می‌توانند همانند عملگر منفی (-x) به صورت پیشوندی یا مانند عملگر پساافزایش (x++) به صورت پسوندی ظاهر شوند. عملگرهای دودویی همانند جمع نیز به صورت میانوندی (x + y) ظاهر می‌شوند.

علاوه بر اینکه در برخی زبان‌های برنامه‌نویسی امکان تعریف Operator جدید نیز وجود دارد، در برخی از زبان‌ها می‌توان یک Operator را برای نوع داده‌های تعریف شده توسط کاربر هم  سربارگذاری نمود (سربارگذاری عملگر یا Operator Overloading).

انواع رایج عملگرها

از رایج‌ترین انواع عملگرها در زبان‌های برنامه‌نویسی می‌توان به موارد زیر اشاره نمود (نمادهایی که برای برخی از Operator ها در داخل پرانتز ذکر شده است به همین شکل در بسیاری از زبان‌های برنامه‌نویسی مورد استفاده قرار می‌گیرد):

  • عملگرهای حسابی (Arithmetic Operator) نظیر جمع (+)، تفریق (-)، ضرب (*)، تقسیم (/)، باقیمانده (%)، افزایش (دو علامت +) و کاهش (دو علامت -)
  • عملگرهای رابطه‌ای (Relational Operator) یا مقایسه‌ای (Comparison Operator) نظیر <، >، <=، >=، == و !=
  • عملگرهای منطقی (Logical Operator) نظیر “و منطقی” (&&)، “یای منطقی” (||) و نقیض (Not یا !)
  • عملگرهای انتساب (Assignment Operator) نظیر انتساب ساده (= یا :=انتساب افزوده یا مرکب (مانند += و -= و …)
  • عملگرهای بیتی (Bitwise Operator) نظیر AND و OR و XOR، شیفت به راست، شیفت به چپ و …
  • عملگر دسترسی به فیلد در یک رکورد یا آبجکت که در بسیاری از زبان‌ها از نماد نقطه برای آن استفاده می‌شود
  • عملگر الحاق دو رشته
  • و …

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا