شنبه ۲۹ دي ۱۴۰۳
Tut24 آموزش برنامه نویسی و مجله تخصصی فناوری ورود/عضویت

آموزش مبانی برنامه نویسی - اپراتورها

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

اپراتورهای حسابی

برنامه‌های کامپیوتری به طور گسترده برای محاسبات ریاضی استفاده می‌شوند. ما می‌توانیم یک برنامه کامپیوتری بنویسیم که محاسبات ساده مانند جمع دو عدد (2 + 3) را انجام دهد و همچنین می‌توانیم برنامه‌ای بنویسیم که معادله پیچیده‌ای مانند P(x) = x4 + 7x3 - 5x + 9 را حل کند. در دستور اول، ۲ و ۳ عملوندان و + اپراتور یا همان عملگر است. مفاهیم مشابهی در برنامه‌نویسی کامپیوتر وجود دارد.

دو مثال زیر را ببینید −

2 + 3

P(x) = x4 + 7x3 - 5x + 9. 

این دو دستور در زبان برنامه‌نویسی دستور‌های حسابی نامیده می‌شوند و جمع و تفریق که در این دستورات استفاده می‌شوند، اپراتورهای حسابی نامیده می‌شوند و اعدادی که در این دستورات مانند ۲، ۳ و x و غیره استفاده می‌شوند، عملوندها نامیده می‌شوند. در ساده‌ترین شکل خود، اینگونه دستورات نتایج عددی تولید می‌کنند.

به همین ترتیب، زبان برنامه‌نویسی اپراتورهای حسابی مختلفی را فراهم می‌کند. جدول زیر چندی از اپراتورهای حسابی مهم موجود در زبان برنامه‌نویسی C را لیست می‌کند. فرض کنید متغیر A مقدار ۱۰ را نگه می‌دارد و متغیر B مقدار ۲۰ را نگه می‌دارد، در این صورت −

اپراتور توضیح مثال
+ دو عملگر را جمع می‌کند A + B به مقدار ۳۰ می‌رسد
- از عملگر دوم، عملگر اول را کم می‌کند A - B به مقدار -۱۰ می‌رسد
* دو عملگر را در هم ضرب می‌کند A * B به مقدار ۲۰۰ می‌رسد
/ مخرج را بر عدد صورت تقسیم می‌کند B / A به مقدار ۲ می‌رسد
% باقی‌مانده تقسیم عدد صحیح را نشان می‌دهد B % A به مقدار ۰ می‌رسد

پایین تر یک مثال ساده از برنامه‌نویسی C برای درک این اپراتورهای ریاضی فوق قرار گرفته است −


#include <stdio.h>

int main() {
   int a, b, c;
   
   a = 10;
   b = 20;
   
   c = a + b;   
   printf( "Value of c = %d\n", c);
   
   c = a - b;   
   printf( "Value of c = %d\n", c);
   
   c = a * b;   
   printf( "Value of c = %d\n", c);
   
   c = b / a;   
   printf( "Value of c = %d\n", c);
   
   c = b % a;   
   printf( "Value of c = %d\n", c);
}

وقتی برنامه بالا اجرا می‌شود، نتیجه زیر را تولید می‌کند −

Value of c = 30
Value of c = -10
Value of c = 200
Value of c = 2
Value of c = 0

اپراتورهای رابطه‌ای

فرض کنید در یک شرایط، دو متغیر را ایجاد و به آن‌ها مقداری اختصاص دهیم، به شکل زیر −

A = 20
B = 10

در اینجا، روشن است که متغیر A ارزش بیشتری نسبت به B دارد. بنابراین، برای نوشتن چنین دستوراتی که دستورند از دستور های رابطه ای، به کمک برخی نمادها نیاز داریم. اگر از زبان برنامه‌نویسی C استفاده کنیم، آنگاه به صورت زیر نوشته می‌شود −

(A > B)

در اینجا از علامت > استفاده کردیم که اپراتور رابطه ای نامیده می‌شود و در ساده‌ترین شکل آن‌ها، نتایج بولین (درست یا غلط) تولید می‌کنند. به طور مشابه، یک زبان برنامه‌نویسی اپراتورهای ارتباطی مختلفی را فراهم می‌کند. جدول زیر چند اپراتور ارتباطی مهم در زبان برنامه‌نویسی سی را نشان می‌دهد. در نظر بگیرید متغیر A برابر ۱۰ و متغیر B برابر ۲۰ است، آنگاه −

اپراتور توضیح مثال
== بررسی می‌کند که آیا مقدار دو عملوند برابر است یا خیر، اگر بله شرط درست می‌شود. (A == B) درست نیست.
!= بررسی می‌کند که آیا مقدار دو عملوند برابر است یا خیر، اگر مقادیر برابر نیستند شرط درست می‌شود. (A != B) درست است.
> بررسی می‌کند که مقدار عملوند چپ از مقدار عملوند راست بیشتر است یا خیر، اگر بله شرط درست می‌شود. (A > B) درست نیست.
< بررسی می‌کند که مقدار عملوند چپ از مقدار عملوند راست کمتر است یا خیر، اگر بله شرط درست می‌شود. (A < B) درست است.
>= بررسی می‌کند که مقدار عملوند چپ از مقدار عملوند راست بیشتر یا برابر است یا خیر، اگر بله شرط درست می‌شود. (A >= B) درست نیست.
<= بررسی می‌کند که مقدار عملوند چپ از مقدار عملوند راست کمتر یا برابر است یا خیر، اگر بله شرط درست می‌شود. (A <= B) درست است.

در اینجا، یک مثال از برنامه‌نویسی به زبان C را که از دستور شرطی if استفاده می‌کند، نشان خواهیم داد. این دستور در درس جداگانه‌ای بحث خواهد شد، اما به طور خلاصه، ما از دستور if برای بررسی یک شرط استفاده می‌کنیم و اگر شرط درست باشد، سپس بدنه دستور if اجرا می‌شود، در غیر این صورت بدنه دستور if نادیده گرفته می‌شود.

#include <stdio.h>

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 10\n");
   }
   
   /* 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 10\n");
   }
   
   /* Here we check if a is less b than or not */
   if( a < b ) {
	
      /* if a is less than b then this body will be executed */
      printf( "a is less than b\n");
   }
   
   /* Here we check whether a and b are not equal */
   if( a != b ) {
	
      /* if a is not equal to b then this body will be executed */
      printf( "a is not equal to b\n");
   }
}

زمانی که برنامه بالا اجرا می‌شود، نتیجه زیر را تولید می‌کند −

a is equal to 10
a is less than b
a is not equal to b

اپراتور‌های منطقی

اپراتور‌های منطقی در هر زبان برنامه‌نویسی بسیار مهم هستند و به ما در تصمیم‌گیری بر اساس شرایط مشخص کمک می‌کنند. فرض کنید ما می‌خواهیم نتیجه دو شرط را ترکیب کنیم، در این صورت اپراتورهای منطقی AND و OR به ما در تولید نتیجه نهایی کمک می‌کنند.

جدول زیر تمام اپراتور‌های منطقی پشتیبانی شده توسط زبان C را نشان می‌دهد. فرض کنید متغیر A مقدار 1 و متغیر B مقدار 0 را نگه می‌دارد، در این صورت −

اپراتور توضیح مثال
&& اپراتور AND منطقی نامیده می‌شود. اگر هر دو عملگر غیر صفر باشند، شرط برقرار می‌شود. (A && B) نادرست است.
|| اپراتور OR منطقی نامیده می‌شود. اگر هر یک از دو عملگر غیر صفر باشد، شرط برقرار می‌شود. (A || B) درست است.
! اپراتور NOT منطقی نامیده می‌شود. برای برعکس کردن حالت منطقی عملگر خود استفاده می‌شود. اگر شرطی درست باشد، اپراتور NOT منطقی، آن را نادرست می‌کند. !(A && B) درست است.

برای درک تمامی اپراتورهای منطقی موجود در زبان برنامه‌نویسی C، مثال زیر را امتحان کنید −

#include <stdio.h>

int main() {
   int a = 1;
   int b = 0;

   if ( a && b ) {
	
      printf("This will never print because condition is false\n" );
   }
   if ( a || b ) {
	
      printf("This will be printed print because condition is true\n" );
   }
   if ( !(a && b) ) {
	
      printf("This will be printed print because condition is true\n" );
   }
}

زمانی که شما برنامه فوق را کامپایل و اجرا می کنید، نتیجه زیر تولید می شود −


This will be printed print because condition is true
This will be printed print because condition is true

اپراتورها در جاوا (Operators in Java)

در زیر، برنامه معادل به زبان جاوا نوشته شده است. زبان برنامه‌نویسی سی و جاوا مجموعه ای همانندی از اپراتورها و دستورات شرطی دارند. در این برنامه دو متغیر a و b ایجاد می‌شود که شباهت زیادی به زبان سی دارند، سپس 10 و 20 به این متغیرها اختصاص داده شده و در نهایت از اپراتورهای حسابی و رابطه‌ای مختلف استفاده خواهیم کرد −

شما می‌توانید سعی کنید این برنامه را اجرا کنید تا خروجی آن را مشاهده کنید که باید با نتیجه حاصل از مثال بالا همان باشد.

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 را ایجاد می‌کند و به هر دو به صورت هم‌زمان مقدار ۱۰ و ۲۰ را نسبت می‌دهد. خوشبختانه، زبان برنامه‌نویسی پایتون و زبان برنامه‌نویسی C مجموعه‌ای تقریباً یکسان از اپراتورها را فراهم می‌کنند. این برنامه دو متغیر a و b را به شکلی مشابه با زبان C ایجاد کرده و در نهایت از اپراتورهای مختلف حسابی و ارتباطی استفاده خواهیم کرد.

برای مشاهده خروجی تولید شده توسط برنامه بالا می‌توانید برنامه زیر را اجرا کنید.

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