04-05-2024, 03:45 PM
![[صورة مرفقة: 128383135-210777607283724-8238622407463275907-n.jpg]](https://i.ibb.co/pK7ByQd/128383135-210777607283724-8238622407463275907-n.jpg)
# الفصل 0 : تمهيد
- 0.1 تعلم البرمجة من خلال التطبيق: بناء أكواد جميلة وفعالة
- 0.2 صقل مهاراتك في البرمجة: التمارين والاختبارات والمشاريع المشتركة
- 0.3 بعد هذه السلسلة: رحلتك نحو إتقان البرمجة
- 0.4 رحلتك في البرمجة: نصائح وتشجيع
- 1.0 مقدمة الفصل 1 : مرحبا بالعالم !
- 1.1 البرامج - Programs
- 1.2 تشغيل و Compile برنامج C++ الأول الخاص بك على نظام التشغيل Windows
- G00d Premium F0nt 4 c0ding M0n0L1sa
- How to instalԼ EmꞴarcadero ЯAD StuĐio 12.1 AtԨens ArꞆhitect V€rsion 29.0.51961.7529 U
- TutoЯial Ԩow instalԼ and activaԷe CLioЍ
- 1.3 ما هو ال preprocess ؟ وما هو ال assemble ؟ وما هو ال compile ؟ وما هو ال linking؟
- 1.4 البرنامج C++ الأول الكلاسيكي - تفسير دقيق بناء ركيزه البرمجه
- 1.5 التجميع - Compilation - فهم التعامل مع Compiler
- 1.6 استكشاف الlinking من الداخل بشكل عميق مع النوعين static و dynamic
- 1.7 مراجعة وتمارين الفصل الأول
- 2.1 الإدخال- input
- 2.2 المتغيرات - variables
- 2.3 المدخلات والنوع - Input and type
- 2.4 العمليات Operations والمشغلات operators
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]](https://i.ibb.co/fX7CKnR/t1.png)
ها هي أمثلة الشفرة لكل عملية مذكورة في الجدول:
التخصيص (=):
الجمع (+):
الدمج (للسلاسل) (+):
الطرح (-):
الضرب (*):
القسمة (/):
الباقي (المودولو) (%):
هذه الأمثلة توضح استخدام المشغلات المختلفة مع أنواع بيانات مختلفة في لغة البرمجة C++.
![[صورة مرفقة: t2.png]](https://i.ibb.co/K6H1mNh/t2.png)
زيادة بواحد:
نقص بواحد:
زيادة بمقدار n:
إضافة إلى النهاية (للنصوص):
نقص بمقدار n:
ضرب وتعيين:
قسمة وتعيين:
الباقي وتعيين:
قراءة من التيار إلى متغير:
كتابة متغير إلى التيار:
يساوي:
غير متساوي:
أكبر من:
أكبر من أو يساوي:
أصغر من:
أصغر من أو يساوي:
جرّب هذا
قم بتشغيل هذا البرنامج الصغير. ثم، قم بتعديله ليقرأ قيمة صحيحة بدلاً من قيمة عشرية.
كما يمكنك "تمرين" بعض العمليات الأخرى، مثل عامل الباقي (%). لاحظ أنه للأعداد الصحيحة، القسمة العادية تقوم بالتقسيم الصحيح والباقي يعطي الباقي (المودولو)، لذا 5/2 يعطي 2 (وليس 2.5 أو 3) و 5%2 يعطي 1. تضمن تعريفات الضرب، القسمة والباقي للأعداد الصحيحة أنه لنا للأعداد الصحيحة الموجبة a و b، a/b * b + a%b == a.
السلاسل لديها عدد أقل من العمليات، لكن لديها الكثير من العمليات المسماة. ومع ذلك، العمليات التي تمتلكها يمكن استخدامها بشكل تقليدي. على سبيل المثال:
بالنسبة للسلاسل، + يعني الاتصال؛ أي أنه عندما تكون s1 وs2 سلاسل، s1+s2 هو سلسلة يتم فيها اتباع الأحرف من s1 بالأحرف من s2. على سبيل المثال، إذا كان لدى s1 القيمة "مرحبا" وكانت لدى s2 القيمة "العالم"، فسيكون لدى s1+s2 القيمة "مرحباالعالم". المقارنة بين السلاسل مفيدة بشكل خاص:
هنا، استخدمنا جملة شرطية if، التي سيتم شرحها بالتفصيل في الدروس القادمة، لتحديد الإجراءات استنادًا إلى الشروط.
