تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
2.4 العمليات Operations والمشغلات operators
#1
[صورة مرفقة: 128383135-210777607283724-8238622407463275907-n.jpg]
رحلة في عالم البرمجة: إتقان أساسيات البرمجة وتطبيقاتها باستخدام لغة C++
 
https://www.youtube.com/playlist?list=PLmOrGO9IfJEcDyuBLOX5AzAqaKxmAKHrq



Plain text


# الفصل 0 : تمهيد # الفصل 1 : # الفصل 2 :   
[صورة مرفقة: mqdefault.jpg]
 
https://www.youtube.com/watch?v=D07jMlhc-5Y


Plain text


2.4 العمليات Operations والمشغلات operators

بالإضافة إلى تحديد القيم values التي يمكن تخزينها في variable، فإن نوع المتغير type of a variable يحدد أيضًا العمليات التي يمكن تطبيقها عليه وما معانيها.
على سبيل المثال:

int age = -1;
c in في (أكبر من مرتن) age;
(أكبر من مرتن) يقرأ عددًا صحيحًا في age.
string name;
c في (أكبر من مرتن) name;
(أكبر من مرتن) يقرأ الstring في name
int a2 = age+2;
الجمع يضيف أعداد صحيحة int
string n2 = name + " Jr. ";
الconcatenates بين الstrings
int a3 = age-2;
الطرح يطرح أعداد صحيحة int
string n3 = name - " Jr. ";
خطأ: - ليس معرفًا defined لstrings
بواسطة "خطأ" نعني أن الcompiler سيُرفض برنامجًا يحاول طرح الstrings.
الcompiler يعرف بدقة أي الoperations يمكن تطبيقها على كل variable وبالتالي يمكنه منع العديد من الأخطاء.


ومع ذلك، لا يعرف الcompiler أي العمليات تعتبر منطقية بالنسبة لك لأي قيمة، لذا سيقبل بسرور العمليات التي تنتج نتائج قد تبدو سخيفة بالنسبة لك. على سبيل المثال:
age = −100؛
قد يكون من الواضح بالنسبة لك أنه لا يمكن أن يكون لديك عمر سالب (لماذا لا؟) ولكن لم يخبر أحد المترجم، لذا سينتج الكود لتلك التعريفة.
فيما يلي جدول للعوامل المفيدة لبعض الأنواع الشائعة والمفيدة:

[صورة مرفقة: t1.png]

ها هي أمثلة الشفرة لكل عملية مذكورة في الجدول:

التخصيص (=):

int x = 5;
char ch = 'A';
bool flag = true;
double pi = 3.14;
std::string str = "مرحبًا";
Plain text


الجمع (+):
int sum = 5 + 3;
double result = 3.5 + 2.7;
Plain text


الدمج (للسلاسل) (+):
std::string str1 = "مرحبًا";
std::string str2 = "العالم";
std::string combined = str1 + str2;
Plain text


الطرح (-):
int difference = 10 - 4;
double result = 5.6 - 2.3;
Plain text


الضرب (*):
int product = 3 * 4;
double result = 2.5 * 1.5;
Plain text


القسمة (/):
int quotient = 10 / 2;
double result = 5.0 / 2.0;
Plain text


الباقي (المودولو) (%):
int remainder = 10 % 3;
Plain text


هذه الأمثلة توضح استخدام المشغلات المختلفة مع أنواع بيانات مختلفة في لغة البرمجة C++.


[صورة مرفقة: t2.png]


زيادة بواحد:
int x = 5;
x++; // زيادة قيمة x بواحد
Plain text


نقص بواحد:
int x = 5;
x--; // نقص قيمة x بواحد
Plain text


زيادة بمقدار n:
int x = 5;
int n = 3;
x += n; // زيادة قيمة x بمقدار n
Plain text


إضافة إلى النهاية (للنصوص):
std::string s = "مرحبا";
s += " العالم"; // إضافة " العالم" إلى نهاية s
Plain text


نقص بمقدار n:
int x = 5;
int n = 3;
x -= n; // نقص قيمة x بمقدار n
Plain text


ضرب وتعيين:
int x = 5;
x *= 2; // ضرب x في 2
Plain text


قسمة وتعيين:
int x = 10;
x /= 2; // قسمة x على 2
Plain text


الباقي وتعيين:
int x = 10;
x %= 3; // الباقي من قسمة x على 3
Plain text


قراءة من التيار إلى متغير:
int x;
std::cin >> x; // قراءة عدد صحيح من مدخل البيانات القياسي إلى x
Plain text


كتابة متغير إلى التيار:
int x = 5;
std::cout << x; // كتابة قيمة x إلى مخرج البيانات القياسي
Plain text


يساوي:
int x = 5, y = 7;
if (x == y) {
// x يساوي y
}
Plain text


غير متساوي:
int x = 5, y = 7;
if (x != y) {
// x لا يساوي y
}
Plain text


أكبر من:
int x = 5, y = 7;
if (x > y) {
// x أكبر من y
}
Plain text


أكبر من أو يساوي:
int x = 5, y = 7;
if (x >= y) {
// x أكبر من أو يساوي y
}
Plain text


أصغر من:
int x = 5, y = 7;
if (x < y) {
// x أصغر من y
}
Plain text


أصغر من أو يساوي:
int x = 5, y = 7;
if (x <= y) {
// x أصغر من أو يساوي y
}
Plain text





جرّب هذا
قم بتشغيل هذا البرنامج الصغير. ثم، قم بتعديله ليقرأ قيمة صحيحة بدلاً من قيمة عشرية.
كما يمكنك "تمرين" بعض العمليات الأخرى، مثل عامل الباقي (%). لاحظ أنه للأعداد الصحيحة، القسمة العادية تقوم بالتقسيم الصحيح والباقي يعطي الباقي (المودولو)، لذا 5/2 يعطي 2 (وليس 2.5 أو 3) و 5%2 يعطي 1. تضمن تعريفات الضرب، القسمة والباقي للأعداد الصحيحة أنه لنا للأعداد الصحيحة الموجبة a و b، a/b * b + a%b == a.

#include <iostream>

int main() {
int num1, num2;

// Prompting the user to enter two integers
std::cout << "Enter the first integer: ";
std::cin >> num1;

std::cout << "Enter the second integer: ";
std::cin >> num2;

// Performing arithmetic operations
int sum = num1 + num2;
int difference = num1 - num2;
int product = num1 * num2;
int quotient = num1 / num2;
int remainder = num1 % num2; // Modulo operator %

// Displaying the results
std::cout << "Sum: " << sum << std::endl;
std::cout << "Difference: " << difference << std::endl;
std::cout << "Product: " << product << std::endl;
std::cout << "Quotient: " << quotient << std::endl;
std::cout << "Remainder: " << remainder << std::endl;

return 0;
}

Plain text



السلاسل لديها عدد أقل من العمليات، لكن لديها الكثير من العمليات المسماة. ومع ذلك، العمليات التي تمتلكها يمكن استخدامها بشكل تقليدي. على سبيل المثال:
int main() // اقرأ الاسم الأول والثاني
{
cout << "الرجاء إدخال الاسم الأول والثاني\n";
string first;
string second;
cin >> first >> second; // اقرأ سلسلتين
string name = first + ' ' + second; // ارتبط السلاسل
cout << "مرحبًا، " << name << '\n';
}
Plain text


بالنسبة للسلاسل، + يعني الاتصال؛ أي أنه عندما تكون s1 وs2 سلاسل، s1+s2 هو سلسلة يتم فيها اتباع الأحرف من s1 بالأحرف من s2. على سبيل المثال، إذا كان لدى s1 القيمة "مرحبا" وكانت لدى s2 القيمة "العالم"، فسيكون لدى s1+s2 القيمة "مرحباالعالم". المقارنة بين السلاسل مفيدة بشكل خاص:
int main() // اقرأ وقارن الأسماء
{
cout << "الرجاء إدخال اسمين\n";
string first;
string second;
cin >> first >> second; // اقرأ سلسلتين
if (first == second)
cout << "هذا هو نفس الاسم مرتين\n";
if (first < second)
cout << first << " قبل ألفبائيًا " << second <<'\n';
if (first > second)
cout << first << " بعد ألفبائيًا " << second <<'\n';
}
Plain text


هنا، استخدمنا جملة شرطية if، التي سيتم شرحها بالتفصيل في الدروس القادمة، لتحديد الإجراءات استنادًا إلى الشروط.


 
dance


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 2 ) ضيف كريم