05-05-2024, 02:53 PM
رحلة في عالم البرمجة: إتقان أساسيات البرمجة وتطبيقاتها باستخدام لغة C++
# الفصل 0 : تمهيد
العَمْلِيَاتُ المُرَكَّبَةُ للـ operators
تزايد المتغير أي Incrementing a variable (أي إضافة 1 إليه) شائع جدًا في البرامج بحيث توفر C++ بناءً خاصًا special syntax لذلك .
على سبيل المثال:
تعني
هناك العديد من الطرق الشائعة الأخرى لتغيير قيمة متغير بناءً على قيمته الحالية.
على سبيل المثال، قد نرغب في إضافة 7 إليه، أو طرح 9 منه، أو ضربه في 2.
تدعم مثل هذه العمليات أيضًا مباشرة بواسطة C++.
على سبيل المثال:
بشكل عام، لأي اي عملية حسابيه ما بين اثنين من الvariables
a
العملية
b
تساوي
b
oper، a oper= b تعني a = a oper b.
في البداية، تعطينا تلك القاعدة مشغلات
علامة جمع مع يساوي
علامة طرح مع يساوي
علامة الضرب مع يساوي
علامة قسمه مع يساوي
وعلامة باقي القسمه مع يساوي
+=، −=، ∗=، /=، و %=.
وهذا يوفر علامة مركبة مضغوطة تعكس فكرتنا مباشرة.
على سبيل المثال، في العديد من مجالات التطبيق، يُشار إلى
علامة الضرب مع يساوي
علامة قسمه مع يساوي
∗= و /=
باسم "التدرج" اي scaling.
تمرين عملي:
لنفكر في مثال اكتشاف الكلمات المتكررة المتجاورة .
يمكننا تحسين ذلك عن طريق تقديم فكرة عن مكان الكلمة المتكررة في الstring.
إحدى الاختلافات البسيطة لتلك الفكرة هي ببساطة تعد الكلمات وإخراج العدد للكلمة المتكررة:
نبدأ عداد الكلمات لدينا بالقيمة 0.
في كل مرة نرى فيها كلمة، نزيد تلك العداد:
بهذه الطريقة، تصبح الكلمة الأولى رقم 1،
والكلمة التالية رقم 2، وهكذا.
كنا قادرين على تحقيق نفس الغرض عن طريق القول
أو حتى
لكن ++number_of_words أقصر ويعبر عن فكرة الزيادة مباشرة.
لاحظ كيف يتشابه هذا البرنامج مع البرنامج السابق.
بوضوح، ما فعلناه هو أننا أخذنا البرنامج السابق وقمنا بتعديله قليلاً ليخدم غرضنا الجديد.
هذه تقنية شائعة جدًا:
عندما نحتاج إلى حل مشكلة، نبحث عن مشكلة مماثلة ونستخدم حلنا لذلك بتعديل مناسب.
لا تبدأ من الصفر ما لم يكن ذلك ضروريًا حقًا.
استخدام الإصدار السابق لبرنامج كقاعدة للتعديل يوفر في كثير من الأحيان الكثير من الوقت، ونستفيد من جهد كبير دخل في البرنامج الأصلي.
https://www.youtube.com/playlist?list=PLmOrGO9IfJEcDyuBLOX5AzAqaKxmAKHrq
# الفصل 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.5 الAssignment والInitialization
- 2.6 تمرين عملي - اكتشاف الكلمات المتكررة
- 2.7 العمليات المركبة للoperators
https://www.youtube.com/watch?v=-HDrUeFcr08
العَمْلِيَاتُ المُرَكَّبَةُ للـ operators
تزايد المتغير أي Incrementing a variable (أي إضافة 1 إليه) شائع جدًا في البرامج بحيث توفر C++ بناءً خاصًا special syntax لذلك .
على سبيل المثال:
++counter
تعني
counter = counter + 1
هناك العديد من الطرق الشائعة الأخرى لتغيير قيمة متغير بناءً على قيمته الحالية.
على سبيل المثال، قد نرغب في إضافة 7 إليه، أو طرح 9 منه، أو ضربه في 2.
تدعم مثل هذه العمليات أيضًا مباشرة بواسطة C++.
على سبيل المثال:
a += 7; // تعني a = a+7
b −= 9; // تعني b = b-9
c ∗= 2; // تعني c = c*2
بشكل عام، لأي اي عملية حسابيه ما بين اثنين من الvariables
a
العملية
b
تساوي
b
oper، a oper= b تعني a = a oper b.
في البداية، تعطينا تلك القاعدة مشغلات
علامة جمع مع يساوي
علامة طرح مع يساوي
علامة الضرب مع يساوي
علامة قسمه مع يساوي
وعلامة باقي القسمه مع يساوي
+=، −=، ∗=، /=، و %=.
وهذا يوفر علامة مركبة مضغوطة تعكس فكرتنا مباشرة.
على سبيل المثال، في العديد من مجالات التطبيق، يُشار إلى
علامة الضرب مع يساوي
علامة قسمه مع يساوي
∗= و /=
باسم "التدرج" اي scaling.
تمرين عملي:
لنفكر في مثال اكتشاف الكلمات المتكررة المتجاورة .
يمكننا تحسين ذلك عن طريق تقديم فكرة عن مكان الكلمة المتكررة في الstring.
إحدى الاختلافات البسيطة لتلك الفكرة هي ببساطة تعد الكلمات وإخراج العدد للكلمة المتكررة:
int number_of_words = 0;
string previous; // الكلمة السابقة؛ مبادلة بقيمة ""string current;
while (cin >> current) {
++number_of_words; // زيادة عدد الكلمات
if (previous == current)
cout << "word number " << number_of_words << " repeated: " << current << '\n';
previous = current;
}
نبدأ عداد الكلمات لدينا بالقيمة 0.
في كل مرة نرى فيها كلمة، نزيد تلك العداد:
++number_of_words;
بهذه الطريقة، تصبح الكلمة الأولى رقم 1،
والكلمة التالية رقم 2، وهكذا.
كنا قادرين على تحقيق نفس الغرض عن طريق القول
number_of_words += 1;
أو حتى
number_of_words = number_of_words+1;
لكن ++number_of_words أقصر ويعبر عن فكرة الزيادة مباشرة.
لاحظ كيف يتشابه هذا البرنامج مع البرنامج السابق.
بوضوح، ما فعلناه هو أننا أخذنا البرنامج السابق وقمنا بتعديله قليلاً ليخدم غرضنا الجديد.
هذه تقنية شائعة جدًا:
عندما نحتاج إلى حل مشكلة، نبحث عن مشكلة مماثلة ونستخدم حلنا لذلك بتعديل مناسب.
لا تبدأ من الصفر ما لم يكن ذلك ضروريًا حقًا.
استخدام الإصدار السابق لبرنامج كقاعدة للتعديل يوفر في كثير من الأحيان الكثير من الوقت، ونستفيد من جهد كبير دخل في البرنامج الأصلي.