English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

تعليمية C++ الأساس

تحكم في التدفق C++

وظائف C++

مجموعات البيانات C++ و 字ائن

هياكل البيانات C++

كلاس C++ وعبارة عن

المراجع في C++

الوراثة في C++

تعليمية STL C++

دليل C++

عناصر التشغيل C++

في هذا الدرس، سنتعلم من خلال الأمثلة أنواع مختلفة من العملاء في C++. في البرمجة، هو رمز يستخدم لتنفيذ العمليات على القيم أو المتغيرات.

العميل هو رمز يستخدم لتنفيذ العمليات على المتغيرات والقيم. على سبيل المثال، + هو عميل للاضافة، و - هو عميل للطرح.

يمكن تصنيف العملاء في C++ إلى ستة أنواع:

  1. عمليات الحساب

  2. عمليات التساوي

  3. عمليات الحساب العلاقية

  4. عمليات الحساب المنطقي

  5. عمليات الحساب الثنائية

  6. عمليات أخرى

1. عمليات حسابية C++

استخدام عمليات الحسابية لتنفيذ العمليات الحسابية على المتغيرات والبيانات. على سبيل المثال،

a + b;

في هذا، يستخدم علامة + لجمع المتغيرين a و b. بالإضافة إلى ذلك، هناك أيضًا عمليات حسابية أخرى في C++.

في هذه الحالة، يستخدم علامة + لجمع المتغيرين a و b. بالإضافة إلى ذلك، هناك أيضًا عمليات حسابية أخرى في C++.

yunsuanfuوصفمثال
+add the two operands togetherA + B سيكون 30
-subtract the second operand from the first operandA - B سيكون -10
*تضرب العاملان معًاA * B سيكون 200
/ناتج القسمة من المشتقB / A سيكون 2
%عمليات التقسيم، الناتج المتبقي بعد التقسيمB % A سيكون 0
++عمليات الزيادة، تزيد القيمة الصحيحة 1A++ سيكون 11
--عمليات التناقص، تقلل القيمة الصحيحة 1A-- سيكون 9

مثال1: عمليات حسابية

#include <iostream>
using namespace std;
int main() {
    int a, b;
    a = 7;
    b = 2;
    // طباعة مجموع a و b
    cout << "a + b = " << (a + b) << endl;
    // طباعة الفرق بين a و b
    cout << "a - b = " << (a - b) << endl;
    // طباعة إنتاج a و b
    cout << "a * b = " << (a * b) << endl;
    // طباعة a مقسوم على b
    cout << "a / b = " << (a / b) << endl;
    //طبع الباقي (الباقي) من a و b
    cout << "a % b = " << (a % b) << endl;
    return 0;
}

النتيجة الصادرة

a + b = 9
a - b = 5
a * b = 14
a / b = 3
a % b = 1

في هذا السياق،حساب الحروف +،- و * يحققون الجمع،الطرح والضرب كما هو متوقع.

/ محرر التقسيم

ملاحظة العمليات في برنامجنا (a / b). / هو محرر التقسيم.

من خلال الأمثلة أعلاه،نرى أن إذا كان هناك تقسيم بين عددين كاملين،فسيحصل لدينا على الناتج الكامل. ولكن إذا كان المبرمج أو المبرمج المشار إليه كانا عددين عشريين،فسيحصل لدينا على نتيجة عشري.

في C++،
7 / 2 = 3
7.0 / 2 = 3.5
7 / 2.0 = 3.5
7.0 / 2.0 = 3.5

ـ المودول %

حساب المودول % يحسب الباقي. عندما يتم تقسيم a (9) على b(4)،الباقي هو1.

ملاحظة:يستطيع % العمل فقط مع الأعداد الصحيحة.

محرر الزيادة والانخفاض

يقدم C++ أيضًا محرر الزيادة والانخفاض: ++ و--.

++ يزيد من قيمة المبرمج1.

-- يقلل من قيمة المبرمج1.

على سبيل المثال،

int num = 5;
//زيادة num بـ 1
++num;

هنا،قيمة num تزيد من القيمة الابتدائية 5 إلى 6.

مثال 2: محرر الزيادة والانخفاض

//عمل محرر الزيادة والانخفاض
#include <iostream>
using namespace std;
int main() {
    int a = 10, b = 100, result_a, result_b;
    //يُزيد من a بـ 1 ويتم تخزين النتيجة في result_a
    result_a = ++a;
    cout << "result_a = " << result_a << endl;
    //يُقلل من b بـ 1 ويتم تخزين النتيجة في result_b
    result_b = --b;
    cout << "result_b = " << result_b << endl;
    return 0;
}

النتيجة الصادرة

result_a = 11
result_b = 99

في البرنامج أعلاه،نستخدم ++ و - ك前置. يمكننا أيضًا استخدام هذه الحروف كخلف.

هذه الحروف تعمل بشكل مختلف عندما تعمل ك前置 وأيضاً كخلف.

2. محرر الأوامر في C++

في C++،يستخدم محرر الأوامر لتحديد القيمة للمتغير. على سبيل المثال،

//نُعطي 5 لـ a
a = 5;

هنا،نحن نعطي المتغير a قيمة 5.

yunsuanfu
مثالالمماثلة
=a = b;a = b;
+=a += b;a = a + b;
-=a -= b;a = a - b;
*=a *= b;a = a * b;
/=a /= b;a = a / b;
%=a %= b;a = a % b;

مثال 2: عمليات الربط

#include <iostream>
using namespace std;
int main() {
    int a, b, temp;
    // يتم تعيين a إلى 2
    a = 2;
    // يتم تعيين b إلى 7
    b = 7;
   // يتم نقل قيمة a إلى temp
   temp = a;                // temp سيكون 2
   cout << "temp = " << temp << endl;
    // يُنقل مجموع a و b إلى a
    a += b;                  // a = a + b
    cout << "a = " << a << endl;
    return 0;
}

النتيجة الصادرة

temp = 2
a = 9

3. عمليات العلاقات في C++

عمليات العلاقات تستخدم لتحقق من علاقة بين عمودين. على سبيل المثال،

// تحقق من whether a أكبر من b
a > b;

في هذا السياق، > هو عمليات العلاقات. يتحقق مما إذا كان a أكبر من b.

إذا كان هذا العلاقةtrue,则返回1;إذا كان هذا العلاقةfalse,则返回0.

افترض أن قيمة المتغير A هي 5، ومتغير B هو 11، فإن:

yunsuanfuوصفمثال
==تحقق من قيمة العمود الأيمن إذا كانت متساوية، إذا كانت كذلك فإن الشرط صحيح.(A == B) ليس صحيحًا.
!=تحقق من قيمة العمود الأيمن إذا كانت متساوية، إذا كانت كذلك فإن الشرط صحيح.(A != B) هو صحيح.
>تحقق من قيمة العمود الأيسر إذا كانت أكبر من قيمة العمود الأيمن، إذا كانت كذلك فإن الشرط صحيح.(A > B) ليس صحيحًا.
<تحقق من قيمة العمود الأيسر إذا كانت أقل من قيمة العمود الأيمن، إذا كانت كذلك فإن الشرط صحيح.(A < B) هو صحيح.
>=تحقق من قيمة العمود الأيسر إذا كانت أكبر أو تساوي قيمة العمود الأيمن، إذا كانت كذلك فإن الشرط صحيح.(A >= B) ليس صحيحًا.
<=تحقق من قيمة العمود الأيسر إذا كانت أقل أو تساوي قيمة العمود الأيمن، إذا كانت كذلك فإن الشرط صحيح.(A <= B) هو صحيح.

مثال 4: عمليات العلاقات

#include <iostream>
using namespace std;
int main() {
    int a, b;
    a = 3;
    b = 5;
    bool result;
    result = (a == b);        // خطأ
    cout << "3 == 5 حساب النتيجة هو " << result << endl;
    result = (a != b);       // صحيح
    cout << "3 != 5 حساب النتيجة هو " << result << endl;
    result = a > b;          // خطأ
    cout << "3 > 5 حساب النتيجة هو " << result << endl;
    result = a < b;          // صحيح
    cout << "3 < 5 计算结果为 " << result << endl;
    result = a >= b; // false
    cout << "3 >= 5 计算结果为 " << result << endl;
    result = a <= b; // true
    cout << "3 <= 5 计算结果为 " << result << endl;
    return 0;
}

النتيجة الصادرة

3 == 5 计算结果为 0
3 != 5 计算结果为 1
3 > 5 计算结果为 0
3 < 5 计算结果为 1
3 >= 5 计算结果为 0
3 <= 5 计算结果为 1

注意:关系运算符用于决策和循环。

4. C ++逻辑运算符

逻辑运算符用于检查表达式是true还是false。如果表达式为true,则返回1;如果表达式为false,则返回0.

p>假设变量 A 的值为 1,变量 B 的值为 0,则:

yunsuanfuوصفمثال
&&称为逻辑与运算符。如果两个操作数都非零,则条件为真。(A && B) 为假。
||称为逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真。(A || B) 为真。
!称为逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假。!(A && B) 为真。

在C ++中,逻辑运算符通常用于决策制定。为了进一步了解逻辑运算符,让我们看下面的示例,

假设,
a = 5
b = 8
假如,
(a > 3) && (b > 5) 计算结果为 true
(a > 3) && (b < 5) 计算结果为 false
(a > 3) || (b > 5) 计算结果为 true
(a > 3) || (b < 5) 计算结果为 true
(a < 3) || (b < 5) 计算结果为 false
!(a == 3) 计算结果为 true
!(a > 3) 计算结果为 false

示例5:逻辑运算符

#include <iostream>
using namespace std;
int main() {
    bool result;
    result = (3 != 5) && (3 < 5); // true
    cout << "(3 != 5) && (3 < 5) 计算结果为 " << result << endl;
    result = (3 == 5) && (3 < 5); // false
    cout << "(3 == 5) && (3 < 5) الناتج هو " << result << endl;
    result = (3 == 5) && (3 > 5); // false
    cout << "(3 == 5) && (3 > 5) الناتج هو " << result << endl;
    result = (3 != 5) || (3 < 5); // true
    cout << "(3 != 5) || (3 < 5) الناتج هو " << result << endl;
    result = (3 != 5) || (3 > 5); // true
    cout << "(3 != 5) || (3 > 5) الناتج هو " << result << endl;
    result = (3 == 5) || (3 > 5); // false
    cout << "(3 == 5) || (3 > 5) الناتج هو " << result << endl;
    result = !(5 == 2); // true
    cout << "!(5 == 2) الناتج هو " << result << endl;
    result = !(5 == 5); // false
    cout << "!(5 == 5) الناتج هو " << result << endl;
    return 0;
}

النتيجة الصادرة

(3 != 5) && (3 < 5) الناتج 1
(3 == 5) && (3 < 5) الناتج 0
(3 == 5) && (3 > 5) الناتج 0
(3 != 5) || (3 < 5) الناتج 1
(3 != 5) || (3 > 5) الناتج 1
(3 == 5) || (3 < 5) الناتج 0
!(5 == 2) الناتج 1
!(5 == 5) الناتج 0

استخدام محولات العمليات المنطقية

  • (3!= 5)&&(3 <5) الناتج 1، لأن الناتجين (3!= 5) و(3 <5) كلاهما 1(true)。

  • (3 == 5)&&(3 <5) الناتج 0، لأن الناتج (3 == 5) هو 0(false)。

  • (3 == 5)&&(3> 5) الناتج 0، لأن الناتجين (3 == 5) و(3> 5) كلاهما 0(false)。

  • (3!= 5)||(3 <5) يتم حسابه كـ 1، لأن العمودين (3!= 5) و(3 <5) كلاهما هو 1 (صحيح).

  • (3!= 5)||(3> 5) يتم حسابه كـ 1، لأن العمود (3!= 5) هو 1 (صحيح).

  • (3 == 5)||(3> 5) يتم حسابه كـ 0، لأن العمودين (3 == 5) و(3> 5) كلاهما هو 0 (خطأ).

  • !(5 == 2) يتم حسابه كـ 1، لأن العمود (5 == 2) هو 0 (خطأ).

  • !(5 == 5) يتم حسابه كـ 0، لأن العمود (5 == 5) هو 1 (صحيح).

5. عناصر الحساب المائلة في C++

في C++، يتم استخدام عناصر الحساب المائلة لتنفيذ عمليات على الأعمدة الفرعية. يمكن استخدامها فقط مع أنواع البيانات char وint.

في الجدول أدناه يتم عرض العناصر الحسابية المائلة التي يدعمها C++. لنفترض أن قيمة المتغير A هي 60، ومتغير B هو 13.

yunsuanfuوصفمثال
&إذا كانت الميزة موجودة في كلا العمودين، فإن عمودي AND تكرر عمودًا واحدًا في النتيجة.(A & B) سيكون 12، أي 0000 1100
|إذا كانت الميزة موجودة في أي عمود، فإن عمودي OR تكرر عمودًا واحدًا في النتيجة.(A | B) سيكون 61، أي 0011 1101
^إذا كانت الميزة موجودة في أحد العمودين ولكنها ليست موجودة في كلاهما، فإن عمودي الـ XOR تكرر عمودًا واحدًا في النتيجة.(A ^ B) سيكون 49، أي 0011 0001
~عنصر الحساب الميزة الثنائية هو عمودي، له تأثير "عكس" في الأعمدة، أي أن 0 يصبح 1، و1 يصبح 0.(~A) سيكون -61، أي 1100 0011، وهو شكل ميزة ثنائية إشارية.
<<عنصر الحساب المائلا الأيسر. يتم تحريك قيمة العمود الأيسر إلى اليمين بناءً على عدد الأعمدة المحدد من العمود الأيمن.A << 2 سيكون 240، أي 1111 0000
>>عنصر الحساب المائلا الأيمن. يتم تحريك قيمة العمود الأيسر إلى اليمين بناءً على عدد الأعمدة المحدد من العمود الأيمن.A >> 2 سيكون 15، أي 0000 1111

للحصول على معلومات إضافية، يرجى زيارةعناصر الحساب المائلة في C++.

بالإضافة إلى الحدثيات التي تم مناقشتها أعلاه، هناك بعض الحدثيات الأخرى مثل sizeof، ?،.،& وما إلى ذلك، التي لا يمكن تصنيفها بشكل واضح إلى نوع واحد أو آخر. سنتعلم في دروس لاحقة المزيد عن هذه الحدثيات.

أحداثيات متنوعة

في الجدول أدناه تم إدراج بعض الأحداثيات المهمة الأخرى التي يدعمها C++.

yunsuanfuوصف
sizeofسعر حجمالحجم المتغير. على سبيل المثال، sizeof(a) سيعود 4، حيث a هو عدد صحيح.
Condition ? X : Ytiaojiang yunsuanfuRang Condition wei zhen ? zhi wei X : feiwei zhi wei Y.
,douhao yunsuanfuhui shunxu jixing yi liexu de yunsuan. Zhengti douhao biandanyu de zhi shi douhao fenbie de liebiao zhong de zuihou yi ge biandanyu de zhi.
.(dian) he ->(zhuanhao)chengyuan yunsuanfuyu yong yin yong lei, jiegou he gongxiangti de chengyuan.
Castqiangzhiduanhuan yunsuanfuba yi zhong shujuleixing zhuanhuan wei qita shujuleixing. Shili, int(2.2000) jiang huanhui 2.
&zhihui yunsuanfu & hui huan bianliang de dizhi. Shili, &a; jiang gei bianliang de shiji dizhi.
*zhihui yunsuanfu * zhinidao yi ge bianliang. Shili, *var; jiang zhinidao bianliang var.

C++ zhong de yunsuanfu youxianji

yunsuanfu de youxianji queding biandanyu zhong xiang de zuhe. Zhe hui yingxiang yi ge biandanyu ruhe jisuan. Certain yunsuanfu you bi gao youxianji, for example, cheng chu yunsuanfu you bi ji jian yunsuanfu gao youxianji.

shili: x = 7 + 3 * 2, zai zhe li, x bei fuzhi wei 13, er bu shi 20, yinwei yunsuanfu * you bi + gao de youxianji, suoyi zuihou jisuan cheng fa 3*2, danhoul jia shang 7.

xiia biang jiang an yunsuanfu youxianji cong gao dao diu lie ge ge yunsuanfu, you you gao youxianji de yunsuanfu zai biang de shangmian, you you diu youxianji de yunsuanfu zai biang de xiamian. Zai biandanyu zhong, you gao youxianji de yunsuanfu hui youxian bei jisuan.

leibie yunsuanfu jiehexing 
houxufu ( ) [] -> . ++ --  cong zuo dao you 
yuan + - ! ~ ++ -- (type)* & sizeof cong you dao zuo 
cheng chu * / % cong zuo dao you 
ji jian + - cong zuo dao you 
yiwei << >> cong zuo dao you 
guanxi < <= > >= cong zuo dao you 
xiangdeng == != cong zuo dao you 
wei yu AND & cong zuo dao you 
wei yixiao XOR ^ cong zuo dao you 
wei huo OR | cong zuo dao you 
lوجi yu AND && cong zuo dao you 
lوجi huo OR || cong zuo dao you 
tiaojiang ?: cong you dao zuo 
fuzhi = += -= *= /= %= =>>= <<= &= ^= |= cong you dao zuo 
douhao , cong zuo dao you 

shili: yunsuanfu youxianji

#include <iostream>
using namespace std;
int main() {
  // xian qiu chu 17 * 6
  int num1 = 5 - 17 * 6;
  // yu num1 duiyiyi de biandanyu
  int num2 = 5 - (17 * 6);
  // yajian bianyiqi xian qiu 5 - 17 de zhi
  int num3 = (5 - 17) * 6;
  cout << "num1 = " << num1 << endl;
  cout << "num2 = " << num2 << endl;
  cout << "num3 = " << num3 << endl;
  return 0;
}

نتائج الإخراج:

num1 = -97
num2 = -97
num3 = -72

التحذير: نظرًا لأن هناك العديد من العناصر في C++ لها مستويات متعددة من الأهمية، يُنصح بشدة باستخدام الأقواس لجعل الكود أكثر وضوحًا.

التوصيات ذات الصلة:مستوى الأهمية والارتباط للعناصر في C++