03-05-2024, 04:23 PM
رحلة في عالم البرمجة: إتقان أساسيات البرمجة وتطبيقاتها باستخدام لغة C++
# الفصل 0 : تمهيد
الoperation اكبر من مرتين للإدخال ("احصل على") حساسة للنوع؛ أي أنها تقرأ وفقًا لنوع الvariable الذي تقوم بقراءته. على سبيل المثال:
لذلك، إذا كتبت R333T فسيقوم الoperation بقراءة R333T إلى first_name، و 99 إلى age، وإنتاج هذا الناتج:
لماذا لن يقرأ (الكل) R333T 99 إلى first_name؟
لأن قراءة الstrings بموجب التوصيف ينتهي بما يُسمى بالمسافات الفارغة whitespace، أي المسافة space والسطر الجديد newline وحرف التبويب tab characters.
وإلا، فإن الwhitespace بشكل افتراضي تُتجاهل بواسطة اكبر من مرتين.
على سبيل المثال، يمكنك إضافة العديد من المسافات الفارغة ما تشاء قبل عدد ليتم قراءته سيتخطاها ببساطة ويقرأ العدد.
كما يمكننا كتابة العديد من الvalues في single output statement،
يمكننا قراءة العديد من القيم في عبارة إدخال واحدة.
لاحظ أن الoperation اصغر من مرتين حساس للنوع، تماما كما هو الoperation اكبر من مرتين،
لذلك يمكننا output الvariable الصحيح int age وكذلك الstring variable first_name والstring literals "مرحبًا، " و "(عمرك " و ")\n".
إذا كتبت R333T، فسترى شيئًا قد يكون مفاجئًا حتى تفكر فيه. الinput الخاطئ
99 R333T
سيتم قراءة 99 إلى first_name لأنه، في النهاية، 22 هو سلسلة من الأحرف sequence of characters ، وتُنهى بالمسافات الفارغة. من ناحية أخرى، R333T ليست عددًا صحيحًا، لذا لن يتم قراءته.
سيكون الإخراج 99 وقيمة 0 age.
لماذا؟
لأنك لم تنجح في قراءة قيمة فيه، لذا أبقى على قيمته 0.
السلسلة المُقرأة باستخدام الoperation اكبر من مرتين (افتراضيًا) تُنهى بالمسافات الفارغة؛
أي، تقرأ كلمة واحدة. لكن في بعض الأحيان، نريد قراءة أكثر من كلمة واحدة. هناك بالطبع العديد من الطرق للقيام بذلك. على سبيل المثال، يمكننا قراءة اسم يتكون من كلمتين بهذه الطريقة:
لقد استخدمنا الoperation اكبر من مرتين.
مرتين ببساطة، مرة لكل اسم.
عندما نريد كتابة الأسماء إلى الoutput، يجب علينا إدراج مسافة بينهما.
لاحظ غياب الinitializers للسلسلتين المستخدمتين كأهداف للإدخال targets for input (first و second). افتراضيًا، يتم تهيئة السلسلة لتكون سلسلة فارغة، أي "".
جرب هذا
قم بتشغيل مثال "الاسم والعمر". ثم قم بتعديله لكتابة العمر بعدد الأشهر: اقرأ الإدخال بالسنوات واضرب (باستخدام عامل الضرب) في 12.
اقرأ العمر إلى double للسماح للأطفال الذين قد يكونون فخورين جدًا بأنهم في الخامسة والنصف بدلاً من مجرد خمس سنوات.
Solution:
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
https://www.youtube.com/watch?v=OScB2I6pZh0
الoperation اكبر من مرتين للإدخال ("احصل على") حساسة للنوع؛ أي أنها تقرأ وفقًا لنوع الvariable الذي تقوم بقراءته. على سبيل المثال:
int main() // اقرأ الاسم والعمر
{
cout << "الرجاء إدخال الاسم الأول والعمر\n";
string first_name = "???"; // متغير سلسلة ("؟؟؟" تشير إلى "لا أعرف الاسم")
int age = -1; // متغير صحيح (-1 يعني "لا أعرف العمر")
cin >> first_name >> age; // اقرأ سلسلة متبوعة بعدد صحيح
cout << "مرحبًا، " << first_name << " (عمرك " << age << ")\n";
}
لذلك، إذا كتبت R333T فسيقوم الoperation بقراءة R333T إلى first_name، و 99 إلى age، وإنتاج هذا الناتج:
مرحبًا، R333T (عمرك 99)
لماذا لن يقرأ (الكل) R333T 99 إلى first_name؟
لأن قراءة الstrings بموجب التوصيف ينتهي بما يُسمى بالمسافات الفارغة whitespace، أي المسافة space والسطر الجديد newline وحرف التبويب tab characters.
وإلا، فإن الwhitespace بشكل افتراضي تُتجاهل بواسطة اكبر من مرتين.
على سبيل المثال، يمكنك إضافة العديد من المسافات الفارغة ما تشاء قبل عدد ليتم قراءته سيتخطاها ببساطة ويقرأ العدد.
كما يمكننا كتابة العديد من الvalues في single output statement،
يمكننا قراءة العديد من القيم في عبارة إدخال واحدة.
لاحظ أن الoperation اصغر من مرتين حساس للنوع، تماما كما هو الoperation اكبر من مرتين،
لذلك يمكننا output الvariable الصحيح int age وكذلك الstring variable first_name والstring literals "مرحبًا، " و "(عمرك " و ")\n".
إذا كتبت R333T، فسترى شيئًا قد يكون مفاجئًا حتى تفكر فيه. الinput الخاطئ
99 R333T
مرحبًا، 99 (عمر -1)
سيتم قراءة 99 إلى first_name لأنه، في النهاية، 22 هو سلسلة من الأحرف sequence of characters ، وتُنهى بالمسافات الفارغة. من ناحية أخرى، R333T ليست عددًا صحيحًا، لذا لن يتم قراءته.
سيكون الإخراج 99 وقيمة 0 age.
لماذا؟
لأنك لم تنجح في قراءة قيمة فيه، لذا أبقى على قيمته 0.
السلسلة المُقرأة باستخدام الoperation اكبر من مرتين (افتراضيًا) تُنهى بالمسافات الفارغة؛
أي، تقرأ كلمة واحدة. لكن في بعض الأحيان، نريد قراءة أكثر من كلمة واحدة. هناك بالطبع العديد من الطرق للقيام بذلك. على سبيل المثال، يمكننا قراءة اسم يتكون من كلمتين بهذه الطريقة:
int main()
{
cout << "الرجاء إدخال الاسم الأول والثاني\n";
string first;
string second;
cin >> first >> second; // strings قراءة سلسلتين
cout << "مرحبًا، " << first << " " << second << '\n';
}
لقد استخدمنا الoperation اكبر من مرتين.
مرتين ببساطة، مرة لكل اسم.
عندما نريد كتابة الأسماء إلى الoutput، يجب علينا إدراج مسافة بينهما.
لاحظ غياب الinitializers للسلسلتين المستخدمتين كأهداف للإدخال targets for input (first و second). افتراضيًا، يتم تهيئة السلسلة لتكون سلسلة فارغة، أي "".
جرب هذا
قم بتشغيل مثال "الاسم والعمر". ثم قم بتعديله لكتابة العمر بعدد الأشهر: اقرأ الإدخال بالسنوات واضرب (باستخدام عامل الضرب) في 12.
اقرأ العمر إلى double للسماح للأطفال الذين قد يكونون فخورين جدًا بأنهم في الخامسة والنصف بدلاً من مجرد خمس سنوات.
Solution:
#include <iostream>
using namespace std;
int main() {
cout << "Please enter your first name and age\n";
string first_name;
double age;
cin >> first_name >> age;
int age_in_months = static_cast<int>(age * 12); // Convert age to months
cout << "Hello, " << first_name << " (age " << age_in_months << " months)\n";
return 0;
}
قال الخضر لموسى: ما نقص علمي وعلمك من علم الله إلا كنقرة هذا العصفور في البحر.
R333T | Full-Stack & DevOps Engineer | Reverse Engineering Enthusiast
Password always: AT4RE
All files shared with AT4RE Community: https://t.me/+92mxXRqUvYNhOTM0
You may view threads: 3892, 3966 & 3972
Password always: AT4RE
All files shared with AT4RE Community: https://t.me/+92mxXRqUvYNhOTM0
You may view threads: 3892, 3966 & 3972