Chapter 1: Intro to Programming
Slide 01
Connection with Real World
Slide 02
Basic Input and Output
Slide 03
تخيل الكمبيوتر زي الصندوق المقفل، والبرمجة هي الطريقة اللي بنحكي فيها مع هالصندوق.
📺 1. الشاشة (cout):
بدك تفرجي المستخدم "رسالة"؟ بنستخدم cout.
ركز بالأسهم
<<< /span>، كأنهم بوز "مدفع" بوجه الشاشة، بيطلع المعلومة من الكود وبيرميها قدام اليوزر.
مثال: تخيل حالك بتكبس "عرض" بالتلفزيون.
⌨️ 2. الكيبورد (cin):
بدك تشحد معلومة من اليوزر (زي اسمه أو عمره)؟ بنستخدم cin.
الأسهم هون >> بتدلك وين المعلومة رايحة، كأنها بتغرف المعلومة من
المستخدم وبتحطها "جوا" المتغير بالذاكرة.
💡 نصيحة ذهبية: دايماً تذكر "اتجاه السهم" وين بوجهه!
- صادر للشاشة؟
<<< /span>
- وارد من المستخدم؟ >>
Formatted Output
Slide 04
مش بس بنطبع كلمة وخلاص، بنقدر نجمع "مكونات" كتير بنفس السطر كأننا بنعمل "ساندويشة" طباعة!
🧪 دمج الأشياء:
بنقدر نحط نص بين دبل كوتيشن " "، وبعدين نحط سهمين
<<< /span> ونحط قيمة مخبية بمتغير، وبعدين سهمين ونحط عملية حسابية!
⚡ مثال السلايد:
لاحظ بالأمثلة هون، مرة طبعنا herd_size ومرة طبعنا 4 * square_side.
السيستم لحاله بيحسب العملية الحسابية "أول" وبعدين بيطبع النتيجة النهائية لليوزر.
⚠️ تذكر: أي نص بدك ياه ينطبع "حرفياً" لازم يكون بين " ".
أما المتغيرات فبنكتب اسمها زي ما هي بدون كوتيشن عشان السيستم يروح "يجيب قيمتها" من الذاكرة.
Simple Program Structure
Slide 05
الكود اللي قدامك هاض مش مجرد حكي، هاض "خطوات عمل" مترتبة سطر سطر:
1. 📦 السطر 2 (#include): كأنك بتفتح "حقيبة الأدوات" عشان تطلع منها
مفك (الـ cin و الـ cout). بدون هالسطر، الكمبيوتر مش رح يعرف شو يعني جملة طباعة.
2. 🏠 السطر 8 (int main): هاي هي "البيت" اللي الكود بسكن فيه. الكود
دايماً ببلش شغله من هون، وبنفتح "القوس" { عشان نبلش نكتب الأوامر،
وبنسكره } بآخر الكود عشان نقوله "انتهى الدرس".
3. ⚖️ السطر 10 (Defining Variables): عرفنا double. كلمة double معناها "احجزلي مكان
لرقم عشري بالذاكرة". كأنك حجزت "كاسة" فاضية وكتبت عليها اسم "length" عشان تعبيها ماء بعدين.
4. 📝 السطر 11 و 13: جملة طباعة عادية بتقول لليوزر "يا حبيب قلبي
أعطيني قيم".
5. 🧪 السطر 17 و 18: هون السحر! الكمبيوتر حسب المساحة والمحيط بضرب
الطول بالعرض.
Line Breaks and Formatting
Slide 06
لو كتبت ألف جملة
cout، الكمبيوتر غبي شوي! رح يحطهم كلهم بجنب بعض بصورة
وحدة مكركبة. عشان نرتب مخرجاتنا بنستخدم:
🌟 endl (End Line):
هي كلمة "أنيقة". بنستخدمها بآخر المدفع
<< endl;. وظيفتها تنزل سطر و"تنظف" المجرى (يعني بتأكد إن الكلام انطبع فوراً).
🚀 \n (Newline Char):
هي "الحارة" تبعتنا. بنحطها جوا الكوتيشن "...\n". هي أسرع
بالتعامل بس هي مجرد كركتر "بينزل سطر" وما بتنظف شي.
Input Stream Details
Slide 07
لما اليوزر يكتب رقم ع الكيبورد، الكمبيوتر ما بياخذه كـ "رقم" فوراً، بياخذه كأنه "خط من الرموز"
(Character Stream).
🤖 عملية التحويل:
الـ cin شاطرة كثير، هي بتروح بتاخذ هالحروف وبتحاول تحولهم لنوع
الداتا اللي بدك ياها.
لو كنت معرف المتغير إنه int (صحيح)، رح تشيل الفواصل وتحوله لانتجر.
🏃 تدفق البيانات:
تخيل البيانات زي "سيل" نازل من المستخدم ورايح باتجاه الذاكرة. الـ >> هي عبارة عن "محول" بياخد هالسيل وبصبّه بالمتغير الصح.
Using cin Stream
Slide 08
عشان الـ
cin تشتغل معك وتسمع كلامك، لازم ترضيها بـ 3 شغلات:
-
✅ لازم تعطيها مكان فاضي: يعني لازم تكتب اسم متغير (Variable) بعد السهمين.
-
❌ ممنوع تعطيها معادلات: ما ينفع تحكيلها cin >> x + y;! هي وظيفتها "تحط" قيمة، مش "تحسب". احسب برة،
وبعدين خزن.
-
⌨️ الانتظار: الـ cin صبورة،
بتضل معلقة البرنامج وما بتمشي للسطر اللي بعده إلا لما المستخدم يكبس "اينتر" (Enter).
Full Code Example
Slide 09
تخيل حالك أنت "المعالج" (CPU) وماسك ورقة وقلم، وامشي مع هالكود خطوة بخطوة:
1. int value, square; -> "أوكي، فتحت درجين جداد بالذاكرة وسجلت
أسمائهم."
2. cout << "Give me a number..." -> "طبعت السؤال ع الشاشة."
3. cin >> value; -> "وقفت عن الشغل وهيني بستنى اليوزر يكتب..
كتب رقم 5؟ أوكي سجلت الـ 5 بالذاكرة جوا value."
4. square = value * value; -> "مسكت الـ 5 وضربتها بنفسها وصار
عندي 25، حطيت الـ 25 بالدرج الثاني."
5. cout << "You've given " << value; -> "هسا بدي أطلع النتيجة،
جبت قيمة value (اللي هي 5) وصورتها، وجبت الـ 25 وصورتها وطبعتهم."
Common Syntax Errors
Slide 10
هون مجمعلك أكثر أغلاط بتخلي البرنامج "يزعل" منك وما يشتغل:
⚠️ 1. الغلط بالترتيب: cin >> x,
y; دير بالك! بـ C++ ممنوع الفاصلة جوا cin. لازم تكتب السهمين مرتين >> x >> y;.
⚠️ 2. خلط الحابل بالنابل: cin >> "Insert
a number" الكمبيوتر رح يفكرك بدك المستخدم "يغير" جملة "Insert a number" وهاض مستحيل!
دايماً اطبع بـ cout اسأل اليوزر، وبعدين استقبل بـ cin.
⚠️ 3. اتجاه الإعصار: cin << x;
هاي أكبر جريمة بحق البرمجة! السهم بـ cin دايماً بوجهه "لليسار" >>.
Mathematical Operators
Slide 11
الـ
Operator هو ببساطة "الأداة" اللي بنستخدمها عشان نغير قيم الداتا أو
نحسبها.
⚖️ أداة التعيين (=):
هاي أهم وحدة، اسمها Assignment. وظيفتها تاخد اللي على اليمين وتحطه
بالدرج اللي على اليسار.
لما نقول x = 4، إحنا بنقول للكمبيوتر "انسى شو كان بالدرج، وحط فيه
رقم 4 هسا".
🧮 العمليات الحسابية:
الكمبيوتر بيعرف العمليات الأساسية اللي بنعرفها بالمدرسة (الجمع، الطرح، الضرب، القسمة، وباقي
القسمة). بس ركز بالسلايد على شكل الضرب * والقسمة / لأنهم بيختلفوا عن الدفتر.
Multiplication ( * )
Slide 12
بالبرمجة ما بنستخدم حرف الـ
x للضرب، بنستخدم النجمة
*.
💡 ليش لازم ننتبه؟
الكمبيوتر "ذكي" بنوع الأرقام. لو ضربت رقمين صحيحين int (زي 10 و
12)، النتيجة بتكون رقم صحيح (120).
بس لو ضربت أرقام فيها أعشار float (زي 1.25 و 0.5)، النتيجة أكيد رح
تطلع بالفواصل (0.625).
🔥 ملاحظة: الذاكرة بتتعامل مع الـ float بدقة أكبر، فدايماً تأكد إنك معرف المتغير بالنوع الصح قبل ما
تبلش ضرب!
Division ( / )
Slide 13
القسمة بالبرمجة هي السلاش /. ولازم نعرف مصطلحين:
1. Dividend: الرقم اللي "بدنا نقسمه" (بكون فوق أو بالبدابة
باليسار).
2. Divisor: الرقم اللي "بنقسم عليه" (بكون تحت أو باليمين).
بالأمثلة اللي بالسلايد:
- 10 / 5 بتعطينا 2. (سهلة
وعادية).
- 1.0 / 2.0 بتعطينا 0.5.
Integer vs Float Division
Slide 14
ركز معي هون عشان ما تنجلط بالمستقبل! ليش
10 / 3 بتطلع
3 مش
3.33؟
🔢 1. قسمة الأنتجر (Integer Division):
لما تقسم رقم صحيح على رقم صحيح، الكمبيوتر "بيكب" الفواصل بالزبالة! هو بس بيعطيك "كم حبة كاملة"
بالناتج. 10 كم 3 فيها؟ فيها 3، والفرطة بتروح.
📈 2. كيف أجيب الفواصل؟
عشان الكمبيوتر يحترم الفواصل، لازم "واحد منهم على الأقل" يكون فيه نقطة .0.
لو كتبت 10.0 / 3 فوراً بيعطيك 3.3333.
💡 الخلاصة: صحيح ÷ صحيح = صحيح (بدون فواصل).
Division by Zero
Slide 15
بالرياضيات وبالبرمجة، القسمة على صفر هي "نهاية العالم".
💥 شو بصير؟
لو البرنامج حاول يقسم رقم على صفر، رح يعطيك إشي اسمه Exception
(استثناء أو خطأ فادح). البرنامج غالباً رح "يعلق" أو "يسكر" بوجهك.
♾️ قيمة inf:
ببعض الحالات مع أرقام الـ float، ممكن البرنامج يفرجي كلمة inf (يعني Infinity أو ما لا نهاية)، وهاي معناها إنك وقعت بمشكلة
حسابية لازم تحلها.
Addition ( + )
Slide 16
إشارة الزائد + بتشتغل زي ما تعودت بالمدرسة تماماً.
بتجمع أرقام صحيحة int مع بعض، أو float
مع بعض.
الجميل بالموضوع إنك بتقدر تجمع "صحيح" مع "عشري" والناتج بكون "عشري" عشان ما نخسر الدقة.
مثال: 100 + 2 = 102.
Subtraction ( - )
Slide 17
إشارة الناقص - إلها طريقتين بالشغل:
1. Binary Operator: لما تكون قاعدة بين رقمين عشان تطرحهم (زي x - y).
2. Unary Operator: لما تقعد "قبل" الرقم عشان تقول إنه هاض الرقم
"سالب" (زي -5).
السلايد بفرجيك إنه 100 - 200 بتعطي -100. يعني الكمبيوتر بيعرف الأرقام السالبة وما عنده مشكلة معها.
Unary Minus
Slide 18
هون مسميها
Unary Minus. وظيفتها إنها تقلب إشارة الرقم.
لو عندك متغير
i قيمته
100، وحكيت
j = -i، الـ
j رح تصير قيمتها
-100.
🤔 سؤال ذكي: لو كان الـ i أصلاً -100، وحطيت قبله ناقص ثانية، شو بصير؟
الجواب: بصير موجب +100 (ناقص الناقص موجب، زي ما
بنعرف!).
Unary Plus
Slide 19
هاي الـ Unary Plus موجودة "إكمال ديكور" بالأغلب!
وظيفتها إنها تخلي إشارة الرقم زي ما هي. يعني لو حكيت j = +i، الـ j رح تاخد نفس قيمة i بالتمام والكمال ولا
بتغير شي.
بـ C++ مسموح تستخدمها بس نادراً ما حدا بيعمل هيك.
Remainder / Modulo ( % )
Slide 20
إشارة الـ
% مش معناها نسبة مئوية بالبرمجة! معناها "شو بضل معي فرطة بعد
القسمة؟".
🍎 مثال التفاح:
معك 13 تفاحة، وبدك توزعهم على 5 أشخاص بالتساوي.
كل شخص رح ياخد 2 تفاحة (هاي هي القسمة العادية).
كم تفاحة بتضل معك بالمنسف ما توزعت؟ بضل 3 تفاحات.
إذن 13 % 5 = 3.
⚠️ شرط قاسي: الموديلو %
بيشتغل فقط مع الأرقام الصحيحة int. ممنوع تستخدمه مع الفواصل!
Modulo Operations Master
Slide 21
السلايد بفرجيك حالات غريبة بقع فيها الطلاب دايماً:
📏 1. صغير % كبير = الصغير نفسه:
لما تقول 3 % 10، الجواب دايماً الرقم الأول (3). ليش؟
لأنه الـ 3 ما بتقدر تقسمها على 10 ولا حبة كاملة، فبتضل كلها "فرطة" بالجايبة!
🔄 2. الدوران:
ناتج الموديلو دايماً بكون بين 0 وبين المقسوم عليه - 1.
مستحيل x % 5 تعطيك 5 أو أكثر.
➖ 3. السوالب:
لو الرقم الأول سالب، النتيجة بتكون سالبة غالباً. -4 % 10 = -4.
Operator Priorities
Slide 22
بالبرمجة مش كل الأدوات الها نفس القوة. فيه إشي اسمه
Priority
(الأولوية).
🥊 الضرب vs الجمع:
لو كتبت للكمبيوتر 2 + 3 * 5، الكمبيوتر مش رح يحسب بالترتيب من
اليسار!
الضرب "أقوى" من الجمع، فبيروح بيحسب 3 * 5 = 15 أول، وبعدين بجمع
الـ 2. عشان هيك الناتج طلع 17.
⚠️ انتبه: لو كنت بدك تجمع أول، لازم تستخدم "الواسطة"
(الأقواس)، ورح نحكي عنها كمان شوي.
Operator Bindings
Slide 23
طيب لو عندي
2 + 3 + 5؟ هون الجمع والجمع الهم نفس القوة تماماً.
⬅️ من اليسار لليمين (Left-to-right):
أغلب العمليات بـ C++ بتمشي بالترتيب من اليسار لليمين لما تتساوى القوة.
بجمع 2 + 3 = 5، وبعدين بجمع الـ 5
الثانية للناتج.
🔥 فائدة: هاي القاعدة بنسميها Left-sided
binding، وهي اللي بتضمن إنه الحسابات تطلع منطقية ومرتبة.
Hierarchy of Priorities
Slide 24
هاض الجدول لازم تحفظه زي اسمك، مرتب من الأقوى للأضعف:
🥇 المركز الأول (Unary):
العمليات اللي بتشتغل على رقم واحد بس (زي ++، --، أو إشارة السالب - قبل الرقم). هذول
ملوك الساحة!
🥈 المركز الثاني (Multiplicative):
الضرب *، القسمة /، وباقي القسمة
%.
🥉 المركز الثالث (Additive):
الجمع + والطرح -.
Priority Quiz
Slide 25
خلينا نحل اللغز اللي بالسلايد: 2 * 3 % 5
1. الضرب والموديلو الهم نفس القوة (المركز الثاني).
2. بنمشي من اليسار: 2 * 3 = 6.
3. هسا بنعمل الموديلو: 6 % 5. الـ 6 كم 5 فيها؟ فيها وحدة وبضل 1.
شفت كيف؟ ترتيب بسيط بخليك تتحكم بكل أرقام البرنامج.
Using Parentheses
Slide 26
لو بدك تكسر كل القوانين وتخلي الجمع يحسب قبل الضرب، الحل هو
Parentheses
().
🛡️ الحصانة:
أي إشي بين أقواس بتم حسابه أول إشي، مهما كانت العملية اللي جواته ضعيفة.
🧩 القواعد المعقدة:
تقدر تمسك معادلة طويلة زي اللي بالسلايد وتتحكم بمين يبدأ ومين يخلص بس بالأقواس. ميزة إضافية
للأقواس هي إنها بتخلي الكود تبعك "مقروء" وواضح لأي مبرمج ثاني بشوفه.
Arithmetic Expressions
Slide 27
بالـ C++ عنا نوعين أساسيين للتعبيرات (Expressions):
1. Integral Expressions: لما تكون كل الأرقام "صحيحة" (int). النتيجة
دايماً رح تطلع رقم صحيح (حتى لو فيه قسمة، رح يكب الفواصل!).
مثال: 2 + 3 * 5 = 17.
2. Floating-point Expressions: لما تكون كل الأرقام "عشرية"
(float/double). النتيجة أكيد رح تطلع فيها فواصل دقيقة.
مثال: 12.8 * 17.5 = 224.0.
Mixed Expressions
Slide 28
شو بصير لو عندي رقم
int ورقم
float بنفس
المعادلة؟
الكمبيوتر بشتغل بنظام
"الأقوى بسحب الأضعف". الـ
float أدق وأقوى من الـ
int، فبيروح "يحول"
الـ int لـ float مؤقتاً عشان يحسب بدقة.
📉 القاعدة: المدموج (Mixed) دايماً بطلع Floating-point.
لو جمعت 2 + 3.5، الكمبيوتر بشوفها 2.0 +
3.5 والناتج 5.5.
Explicit Type Conversion
Slide 29
أحياناً إنت كمبرمج بدك "تجبر" الكمبيوتر يغير نوع الداتا. بنستخدم أداة جبارة اسمها
static_cast.
🛠️ كيف بنستخدمها؟
بتكتب static_cast<newType>(expression).
مثلاً لو عندك 7.9 وبدك إياه يصير int، بتحكي له: static_cast<int>(7.9)، النتيجة رح تطلع 7 (كب الأعشار كب!).
💡 ليش مفيدة؟
عشان نصلح "فخ القسمة". لو قلت static_cast<double>(15) / 2،
الـ 15 بتصير 15.0، فبتطلع النتيجة 7.5 بدل ما تطلع 7.
Static Cast Examples
Slide 30
شوف الكود هاض وركز بالنتائج:
-
static_cast<int>('A'): الحرف 'A' مخزن بالكمبيوتر كرقم. لما
نحوله لـ int، بعطينا رقم
65 (كود الـ ASCII تبعه).
-
static_cast<float>(x) / y: هون جبرنا العملية تصير عشرية عشان
تطلع الفواصل صح.
🧩 لغز السلايد: المعادلة الطويلة اللي تحت ناتجها 23.3. جرب تحلها بيدك (أقواس، ثم قسمة، ثم موديلو، ثم جمع)!
Division Techniques
Slide 31
السلايد بفرجيك 3 طرق لنفس الغرض:
1. static_cast: الطريقة الحديثة والآمنة بـ C++.
2. C-Style cast: تكتب (float) 33. هي
طريقة قديمة بس لسا شغالة.
بالأمثلة: 33 / 2 بتعطي 16، بس
الـ casting بيخليها 16.5. دايماً تذكر هالموضوع بالامتحان!
Implicit Conversion
Slide 32
الكمبيوتر ما بيعرف شو يعني حرف 'X'. هو بيعرف رقم الحرف في جدول الـ
ASCII.
🔄 التحويل الضمني:
لما تخزن حرف 'X' داخل متغير int، الـ C++ لحالها بتحول الحرف لرقمه
(88).
💬 المثال:
لو طبعنا المتغير كـ char بطلع 'X'، ولو طبعناه كـ int بطلع 88.
هاي بتسمح لنا نعمل عمليات حسابية على الحروف (زي تشفير الكلمات أو ترتيبها أبجدياً).
Increment Operator ( ++ )
Slide 33
بالبرمجة دايماً بنحتاج نعد، وأبسط عملية عد هي إنك تزيد 1.
بدل ما تكتب
Counter = Counter + 1 (جملة طويلة ومملة)، الـ C++ أعطتنا
اختصار فخم هو
Counter++.
✅ النتيجة: قيمة المتغير بتزيد 1 فوراً في الذاكرة.
Decrement Operator ( -- )
Slide 34
عكس الزيادة هو النقصان. لو بدك تنزل بالعد تنازلياً.
بدل
Counter = Counter - 1، بنستخدم
Counter--.
📌 ملاحظة: هاض الاختصار بيوفر وقت وبخلي الكود شكله "أنظف" وأسهل
للقراءة.
Inc/Dec Example
Slide 35
شوف هاض الكود وحاول تتوقع النتيجة:
إذا كانت x = 5، ونفذنا جملة طباعة فيها x++، رح يطبع 5 وبعدين يزيدها (بتصير 6 بالذاكرة).
بينما لو كانت ++x، رح يزيدها أول (تصير 6) وبعدين يطبع الـ 6.
السلايد بفرجيك: كيف العمليات الحسابية المعقدة بتعتمد على "متى" صارت
الزيادة. ركز بالفرق بين ناتج num3 و num5.
Pre vs Post Operators
Slide 36
هاد الموضوع هو "حقل ألغام" للطلاب الجدد. الزيادة والنقصان إلهما مكانين:
1. Postfix (بعد): زي x++. استخدم
القيمة الحالية، "وبس تخلص الجملة" زيدها.
2. Prefix (قبل): زي ++x. زيد القيمة
"فوراً"، وبعدين استخدم القيمة الجديدة بالجملة.
Postfix Explanation
Slide 37
تخيل إنك بتوزع هدايا. الـ
Postfix بقولك: "وزع الهدية اللي معك هسا،
وبعد ما تخلص روح على المستودع جيب وحدة زيادة".
المثال:
i = 1; j = i++;
هون j رح تاخد قيمة i الأصلية
(1). وبعد ما تخلص الجملة، i بتصير 2.
Prefix Explanation
Slide 38
الـ
Prefix بقولك: "وقف! روح جيب الهدية الجديدة من المستودع أول، وبعدين
وزعها".
المثال:
i = 1; j = ++i;
هون i بتصير 2 "أول إشي"، وبعدين j بتاخد القيمة الجديدة (2). هيك الاثنين صاروا 2 بنفس الوقت.
Execution Step-by-Step
Slide 39
هون السلايد بجمع لك كل اللي تعلمته بمعادلات معقدة شوي.
الجملة الأولى: j = 2 * i++
إذا كانت i=4، رح نضرب 2 * 4 أول (النتيجة 8 لـ j)، وبعدين i تصير 5.
الجملة الثانية: i = 2 * --j
هون بننقص j أول (بتصير 7)، وبعدين نضرب 2 * 7 (النتيجة 14 لـ i).
Final Priorities
Slide 40
هسا ضفنا "ملوك جدد" على قمة الجدول:
🥇 الأقوى دايماً: الـ ++ والـ
-- (سواء قبل أو بعد) والـ Unary (+ و -).
🥈 بعدهم: الضرب والقسمة والموديلو.
🥉 آخر إشي: الجمع والطرح العاديين.
🏅 الأخير: إشارة اليساوي = (هاي
دايماً آخر وحدة بتنفذ).
Shortcut Operators
Slide 41
المبرمجين بحبوا يختصروا الوقت. لو بدك تزيد 10 على متغير، بدل ما تكتب:
counter = counter + 10
بتقدر تكتب بكل بساطة:
counter += 10
هاي القاعدة بتطبق على كل العمليات: +=, -=, *=, /=, %=.
بتاخد الرقم اللي باليسار، بتعمل عليه العملية، وبترجع النتيجة لنفس المتغير.
Shortcut Examples
Slide 42
شوف الجدول هاد لتفهم القوة:
- i += 2 * j هي أصلاً i = i + (2 * j).
- Var /= 2 هي أصلاً Var = Var / 2.
- j -= (i + Var) هي أصلاً j = j - (i +
Var).
تذكر: الاختصار بيعمل العملية اللي على اليمين "كاملة" أول، وبعدين
بطبقها على المتغير.
Combined Shortcut Quiz
Slide 43
معطى: x=5, y=10, z=2.
المطلوب: z *= x++ + --y;
1. أولاً: نحسب الطرف اليمين. --y
بتصير 9 فوراً. x++ بنستخدمها كـ 5 هسا (وبعدين بتصير 6).
2. ثانياً: 5 + 9 = 14.
3. ثالثاً: z *= 14 (يعني 2 * 14) =
28.
*نتائج الطباعة النهائية:* x=6, y=9, z=28. (هيك إنت صرت وحش
برمجياً!).
Characters and Literals
Slide 44
شو الفرق بين
Character و
'A'؟
-
Literal: هي القيمة الثابتة اللي بتشوفها بتعرفها فوراً (زي 'A' أو
100).
-
Variable Name: هو الاسم المكتوب (زي اسم المتغير Character).
⚠️ دايماً الحروف بـ C++ بتكون بين سينجل كوت ' '.
Escape Characters ( \ )
Slide 45
أحياناً بدنا نطبع إشارات خاصة الكمبيوتر بفكرها "أوامر". كيف نخبره إنه هاي "نص عادي"؟
بنستخدم الـ Backslash \. هي بنسميها Escape
Character لأنها بتخلينا "نهرب" من المعنى البرمجي للحرف ونرجعه لمعناه النصي.
مثال: إذا بدك تطبع باك سلاش نفسها، لازم تكتب '\\'.
Escape Sequences Table
Slide 46
هذول أهم رموز رح تستخدمهم في حياتك:
- \n: سطر جديد (Newline).
- \t: مسافة الأفقية (Tab) - بترك فراغ مرتب.
- \b: مسح للي قبل (Backspace).
- \\: طباعة إشارة الباك سلاش.
- \' و \": عشان تطبع الكوتس داخل
النص بدون ما تسكر جملة الطباعة.
Escape Sequences Example
Slide 47
شوف كيف جمل الـ
cout بتستخدم الرموز عشان ترتب المخرج:
📌 الهيدر: طباعة أرقام للتوضيح.
📌 الـ Tab (\t): بتلاحظ إن كلمة "Hi" زاحت مسافة كبيرة لأننا
حطينا \t.
📌 الـ Newline (\n): خلت الكلمات تنزل تحت بعض بدل ما تكون سطر
واحد طويل وممل.
Advanced Formatting High-five
Slide 48
هون السلايد بفرجيك حركات قوية:
- الـ \r (Carriage Return): بترجع المؤشر لبداية السطر "وتمسح" اللي
كان موجود! شوف كيف كلمة "Marhaba" غطت على اللي قبلها.
- الـ \": كيف طبعنا علامات التنصيص حولين كلمة "C++" داخل النص.
❌ خطأ شائع: إنك تنسى تحط باك سلاش قبل الكوت، وهيك البرنامج رح
يعطيك "Error" فوراً.
Special Escape Codes
Slide 49
وأخيراً، أغرب رمزين في الـ C++:
1.
📣 \a (Alarm): لو طبعت هاد الحرف، الكمبيوتر رح يطلّع صوت
"بيب!" (BEEP) من السماعة الداخلية. هاد بنستخدمه لتنبيه المستخدم.
2.
🚫 \0 (Null): هاد رمز "نهاية النص". الكمبيوتر بيفهم منه إنه
الجملة خلصت هون. هو رمز "شفاف" ما بظهر على الشاشة بس هو أهم إشي للكمبيوتر عشان يعرف حدود الذاكرة.
🎉 مبروك! هيك ختمت الشابتر الأول بالكامل 🎉