0% found this document useful (0 votes)
35 views15 pages

S03 - Operators in C#

Computer program 4

Uploaded by

Arya Vafaeeshoar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
35 views15 pages

S03 - Operators in C#

Computer program 4

Uploaded by

Arya Vafaeeshoar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 15

Computer Programming

Computer Programming

‫کامپیوتر‬
‫نویسی کامپیوتر‬ ‫برنامه‬
‫برنامه نویسی‬
‫انواع عملگرها در زبان سی شارپ (‪:)C#‬‬
‫عملگرها در زبان برنامه نویسی سی شارپ (‪ )C#‬به دستههای زیر تقسیم میشوند‪:‬‬

‫❖ عملگرهای ریاضی‪ ،‬حسابی (‪)Mathematical/Arithmetic Operators‬‬

‫❖ عملگرهای مقایسهای‪ ،‬قیاسی‪ ،‬رابطهای (‪)Comparison/Relational Operators‬‬

‫❖ عملگرهای منطقی (‪)Logical Operators‬‬

‫❖ عملگرهای بیتی (‪)Bitwise Operators‬‬

‫❖ عملگرهای انتساب (‪)Assignment Operators‬‬

‫❖ عملگرهای متفرقه‬

‫‪Dr. Mehrdad Nikbakht‬‬ ‫‪2‬‬


‫عملگرها از نظر تعداد عملوند در زبان برنامه نویسی سی شارپ (‪ )C#‬به انواع زیر تقسیم میشوند‪:‬‬

‫‪Unary‬‬ ‫❑ عملگرهایی که به یک عملوند نیاز دارند‪.‬‬

‫‪Binary‬‬ ‫❑ عملگرهایی که به دو عملوند نیاز دارند‪.‬‬

‫‪Ternary‬‬ ‫❑ عملگرهایی که به سه عملوند نیاز دارند‪.‬‬

‫‪Dr. Mehrdad Nikbakht‬‬ ‫‪3‬‬


‫)‪(Mathematical/Arithmetic Operators‬‬ ‫عملگرهای ریاضی‪ ،‬حسابی‬

‫نوع‬ ‫مثال‬ ‫توضیحات‬ ‫عملیات‬ ‫عملگر‬

‫‪Binary‬‬ ‫‪A + B = 18‬‬ ‫برای جمع دو عملوند (مقدار) استفاده میشود‪.‬‬ ‫جمع‬ ‫‪+‬‬
‫مقدار عملوند چپ (اوّل) را از مقدار عملوند راست‬
‫‪Binary‬‬ ‫‪A – B = -12‬‬ ‫(دوّم) کم میکند‪.‬‬
‫تفریق‬ ‫–‬

‫‪Binary‬‬ ‫‪A * B = 45‬‬ ‫برای ضرب دو عملوند (مقدار) استفاده میشود‪.‬‬ ‫ضرب‬ ‫*‬
‫مقدار عملوند چپ (اوّل) را بر مقدار عملوند راست‬
‫‪Binary‬‬ ‫‪B/A=5‬‬ ‫(دوّم) تقسیم میکند‪.‬‬
‫تقسیم‬ ‫‪/‬‬

‫مقدار عملوند چپ (اوّل) را بر مقدار عملوند راست‬


‫‪Binary‬‬ ‫‪B%A= 0‬‬ ‫(دوّم) تقسیم میکند و باقیمانده را بر میگرداند‪.‬‬
‫باقیمانده‬ ‫‪%‬‬

‫‪Unary‬‬ ‫‪B++ = 16‬‬ ‫یک واحد به مقدار قبلی اضافه میکند‪.‬‬ ‫یک واحد افزایش‬ ‫‪++‬‬
‫‪Unary‬‬ ‫‪A- - = 2‬‬ ‫یک واحد از مقدار قبلی کم میکند‪.‬‬ ‫یک واحد کاهش‬ ‫‪--‬‬

‫‪Dr. Mehrdad Nikbakht‬‬ ‫‪4‬‬


‫)‪(Comparison/Relational Operators‬‬ ‫عملگرهای مقایسهای‪ ،‬قیاسی‪ ،‬رابطهای‬
‫نوع‬ ‫مثال‬ ‫توضیحات‬ ‫عملیات‬ ‫عملگر‬

‫‪(A == B) is‬‬ ‫تساوی دو‬


‫‪Binary‬‬ ‫اگر مقادیر دو عملوند با هم برابر باشد‪ ،‬شرط درست است‪.‬‬
‫مقدار‬ ‫==‬
‫‪not True‬‬
‫عدم‬
‫‪(A != B) is‬‬
‫‪Binary‬‬ ‫اگر مقادیر دو عملوند با هم برابر نباشد‪ ،‬شرط درست است‪.‬‬ ‫تساوی دو‬ ‫=!‬
‫‪True‬‬ ‫مقدار‬

‫‪(A > B) is not‬‬ ‫اگر مقدار عملوند سمت چپ (اوّل) از مقدار عملوند سمت راست‬
‫‪Binary‬‬ ‫بزرگتر‬ ‫>‬
‫‪True‬‬ ‫(دوّم) بزرگتر باشد‪ ،‬شرط درست است‪.‬‬

‫‪(A < B) is‬‬ ‫اگر مقدار عملوند سمت چپ (اوّل) از مقدار عملوند سمت راست‬
‫‪Binary‬‬ ‫(دوّم) کوچکتر باشد‪ ،‬شرط درست است‪.‬‬
‫کوچکتر‬ ‫>‬
‫‪True‬‬
‫‪(A >= B) is‬‬ ‫اگر مقدار عملوند سمت چپ (اوّل) بزرگتر یا مساوی مقدار عملوند‬ ‫بزرگتر‬
‫‪Binary‬‬ ‫سمت راست (دوّم) باشد‪ ،‬شرط درست است‪.‬‬ ‫مساوی‬ ‫=<‬
‫‪not True‬‬
‫‪(A <= B) is‬‬ ‫کوچکتر اگر مقدار عملوند سمت چپ (اوّل) کوچکتر یا مساوی مقدار عملوند‬
‫‪Binary‬‬ ‫سمت راست (دوّم) باشد‪ ،‬شرط درست است‪.‬‬ ‫مساوی‬ ‫=>‬
‫‪True‬‬
‫‪Dr. Mehrdad Nikbakht‬‬ ‫‪5‬‬
‫عملگر && (‪ AND‬منطقی)‬
‫در عملگر && اگر مقدار هر دو عملوند برابر ‪ True‬باشد نتیجه ‪ True‬و اگر برابر ‪ True‬نباشند نتیجه ‪ False‬را بر میگرداند‪.‬‬
‫در زیر جدول درستی مربوط به عملگر ‪ AND‬در زبان ‪ C#‬را مشاهده میکنید‪:‬‬

‫‪A‬‬ ‫‪B‬‬ ‫‪A&&B‬‬


‫‪True‬‬ ‫‪True‬‬ ‫‪True‬‬
‫‪True‬‬ ‫‪False‬‬ ‫‪False‬‬
‫‪False‬‬ ‫‪True‬‬ ‫‪False‬‬
‫‪False‬‬ ‫‪False‬‬ ‫‪False‬‬

‫‪Dr. Mehrdad Nikbakht‬‬ ‫‪6‬‬


‫عملگر || (‪ OR‬منطقی)‬
‫در عملگر || اگر مقدار یکی از عملوندها برابر ‪ True‬باشد نتیجه ‪ True‬و اگر مقدار هر دو عملوندها ‪ False‬باشد نتیجه‬
‫‪ False‬را بر میگرداند‪ .‬در زیر جدول درستی مربوط به عملگر ‪ OR‬در زبان ‪ C#‬را مشاهده میکنید‪:‬‬

‫‪A‬‬ ‫‪B‬‬ ‫‪A || B‬‬


‫‪True‬‬ ‫‪True‬‬ ‫‪True‬‬
‫‪True‬‬ ‫‪False‬‬ ‫‪True‬‬
‫‪False‬‬ ‫‪True‬‬ ‫‪True‬‬
‫‪False‬‬ ‫‪False‬‬ ‫‪False‬‬

‫‪Dr. Mehrdad Nikbakht‬‬ ‫‪7‬‬


‫عملگر ! (‪ NOT‬منطقی)‬
‫در عملگر ! اگر مقدار عملوند برابر ‪ True‬باشد نتیجه ‪ False‬و اگر مقدار عملوند ‪ False‬باشد نتیجه ‪ True‬را بر میگرداند‪.‬‬
‫در زیر جدول درستی مربوط به عملگر ‪ NOT‬در زبان ‪ C#‬را مشاهده میکنید‪:‬‬

‫‪A‬‬ ‫‪!A‬‬
‫‪True‬‬ ‫‪False‬‬
‫‪False‬‬ ‫‪True‬‬

‫‪Dr. Mehrdad Nikbakht‬‬ ‫‪8‬‬


‫ منطقی‬OR ‫ و‬AND

Dr. Mehrdad Nikbakht 9


‫)‪(Logical Operators‬‬ ‫عملگرهای منطقی‬

‫نوع‬ ‫مثال‬ ‫توضیحات‬ ‫عملیات‬ ‫عملگر‬

‫)‪(A && B‬‬ ‫اگر هر دو عملوند ‪ True‬باشند نتیجه شرط نیز ‪True‬‬ ‫‪AND‬‬
‫‪Binary‬‬ ‫خواهد بود‪.‬‬ ‫(و منطقی)‬ ‫&&‬
‫‪is False‬‬
‫‪(A || B) is‬‬ ‫اگر فقط یکی از دو عملوند ‪ True‬باشند نتیجه شرط نیز‬ ‫‪OR‬‬
‫‪Binary‬‬ ‫‪ True‬خواهد بود‪.‬‬ ‫(یا منطقی)‬ ‫||‬
‫‪True‬‬
‫)‪!(A && B‬‬ ‫وضعیت منطقی عملوند را برعکس میکند (یعنی‬ ‫‪NOT‬‬
‫‪Unary‬‬ ‫اگر ‪ True‬باشد‪ ،‬آن را ‪ False‬میکند و برعکس)‪.‬‬ ‫(نقیض منطقی)‬ ‫!‬
‫‪is True‬‬

‫‪Dr. Mehrdad Nikbakht‬‬ ‫‪10‬‬


‫بیتی )‪ :(Bitwise Operators‬از عملگرهای بیتی برای ایجاد تغییر در بیتها استفاده میکنیم‪.‬‬ ‫عملگرهای‬
‫نوع‬ ‫مثال‬ ‫توضیحات‬ ‫عملیات‬ ‫عملگر‬

‫‪(A & B) = 8‬‬ ‫اگر هر دو عملوند ‪ True‬باشند‪ ،‬یک بیت در نتیجه کپی‬ ‫‪AND‬‬
‫‪Binary‬‬ ‫که برابر است با ‪00001000‬‬ ‫میکند‪.‬‬ ‫(باینری)‬ ‫&‬

‫‪(A | B) = 58‬‬ ‫اگر یکی از عملوندها ‪ True‬باشند‪ ،‬یک بیت در نتیجه‬ ‫‪OR‬‬
‫‪Binary‬‬ ‫که برابر است با ‪00111010‬‬ ‫کپی میکند‪.‬‬ ‫(باینری)‬ ‫|‬

‫اگر مقدار هر دو عملوند یکسان نباشد (یعنی هر دو‬


‫‪(A ^ B) = 50‬‬ ‫‪XOR‬‬
‫‪Binary‬‬ ‫که برابر است با ‪00110010‬‬
‫‪ True‬یا هر دو ‪ False‬نباشند)‪ ،‬یک بیت در نتیجه‬
‫(باینری)‬ ‫^‬
‫کپی میکند‪.‬‬

‫‪(~A ) = 215‬‬ ‫عملگر یگانی نقیض میباشد و کارش این است که هر‬
‫‪Unary‬‬ ‫که برابر است با ‪11010111‬‬ ‫جا ‪ ۱‬بود ‪ ۰‬و هر جا ‪ ۰‬بود ‪ ۱‬میگذارد‪.‬‬
‫مکمل یکه باینری‬ ‫~‬

‫‪A << 2 = 160‬‬ ‫مقدار عملوند چپ را به مقدار بیتهای تعیین شده در‬
‫‪Unary‬‬ ‫که برابر است با ‪10100000‬‬ ‫عملوند راست‪ ،‬به چپ شیفت میدهد‪.‬‬
‫شیفت به چپ دهنده بیتها‬ ‫>>‬

‫‪A >> 2 = 10‬‬ ‫مقدار عملوند چپ را به مقدار بیتهای تعیین شده در‬
‫‪Unary‬‬ ‫که برابر است با ‪00001010‬‬ ‫عملوند راست‪ ،‬به راست شیفت میدهد‪.‬‬
‫شیفت به راست دهنده بیتها‬ ‫<<‬

‫‪Dr. Mehrdad Nikbakht‬‬ ‫‪11‬‬


‫انتساب )‪(Assignment Operators‬‬ ‫عملگرهای‬
‫مثال‬ ‫توضیحات‬ ‫عملگر‬
‫‪C=A+B‬‬
‫نتیجه جمع دو متغیر ‪ A‬و ‪ B‬را در متغیر ‪C‬‬ ‫مقدار عملوند سمت راست را در عملوند سمت چپ قرار میدهد‪.‬‬ ‫=‬
‫قرار میدهد‪.‬‬
‫‪C += A‬‬ ‫مقدار عملوند سمت راست را با مقدار عملوند سمت چپ جمع کرده و نتیجه را در عملوند‬
‫معادل ‪C = C + A‬‬ ‫سمت چپ قرار میدهد‪.‬‬ ‫=‪+‬‬
‫‪C -= A‬‬ ‫مقدار عملوند سمت راست را از مقدار عملوند سمت چپ کم کرده و نتیجه را در عملوند‬
‫معادل ‪C = C – A‬‬ ‫سمت چپ قرار میدهد‪.‬‬ ‫=‪-‬‬
‫‪C *= A‬‬ ‫مقدار عملوند سمت راست را در مقدار عملوند سمت چپ ضرب کرده و نتیجه را در‬
‫معادل ‪C = C * A‬‬ ‫عملوند سمت چپ قرار میدهد‪.‬‬ ‫=*‬
‫‪C /= A‬‬ ‫مقدار عملوند سمت چپ را بر مقدار عملوند سمت راست تقسیم کرده و نتیجه را در‬
‫معادل ‪C = C / A‬‬ ‫عملوند سمت چپ قرار میدهد‪.‬‬ ‫=‪/‬‬
‫‪C %= A‬‬
‫معادل ‪C = C % A‬‬
‫مقدار دو عملوند را بر هم تقسیم کرده و باقیمانده را در عملوند سمت چپ قرار میدهد‪.‬‬ ‫=‪%‬‬

‫‪Dr. Mehrdad Nikbakht‬‬ ‫‪12‬‬


‫انتساب )‪(Assignment Operators‬‬ ‫عملگرهای‬

‫مثال‬ ‫توضیحات‬ ‫عملگر‬


‫‪C <<= 2‬‬
‫معادل ‪C = C << 2‬‬
‫عملگر انتساب شیفت به چپ‬ ‫=>>‬
‫‪C >>= 2‬‬
‫معادل ‪C = C >> 2‬‬
‫عملگر انتساب شیفت به راست‬ ‫=<<‬
‫‪C &= 2‬‬
‫معادل ‪C = C & 2‬‬
‫عملگر ‪ AND‬بیتی‬ ‫=&‬
‫‪C ^= 2‬‬
‫معادل ‪C = C ^ 2‬‬
‫عملگر انتساب ‪ exclusive OR‬بیتی‬ ‫=^‬
‫‪C |= 2‬‬
‫معادل ‪C = C | 2‬‬
‫عملگر انتساب ‪ inclusive OR‬بیتی‬ ‫=|‬

‫‪Dr. Mehrdad Nikbakht‬‬ ‫‪13‬‬


‫عملگرهای متفرقه‪ :‬گاهی برخی عملگرها در زبان سی شارپ به صورت تابع یا متد مورد استفاده قرار میگیرند که‬
‫مطالعهی آنها خالی از لطف نیست‪ .‬برخی از آنها عبارتند از‪:‬‬

‫مثال‬ ‫توضیحات‬ ‫عملیات‬ ‫عملگر‬


‫دستیابی به سایز یک‬
‫)‪sizeof(int‬‬ ‫اندازه نوع داده را بر میگرداند‪.‬‬ ‫)(‪sizeof‬‬
‫داده‬
‫دستیابی به نوع یک‬
‫)‪typeof(StreamReader‬‬ ‫نوع یک کالس را بر میگرداند‪.‬‬ ‫)(‪typeof‬‬
‫داده‬

‫‪&A‬‬ ‫دستیابی به آدرس‬


‫آدرس واقعی یک متغیر را بر میگرداند‪.‬‬
‫آدرس یک متغیر را بر میگرداند‪.‬‬
‫یک متغیر‬ ‫&‬
‫‪*A‬‬
‫یک اشارهگر به نام ‘‪ ’A‬به متغیر ‪ A‬ایجاد میکند‪.‬‬
‫اشاره به یک متغیر‬ ‫اشاره به یک متغیر‬ ‫*‬

‫اگر شرط درست باشد ؟ مقدار ‪ :X‬در غیر این صورت ‪Y‬‬ ‫عبارت شرطی‬ ‫‪If‬‬ ‫‪?:‬‬

‫‪If(Ford is Car) // checks if Ford is an object of the‬‬ ‫مشخص کردن اینکه مشخص میکند که یک شیء از یک نوع خاص است‬
‫یک شیء شامل یک‬ ‫‪is‬‬
‫‪Car class‬‬ ‫یا خیر‪.‬‬ ‫نوع خاص است یا نه‬

‫‪Dr. Mehrdad Nikbakht‬‬ ‫‪14‬‬


‫ترتیب‬ ‫عملگرها‬ ‫دستهبندی‬
‫تقدم‬
‫از چپ به راست‬ ‫‪– – ++‬‬ ‫پسوندی‬
‫عملگرها در‬
‫از چپ به راست‬ ‫– – ‪+ – ! ~ ++‬‬ ‫یگانی‬
‫زبان ‪C#‬‬
‫از چپ به راست‬ ‫*‪%/‬‬ ‫ضربی‬

‫از چپ به راست‬ ‫‪–+‬‬ ‫افزودنی‬

‫از چپ به راست‬ ‫<< >>‬ ‫شیفت‬

‫از چپ به راست‬ ‫< = < > =>‬ ‫مقایسهای‬

‫از چپ به راست‬ ‫== =!‬ ‫برابری‬

‫از چپ به راست‬ ‫&‬ ‫‪ AND‬بیتی‬

‫از چپ به راست‬ ‫^‬ ‫‪ XOR‬بیتی‬

‫از چپ به راست‬ ‫|‬ ‫‪ OR‬بیتی‬

‫از چپ به راست‬ ‫&&‬ ‫‪ AND‬منطقی‬

‫از چپ به راست‬ ‫||‬ ‫‪ OR‬منطقی‬

‫از چپ به راست‬ ‫‪?:‬‬ ‫شرطی‬

‫از چپ به راست‬ ‫= =‪|= ^= &= >>= <<= %= /= *= -= +‬‬ ‫انتسابی‬

‫از چپ به راست‬ ‫‪,‬‬ ‫کاما‬

‫‪Dr. Mehrdad Nikbakht‬‬ ‫‪15‬‬

You might also like