البرمجة و الذكاء الإصطناعي
11.8K subscribers
528 photos
10 videos
497 links
عالم البرمجة و الذكاء الإصطناعي
........
🛡💸📚💻
for ads :
@pro9tech
للإعلانات :
https://telega.io/c/artificial_AI_intelligence
Download Telegram
🧿 1. مقدمة إلى لغة C++ | الدرس الأول

📍 ما هي لغة C++؟

- C++ هي لغة برمجة عالية المستوى (High-Level Programming Language) تم تطويرها كامتداد للغة C.

- تُعتبر لغة C++ لغة برمجة متعددة الاستخدامات (General-Purpose Language)، مما يعني أنها يمكن أن تُستخدم لتطوير مجموعة واسعة من التطبيقات، بدءًا من البرامج البسيطة وحتى الأنظمة المعقدة.

- تدعم C++ أنماطًا متعددة من البرمجة، بما في ذلك:

■ البرمجة الإجرائية (Procedural Programming): التركيز على الإجراءات أو الدوال.
■البرمجة الكائنية (Object-Oriented Programming - OOP): التركيز على الكائنات والتفاعل بينها.
■ البرمجة العامة (Generic Programming): استخدام القوالب (Templates) لكتابة كود عام يعمل مع أنواع بيانات مختلفة.

📍 تاريخ اللغة وتطورها؟

- 1980:
بدأ تطوير لغة C++ على يد بيارن ستروستروب (Bjarne Stroustrup) في مختبرات بل (Bell Labs).

- 1983:
تم إطلاق الاسم C++، حيث يشير الرمز ++ إلى عملية الزيادة في لغة C، مما يعكس أن C++ هي تطوير للغة C.

- 1985:
تم إصدار أول نسخة تجارية من لغة C++.

- 1998:
تم اعتماد أول معيار قياسي للغة C++ (C++98) من قبل منظمة ISO.

- 2011:
تم إصدار معيار C++11 الذي أضاف العديد من الميزات الجديدة مثل المؤشرات الذكية (Smart Pointers) ودعم التزامن (Concurrency).

- 2020:
تم إصدار معيار C++20 الذي أضاف ميزات مثل النماذج (Concepts) والمكتبات الجديدة.


📍مميزات لغة C++

1. الأداء العالي:

- تُعتبر C++ واحدة من أسرع لغات البرمجة بسبب قربها من لغة الآلة (Low-Level Language) وقدرتها على التحكم المباشر في الذاكرة.

2. التحكم في الذاكرة:

- تتيح C++ للمبرمج التحكم الكامل في إدارة الذاكرة من خلال استخدام المؤشرات (Pointers) والذاكرة الديناميكية (Dynamic Memory).

3. البرمجة الكائنية (OOP):

- تدعم C++ مفاهيم البرمجة الكائنية مثل التغليف (Encapsulation)، الوراثة (Inheritance)، وتعدد الأشكال (Polymorphism)، مما يجعلها مناسبة لتطوير التطبيقات الكبيرة والمعقدة.

4. القوالب (Templates):

- تسمح القوالب بكتابة كود عام يعمل مع أنواع بيانات مختلفة، مما يزيد من مرونة اللغة.

5. المكتبات القياسية (STL):

- توفر C++ مكتبة قياسية غنية (Standard Template Library - STL) تحتوي على حاويات (Containers)، خوارزميات (Algorithms)، ومكررات (Iterators) لتسهيل عملية البرمجة.

6. التوافق مع لغة C:

- C++ متوافقة مع لغة C، مما يعني أن معظم كود C يمكن استخدامه مباشرة في برامج C++.

7. البرمجة المتوازية (Concurrency):

- تدعم C++ البرمجة المتوازية من خلال مكتبات مثل <thread> و<mutex>، مما يسمح بتطوير تطبيقات متعددة الخيوط (Multithreaded Applications).

8. المرونة:

- يمكن استخدام C++ في مجموعة واسعة من المجالات مثل تطوير الألعاب، أنظمة التشغيل، قواعد البيانات، التطبيقات العلمية، وغيرها.

9. المجتمع الكبير والدعم:

- تتمتع C++ بمجتمع كبير من المطورين، مما يعني وجود الكثير من الموارد التعليمية والأدوات والمكتبات المتاحة.

📍 ملخص الدرس الأول

- C++ هي لغة برمجة قوية ومتعددة الاستخدامات تُستخدم في تطوير التطبيقات عالية الأداء.

- تم تطويرها كامتداد للغة C، وتدعم أنماطًا متعددة من البرمجة مثل الإجرائية والكائنية.

- تتميز C++ بالأداء العالي، التحكم في الذاكرة، ودعم البرمجة الكائنية والقوالب.

- تُستخدم C++ في العديد من المجالات مثل تطوير الألعاب، أنظمة التشغيل، والتطبيقات العلمية.

#دورة_سي_بلس_بلس
#C_plus_plus

#الدرس_الأول_سي_بلس_بلس
#المستوى_الأول

الرجاء متابعة قناتنا  👇
@artificial_AI_intelligence
👍7
4. متى نستخدم كل لغة؟

🔸️ لغة C:

مثالية لتطوير أنظمة التشغيل، الأنظمة المدمجة، والتطبيقات التي تتطلب تحكمًا دقيقًا في الموارد.
مثال: نواة لينكس (Linux Kernel)، أنظمة التحكم في السيارات.

🔸️ لغة C++:

مثالية لتطوير التطبيقات عالية الأداء مثل الألعاب، المحاكاة العلمية، والتطبيقات المعقدة.
مثال: محركات الألعاب (Unreal Engine)، برامج التصميم بمساعدة الحاسوب (CAD).

🔸️ لغة Python:

مثالية لتطوير تطبيقات الويب، تحليل البيانات، الذكاء الاصطناعي، والبرامج النصية.
مثال: تطبيقات الويب (Django, Flask)، تحليل البيانات (Pandas, NumPy)، الذكاء الاصطناعي (TensorFlow, PyTorch).

5. الخلاصة العامة

C و C++ لغات قوية للأداء العالي والتحكم في الموارد، لكن C++ أكثر تطورًا بسبب دعمها للبرمجة الكائنية والقوالب.

Python لغة سهلة التعلم وسريعة التطوير، لكنها أقل أداءً من C و C++.

•اختيار اللغة يعتمد على طبيعة المشروع:
- إذا كنت بحاجة إلى أداء عالي وتحكم في الموارد، اختر C أو C++.
- إذا كنت بحاجة إلى تطوير سريع وسهولة في التعلم، اختر Python.

#دورة_سي_بلس_بلس
#C_plus_plus

#الدرس_الثاني_سي_بلس_بلس
#المستوى_الأول

الرجاء متابعة قناتنا  👇
@artificial_AI_intelligence

🤗 اذا إستفدت من الدرس لا تنسى الدعاء لنا 🤲
👍1
2. تثبيت Code::Blocks

🔸️ ما هو Code::Blocks؟

• يعتبر Code::Blocks بيئة تطوير متكاملة (IDE) مفتوحة المصدر تدعم لغات متعددة بما في ذلك C++.
• يتميز بكونه خفيف الوزن وسهل الاستخدام.

خطوات التثبيت:

1️⃣ تحميل Code::Blocks:

• انتقل إلى الموقع الرسمي لـ Code::Blocks.
• اختر الإصدار المناسب لنظام التشغيل الخاص بك (Windows، Linux، أو macOS).

2️⃣ تثبيت Code::Blocks:


• بعد تنزيل المثبت، قم بتشغيله.
• اتبع الخطوات التالية:

■ اختر اللغة (English).
■ وافق على شروط الترخيص.
■ اختر المكونات التي تريد تثبيتها (يفضل ترك الخيارات الافتراضية).
■ اختر مكان التثبيت (يفضل تركه كما هو).

3️⃣ تثبيت المترجم (Compiler):

• إذا كنت تستخدم Windows، قم بتنزيل MinGW (مترجم C++ لنظام Windows).
• انتقل إلى MinGW وقم بتنزيل المثبت.
• بعد التثبيت، تأكد من إضافة مسار المترجم إلى متغيرات البيئة (Environment Variables):

■ ابحث عن Edit the system environment variables في قائمة ابدأ.
■ اضغط على Environment Variables.
■ في قسم System variables، ابحث عن Path واضغط على Edit.
■ أضف المسار إلى مجلد bin داخل مجلد MinGW (مثال: C:\MinGW\bin).

4️⃣ تكوين Code::Blocks لاستخدام المترجم:

• افتح Code::Blocks.
• انتقل إلى Settings > Compiler.
• في علامة التبويب Selected compiler، اختر GNU GCC Compiler.
• اضغط على Toolchain executables وتأكد من أن المسار يشير إلى مجلد bin داخل MinGW

5️⃣ إنشاء مشروع جديد:

• اختر File > New > Project.
• اختر Console Application واضغط على Go.
• اختر C++ كلغة.
• قم بتسمية المشروع واختيار مكان الحفظ.

6️⃣ كتابة وتشغيل البرنامج:

• اكتب الكود التالي في ملف main.cpp

#include <iostream>
using namespace std;

int main() {
cout << "Hello, World!" << endl;
return 0;
}

• اضغط على F9 لبناء وتشغيل البرنامج.

3. مقارنة بين Visual Studio و Code::Blocks

🔸️ الميزة : التعقيد

• برنامج Visual Studio : أكثر تعقيدًا مع واجهة غنية بالميزات.
• برنامج Code::Blocks : أبسط وأخف وزنًا.

🔸️ الميزة : الدعم

• برنامج Visual Studio : يدعم العديد من اللغات والمنصات.
• برنامج Code::Blocks : يركز على C/C++ بشكل أساسي.

🔸️ الميزة : الأداء

• برنامج Visual Studio : يتطلب موارد نظام أعلى.
• برنامج Code::Blocks : خفيف الوزن ويعمل بسلاسة على الأجهزة الضعيفة.

🔸️ الميزة : التكلفة

• برنامج Visual Studio : المجتمع Community Edition مجاني
• برنامج Code::Blocks : مفتوح المصدر ومجاني بالكامل.

🔸️ الميزة : الإستخدام الشائع

• برنامج Visual Studio : مشاريع كبيرة ومعقدة.
• برنامج Code::Blocks : مشاريع صغيرة إلى متوسطة الحجم.

4. الخلاصة العامة

• يعتبر Visual Studio هو الخيار الأفضل للمشاريع الكبيرة والمعقدة، خاصة إذا كنت تعمل على نظام Windows.
• بينما يعتبر Code::Blocks هو خيار رائع للمبتدئين أو للمشاريع الصغيرة، وهو يعمل على أنظمة متعددة.

#دورة_سي_بلس_بلس
#C_plus_plus

#الدرس_الثالث_سي_بلس_بلس
#المستوى_الأول

الرجاء متابعة قناتنا  👇
@artificial_AI_intelligence

🤗 اذا إستفدت من الدرس لا تنسى الدعاء لنا 🤲
12
1. تركيب البرنامج الأساسي في C++

بنية البرنامج الأساسي:

#include <iostream>  // مكتبة الإدخال والإخراج
using namespace std; // لتجنب تكرار كتابة std::

int main() { // الدالة الرئيسية
cout << "Hello, World!" << endl; // طباعة جملة "Hello, World!"
return 0; // إشارة إلى أن البرنامج انتهى بنجاح
}

2. شرح كل جزء من الكود

1️⃣  #include <iostream>

الغرض: تضمين مكتبة الإدخال والإخراج (iostream).

التفاصيل:

#include 
هي تعليمة للمعالج المسبق (Preprocessor) لتضمين ملفات الرأس (Header Files).

<iostream> 
هي المكتبة التي تحتوي على الدوال الأساسية للإدخال (cin) والإخراج (cout).

2️⃣ using namespace std;

الغرض: لتجنب تكرار كتابة std:: قبل استخدام الدوال مثل cout و cin.

التفاصيل:

■ namespace 
هي مساحة اسم تحتوي على دوال ومتغيرات.
■ std 
هي المساحة الافتراضية التي تحتوي على دوال المكتبة القياسية في C++.

3️⃣ int main()

الغرض: تعريف الدالة الرئيسية للبرنامج.

التفاصيل:

︎ int 
هو نوع الإرجاع للدالة (عدد صحيح).
︎ main() 
هي الدالة التي يبدأ منها تنفيذ البرنامج.

︎ يجب أن تحتوي كل برنامج C++ على دالة main().

4️⃣ { }

الغرض: تحديد بداية ونهاية كتلة الكود الخاصة بالدالة main().

التفاصيل:
- كل ما يكتب داخل { } يعتبر جزءًا من الدالة main().

5️⃣ cout << "Hello, World!" << endl;

الغرض: طباعة جملة "Hello, World!" على الشاشة
.
التفاصيل:

︎ cout 
هو كائن الإخراج (Output Object) يُستخدم لإرسال البيانات إلى الشاشة.

︎ << هو عامل الإرسال (Insertion Operator) يُستخدم لإرسال البيانات إلى cout.

︎ "Hello, World!" 
هي الجملة التي نريد طباعتها.

︎ endl 
يُستخدم لإدخال سطر جديد (New Line) بعد الطباعة.

6️⃣ return 0;

الغرض: إرجاع قيمة من الدالة main() للإشارة إلى أن البرنامج انتهى بنجاح.

التفاصيل:

︎ return 0; 
يُستخدم للإشارة إلى أن البرنامج انتهى بدون أخطاء.

︎ القيمة 0 تعني نجاح التنفيذ، بينما القيم الأخرى تشير إلى وجود أخطاء.

3. كتابة وتشغيل البرنامج

الخطوات:

1- افتح بيئة التطوير (IDE) التي قمت بتثبيتها (Visual Studio أو Code::Blocks).

2- قم بإنشاء مشروع جديد (New Project) واختر Console Application.

3- اكتب الكود التالي في ملف main.cpp
#include <iostream>
using namespace std;

int main() {
cout << "Hello, World!" << endl;
return 0;
}

4- احفظ الملف.
5- قم ببناء (Build) وتشغيل (Run) البرنامج:

• في Visual Studio: اضغط على Ctrl + F5 لتشغيل البرنامج دون تصحيح.

• في Code::Blocks: اضغط على F9 لبناء وتشغيل البرنامج.

النتيجة المتوقعة:
Hello, World!


4. شرح إضافي

ماذا يحدث عند تشغيل البرنامج؟

1 - يتم تنفيذ الدالة main().
2- يتم إرسال الجملة "Hello, World!" إلى cout لعرضها على الشاشة.
3 - يتم إدخال سطر جديد باستخدام endl.
4 - يتم إرجاع القيمة 0 للإشارة إلى أن البرنامج انتهى بنجاح.

تعديل البرنامج:

• يمكنك تغيير الجملة "Hello, World!" إلى أي جملة أخرى، مثل:
cout << "Welcome to C++ Programming!" << endl;

• يمكنك أيضًا طباعة أكثر من جملة:
cout << "Hello, World!" << endl;
cout << "This is my first C++ program." << endl;


5. الخلاصة العامة

︎ البرنامج الأساسي في C++ يتكون من:

• تضمين المكتبات (#include).
• استخدام مساحة الاسم (using namespace std;).
• الدالة الرئيسية (int main()).
• كود الإخراج (cout).
• إرجاع القيمة (return 0;).

︎ يمكنك كتابة وتشغيل برنامجك الأول باستخدام أي بيئة تطوير (IDE) مثل Visual Studio أو Code::Blocks.


#دورة_سي_بلس_بلس
#C_plus_plus

#الدرس_الرابع_سي_بلس_بلس
#المستوى_الأول

الرجاء متابعة قناتنا 👇
https://t.me/artificial_AI_intelligence

🤗 اذا إستفدت من الدرس لا تنسى الدعاء لنا 🤲
👍2
2. المعرفات (Identifiers)

ما هي المعرفات (Identifiers)؟

︎ المعرفات هي أسماء يُعرف بها المبرمج العناصر المختلفة في البرنامج مثل المتغيرات، الدوال، الكلاسات، الكائنات، وغيرها.

︎ يجب أن تتبع المعرفات قواعد معينة في التسمية.

🔮 قواعد تسمية المعرفات:

1 - تبدأ بحرف أو شرطة سفلية (_):

كتابة صحيحة: 👇

name, _age, totalScore.


كتابة خاطئة:👇

 1name, @age.


2 - يمكن أن تحتوي على أحرف، أرقام، وشرطة سفلية (_):

كتابة صحيحة: 👇

user_name, score1, total_amount


كتابة خاطئة: 👇

user-name, total$amount.


3️⃣ لا يمكن أن تحتوي على مسافات أو رموز خاصة:

كتابة صحيحة : 👇

firstName, lastName.


كتابة خاطئة: 👇

first name, last-name.


4️⃣ لا يمكن أن تكون كلمة مفتاحية:

كتابة صحيحة : 👇

myClass, calculateSum


كتابة خاطئة : 👇
int, class.


5️⃣ حساسة لحالة الأحرف (Case-Sensitive):

• Name و name يعتبران كتابتين مختلفتين.

🔸️ أمثلة على الكتابة الصحيحة:

age, totalScore, _count, MAX_VALUE, calculateArea.


🔸️ أمثلة على الكتابة غير الصحيحة:

︎ 1stPlace (يبدأ برقم).
︎ my-name (يحتوي على رمز خاص).
︎ int (كلمة مفتاحية).

3. الفرق بين الكلمات المفتاحية والمعرفات

🔸️ الميزة : الغرض

الكلمات المفتاحية (Keywords) : لها معنى محدد في اللغة.
المعرفات (Identifiers) : تُستخدم لتسمية العناصر في البرنامج.

🔸️ الميزة : التعديل

الكلمات المفتاحية (Keywords) : لا يمكن تغييرها أو استخدامها كمعرف.
المعرفات (Identifiers) : يمكن تعريفها من قبل المبرمج.

🔸️ الميزة : الأحرف

الكلمات المفتاحية (Keywords) : دائمًا بأحرف صغيرة.
المعرفات (Identifiers) : يمكن أن تحتوي على أحرف كبيرة وصغيرة.

🔸️ الميزة : الأمثلة

الكلمات المفتاحية (Keywords) : int, if, return, class
المعرفات (Identifiers) : age, totalScore, calculateArea

4. نصائح لاختيار Identifiers

🔹️ استخدام أسماء ذات معنى:

• اختر أسماء تعبر عن الغرض من المتغير أو الدالة.
• مثال: totalScore أفضل من ts

🔹️ استخدام تنسيق متسق:

• يمكن استخدام CamelCase 
(مثل firstName) أو snake_case (مثل first_name).

🔹️ تجنب الأسماء الغامضة:

• مثال: x, y, temp قد تكون غامضة، بينما width, height, area أكثر وضوحًا.

🔹️ عدم البدء بشرطة سفلية مزدوجة (__):

• الأسماء التي تبدأ بشرطة سفلية مزدوجة محجوزة للاستخدام الداخلي في اللغة.

5. أمثلة عملية لإستخدام المعرفات مع المتغيرات والدوال

🔸️ مثال 1: استخدام المعرفات في تعريف المتغيرات
#include <iostream>
using namespace std;

int main() {
int age = 25; // "age" معرف
double totalScore = 95.5; // "totalScore" معرف
string firstName = "Ali"; // "firstName" معرف

cout << "Name: " << firstName << ", Age: " << age << ", Score: " << totalScore << endl;
return 0;
}



🔸️ مثال 2: استخدام المعرفات في تعريف الدوال


#include <iostream>
using namespace std;

// "calculateArea" معرف للدالة
double calculateArea(double width, double height) {
return width * height;
}

int main() {
double area = calculateArea(5.0, 10.0); // "area" معرف
cout << "Area: " << area << endl;
return 0;
}


6. الخلاصة العامة

🔹️ الكلمات المفتاحية: كلمات محجوزة في اللغة ولا يمكن استخدامها كمعرف.

🔸️ المعرفات : أسماء يُعرف بها المبرمج العناصر في البرنامج، ويجب أن تتبع قواعد تسمية محددة.

🔹️ اختيار أسماء ذات معنى للمعرف يجعل الكود أكثر قابلية للقراءة والصيانة.



#دورة_سي_بلس_بلس
#C_plus_plus

#الدرس_الخامس_سي_بلس_بلس
#المستوى_الأول

الرجاء متابعة قناتنا  👇
https://t.me/artificial_AI_intelligence

🤗 اذا إستفدت من الدرس لا تنسى الدعاء لنا 🤲
👍51
1. ما هي المتغيرات (Variables)؟

🔸️ المتغيرات هي أماكن في الذاكرة تُستخدم لتخزين البيانات أثناء تنفيذ البرنامج.

لكل متغير:

اسم (Identifier): يُستخدم للوصول إلى البيانات المخزنة.

نوع (Data Type): يحدد نوع البيانات التي يمكن تخزينها (مثل أعداد صحيحة، أعداد عشرية، نصوص، إلخ).

قيمة (Value): البيانات الفعلية المخزنة في المتغير.

2. تعريف المتغيرات في C++

🔹️ صيغة تعريف المتغير:

نوع_البيانات اسم_المتغير;


أو مع تعيين قيمة ابتدائية:

نوع_البيانات اسم_المتغير = القيمة;


🔰 أمثلة:

int age = 25;          // متغير من نوع int (عدد صحيح)
double salary = 1500.5; // متغير من نوع double (عدد عشري)
char grade = 'A'; // متغير من نوع char (حرف واحد)
string name = "Ali"; // متغير من نوع string (نص)
bool isStudent = true; // متغير من نوع bool (قيمة منطقية)


3. أنواع البيانات الأساسية في C++

🔸️ النوع : int
• الوصف :
أعداد صحيحة
• الحجم (بايت) :
4
• المجال :
من -2,147,483,648 إلى 2,147,483,647

🔹️ النوع : float
    • الوصف : أعداد عشرية (فاصلة عائمة)
    • الحجم (بايت) :  4
    • المجال : حوالي 7 أرقام عشرية

🔸️ النوع : double
    • الوصف : أعداد عشرية بدقة أعلى
    • الحجم (بايت) :  8
    • المجال : حوالي 15 رقمًا عشريًا

🔹️ النوع : char
    • الوصف : حرف واحد
    • الحجم (بايت) :  1
    • المجال : من -128 إلى 127 أو 0 إلى 255

🔸️ النوع : bool
    • الوصف : قيمة منطقية (صحيح أو خطأ)
    • الحجم (بايت) :  1
    • المجال : true أو false

🔹️ النوع : string
    • الوصف : سلسلة نصية (نص)
    • الحجم (بايت) :  متغير
    • المجال : يعتمد على طول النص

4. إستخدام المتغيرات في لغة C++

🔰 أمثلة عملية:

🔮 مثال 1: تعريف وتعيين قيم للمتغيرات

#include <iostream>
using namespace std;

int main() {
int age = 25; // تعريف متغير age وتعيين قيمة 25
double salary = 1500.75; // تعريف متغير salary وتعيين قيمة 1500.75
char grade = 'A'; // تعريف متغير grade وتعيين قيمة 'A'
string name = "Ali"; // تعريف متغير name وتعيين قيمة "Ali"
bool isStudent = true; // تعريف متغير isStudent وتعيين قيمة true

cout << "Name: " << name << endl;
cout << "Age: " << age << endl;
cout << "Salary: " << salary << endl;
cout << "Grade: " << grade << endl;
cout << "Is Student: " << isStudent << endl;

return 0;
}


🔮 مثال 2 : تعديل قيم المتغيرات


#include <iostream>
using namespace std;

int main() {
int score = 90; // تعريف متغير score وتعيين قيمة 90
cout << "Original Score: " << score << endl;

score = 95; // تعديل قيمة المتغير score إلى 95
cout << "Updated Score: " << score << endl;

return 0;
}


🔮 مثال 3 : العمليات الحسابية باستخدام المتغيرات

#include <iostream>
using namespace std;

int main() {
int a = 10, b = 20; // تعريف متغيرين a و b
int sum = a + b; // حساب مجموع a و b وتخزينه في sum

cout << "Sum of " << a << " and " << b << " is: " << sum << endl;

return 0;
}


5. نصائح لاستخدام المتغيرات


1️⃣ اختيار أسماء ذات معنى:

︎ مثال: totalScore أفضل من ts

2️⃣ تهيئة المتغيرات عند تعريفها:

︎ مثال: int age = 0; بدلاً من int age;

3️⃣ تجنب استخدام أسماء متشابهة:

︎ مثال: firstName و first_name قد يسببان ارتباكًا.

4️⃣ استخدام النوع المناسب للبيانات:

︎ مثال: استخدم int للأعداد الصحيحة و double للأعداد العشرية.

6. الخلاصة العامة في المتغيرات

المتغيرات تُستخدم لتخزين البيانات في الذاكرة أثناء تنفيذ البرنامج.

• لكل متغير نوع يحدد نوع البيانات التي يمكن تخزينها.

• يمكن تعريف المتغيرات وتعيين قيم لها، ثم استخدامها في العمليات الحسابية أو عرضها على الشاشة.

#دورة_سي_بلس_بلس
#C_plus_plus

#الدرس_السادس_سي_بلس_بلس
#المستوى_الأول

الرجاء متابعة قناتنا  👇
https://t.me/artificial_AI_intelligence

🥰 قال رسول الله ﷺ << إذا مات ابن آدم؛ انقطع عمله إلا من ثلاث: صدقة جارية، أو علم ينتفع به، أو ولد صالح يدعو له >>  رواه مسلم.

🤗 اذا إستفدت من الدرس لا تنسى الدعاء لنا 🤲
5👍1👏1
1. النوع int (عدد صحيح)

🔰 الوصف:

• يُستخدم لتخزين الأعداد الصحيحة (بدون كسور).
• الحجم: 4 بايت (32 بت).
• المجال: من -2,147,483,648 إلى 2,147,483,647.

🔮 أمثلة:

#include <iostream>
using namespace std;

int main() {
int age = 25; // تعريف متغير age من نوع int
int temperature = -10; // يمكن أن تكون القيمة سالبة

cout << "Age: " << age << endl;
cout << "Temperature: " << temperature << endl;

return 0;
}


2. النوع float (عدد عشري بدقة منخفضة)

🔰 الوصف:

• يُستخدم لتخزين الأعداد العشرية (مع كسور).
• الحجم: 4 بايت (32 بت).
• المجال : حوالي 7 أرقام عشرية.

🔮 أمثلة:

#include <iostream>
using namespace std;

int main() {
float pi = 3.14f; // تعريف متغير pi من نوع float
float temperature = 98.6f;

cout << "Pi: " << pi << endl;
cout << "Body Temperature: " << temperature << endl;

return 0;
}

⚠️ ملاحظة:

• يُفضل إضافة الحرف f بعد القيمة العشرية للإشارة إلى أنها من نوع float (مثل 3.14f).

3. النوع double (عدد عشري بدقة عالية)

🔰 الوصف:

• يُستخدم لتخزين الأعداد العشرية بدقة أعلى من float.
• الحجم : 8 بايت (64 بت).
• المجال : حوالي 15 رقمًا عشريًا.

🔮 أمثلة:

#include <iostream>
using namespace std;

int main() {
double pi = 3.141592653589793; // تعريف متغير pi من نوع double
double distance = 123456789.123456789;

cout << "Pi: " << pi << endl;
cout << "Distance: " << distance << endl;

return 0;
}

⚠️ ملاحظة:

• يعتبر double هو النوع الافتراضي للأعداد العشرية في C++.

4. النوع char (حرف واحد)

🔰 الوصف:

• يُستخدم لتخزين حرف واحد.
• الحجم : 1 بايت (8 بت).
• المجال : من -128 إلى 127 أو من 0 إلى 255.

🔮 أمثلة:

#include <iostream>
using namespace std;

int main() {
char grade = 'A'; // تعريف متغير grade من نوع char
char symbol = '$';

cout << "Grade: " << grade << endl;
cout << "Symbol: " << symbol << endl;

return 0;
}

⚠️ ملاحظة:

• يتم تخزين الحرف بين علامتي تنصيص مفردة ('A').

5. النوع bool (قيمة منطقية)

🔰 الوصف:

• يُستخدم لتخزين القيم
• المنطقية : true (صحيح) أو false (خطأ).
• الحجم : 1 بايت (8 بت).
• القيمة : true (1) أو false (0).

🔮 أمثلة:

#include <iostream>
using namespace std;

int main() {
bool isStudent = true; // تعريف متغير isStudent من نوع bool
bool isRaining = false;

cout << "Is Student: " << isStudent << endl;
cout << "Is Raining: " << isRaining << endl;

return 0;
}

⚠️ ملاحظة:

• عند طباعة القيم المنطقية، يتم عرض 1 لـ true و 0 لـ false.

7. أمثلة عملية متكاملة لفهم أنواع البيانات في لغة ++
C

🔸️ مثال 1: استخدام أنواع البيانات المختلفة

#include <iostream>
using namespace std;

int main() {
int age = 25;
float weight = 68.5f;
double height = 175.5;
char gender = 'M';
bool isStudent = true;

cout << "Age: " << age << endl;
cout << "Weight: " << weight << endl;
cout << "Height: " << height << endl;
cout << "Gender: " << gender << endl;
cout << "Is Student: " << isStudent << endl;

return 0;
}


🔸️ مثال 2: العمليات الحسابية مع أنواع البيانات

#include <iostream>
using namespace std;

int main() {
int a = 10, b = 20;
float x = 10.5f, y = 20.5f;
double pi = 3.14159;

int sumInt = a + b;
float sumFloat = x + y;
double area = pi * 5 * 5; // حساب مساحة دائرة نصف قطرها 5

cout << "Sum of integers: " << sumInt << endl;
cout << "Sum of floats: " << sumFloat << endl;
cout << "Area of circle: " << area << endl;

return 0;
}

8. الخلاصة العامة

int: للأعداد الصحيحة.
float: للأعداد العشرية بدقة منخفضة.
double: للأعداد العشرية بدقة عالية.
char: لتخزين حرف واحد.
bool: لتخزين القيم المنطقية (true أو false).

#دورة_سي_بلس_بلس
#C_plus_plus

#الدرس_السابع_سي_بلس_بلس
#المستوى_الأول

الرجاء متابعة قناتنا  👇
https://t.me/artificial_AI_intelligence

🥰 قال رسول الله ﷺ << إذا مات ابن آدم؛ انقطع عمله إلا من ثلاث: صدقة جارية، أو علم ينتفع به، أو ولد صالح يدعو له >>  رواه مسلم.

🤗 اذا إستفدت من الدرس لا تنسى الدعاء لنا 🤲
3
1. ما هي الثوابت (Constants)؟

🔸️ الثوابت هي قيم ثابتة لا يمكن تغييرها أثناء تنفيذ البرنامج.

🔸️ تُستخدم الثوابت لتخزين القيم التي لا تتغير، مثل القيم الرياضية (π = 3.14) أو الإعدادات الثابتة.

2. طرق تعريف الثوابت في C++

1️⃣ الطريقة الأولى:

🔰 استخدام  
#define

#define 
هي تعليمة للمعالج المسبق (Preprocessor) تُستخدم لتعريف ثوابت نصية (Macros).

💎 صيغة الاستخدام:

#define اسم_الثابت القيمة


⚠️ ملاحظات:

• لا تحتاج إلى تحديد نوع البيانات.
• يتم استبدال اسم الثابت بالقيمة في جميع أنحاء الكود قبل الترجمة.

🔮 مثال:

#include <iostream>
using namespace std;

#define PI 3.14159
#define MAX_VALUE 100

int main() {
cout << "Value of PI: " << PI << endl;
cout << "Max Value: " << MAX_VALUE << endl;

return 0;
}


2️⃣ الطريقة الثانية:

🔰 استخدام كلمة const


const
 هي كلمة مفتاحية تُستخدم لتعريف ثوابت ذات نوع محدد.

💎 صيغة الاستخدام:
const نوع_البيانات اسم_الثابت = القيمة;

⚠️ ملاحظات:

• يجب تحديد نوع البيانات.
• يتم التحقق من نوع البيانات أثناء الترجمة، مما يجعلها أكثر أمانًا من #define.

🔮 مثال:

#include <iostream>
using namespace std;

int main() {
const double PI = 3.14159;
const int MAX_VALUE = 100;

cout << "Value of PI: " << PI << endl;
cout << "Max Value: " << MAX_VALUE << endl;

return 0;
}


3. الفرق بين #define و const

🔸️ الميزة : نوع البيانات

الثابت (#define):  لا يحتاج إلى تحديد نوع البيانات.
الثابت (const) : يجب تحديد نوع البيانات.

🔹️ الميزة : التحقق من النوع

الثابت (#define): لا يتم التحقق من النوع.
الثابت (const) : يتم التحقق من النوع أثناء الترجمة.

🔸️ الميزة : النطاق (Scope)

الثابت (#define): يعمل على مستوى الملف ككل.
الثابت (const) : يعمل ضمن النطاق الذي تم تعريفه فيه.

🔹️ الميزة : الأمان

الثابت (#define): أقل أمانًا بسبب عدم التحقق من النوع.
الثابت (const) : أكثر أمانًا بسبب التحقق من النوع

🔸️ الميزة : الاستخدام الشائع

الثابت (#define): يُستخدم للقيم البسيطة والنصوص.
الثابت (const) : يُستخدم للثوابت ذات النوع المحدد.

🔰 4. أمثلة عملية لإستخدام الثوابت

🔮 مثال 1: استخدام #define

#include <iostream>
using namespace std;

#define TAX_RATE 0.15
#define COMPANY_NAME "Tech Pro3dev"

int main() {
double salary = 5000.0;
double tax = salary * TAX_RATE;

cout << "Company: " << COMPANY_NAME << endl;
cout << "Salary: " << salary << endl;
cout << "Tax: " << tax << endl;

return 0;
}


🔮 مثال 2: استخدام Const

#include <iostream>
using namespace std;

int main() {
const double TAX_RATE = 0.15;
const string COMPANY_NAME = "Tech Pro3dev";

double salary = 5000.0;
double tax = salary * TAX_RATE;

cout << "Company: " << COMPANY_NAME << endl;
cout << "Salary: " << salary << endl;
cout << "Tax: " << tax << endl;

return 0;
}


5. نصائح لاستخدام الثوابت

1️⃣ اختيار الأسماء الوصفية:

︎ مثال: TAX_RATE أفضل من TR

2️⃣ استخدام const بدلاًمن #define عند الإمكان:

︎ يعتبر const أكثر أمانًا بسبب التحقق من نوع البيانات.

3️⃣ تجنب تغيير قيمة الثوابت:

︎ الثوابت يجب أن تبقى كما هي طوال فترة تنفيذ البرنامج.

6. الخلاصة العامة من درس الثوابت

الثوابت تُستخدم لتخزين القيم الثابتة التي لا تتغير أثناء تنفيذ البرنامج.

• يمكن تعريف الثوابت باستخدام #define 
أو const.

• يُفضل استخدام const بسبب التحقق من نوع البيانات وزيادة الأمان.

#دورة_سي_بلس_بلس
#C_plus_plus

#الدرس_الثامن_سي_بلس_بلس
#المستوى_الأول

الرجاء متابعة قناتنا  👇
https://t.me/artificial_AI_intelligence

🥰 قال رسول الله ﷺ << إذا مات ابن آدم؛ انقطع عمله إلا من ثلاث: صدقة جارية، أو علم ينتفع به، أو ولد صالح يدعو له >>  رواه مسلم.

🤗 اذا إستفدت من الدرس لا تنسى الدعاء لنا 🤲
👍2
1. ما هي التعليقات (Comments)؟

🔸️ التعليقات هي نصوص يُضيفها المبرمج إلى الكود لتوضيح كيفية عمل البرنامج أو لتقديم ملاحظات.

🔹️ يتم تجاهل التعليقات تمامًا من قبل المترجم (Compiler) ولا تؤثر على تنفيذ البرنامج.

2. أنواع التعليقات في C++

1️⃣ التعليقات ذات السطر الواحد (Single-Line Comments)

• تبدأ بعلامة // وتنتهي بنهاية السطر.

🔰 صيغة الاستخدام:

// هذا تعليق على سطر واحد


🔮 مثال:

#include <iostream>
using namespace std;

int main() {
// هذا تعليق يوضح أن المتغير age سيخزن العمر
int age = 25;

cout << "Age: " << age << endl; // طباعة العمر

return 0;
}

2️⃣ التعليقات متعددة الأسطر (Multi-Line Comments)

• تبدأ بعلامة /* وتنتهي بعلامة */.

🔰 صيغة الاستخدام:

/*
هذا تعليق
يمكن أن يمتد على عدة أسطر
*/


🔮 مثال:

#include <iostream>
using namespace std;

int main() {
/*
هذا تعليق متعدد الأسطر
يوضح أن المتغيرات التالية تخزن
العمر والراتب
*/
int age = 25;
double salary = 1500.75;

cout << "Age: " << age << ", Salary: " << salary << endl;

return 0;
}


3. أهمية التعليقات في لغة ++
C

🔹️ توضيح الكود


• التعليقات تساعد في توضيح الغرض من الكود وكيفية عمله.

🔮 مثال:
int result = a + b;  // جمع القيمتين a و b وتخزين النتيجة في result


🔸️  تسهيل الصيانة

• التعليقات تجعل الكود أكثر قابلية للقراءة والفهم، مما يسهل صيانته وتحديثه لاحقًا.

🔮 مثال:

// حساب مساحة الدائرة
double area = PI * radius * radius;


🔹️ التواصل مع المطورين الآخرين

• التعليقات تساعد المطورين الآخرين على فهم الكود بسرعة، خاصة في المشاريع الكبيرة.

🔮 مثال:

// هذا الكود يحسب الضريبة بناءً على النسبة المحددة
double tax = salary * TAX_RATE;


🔸️ تعطيل أجزاء من الكود (Debugging)

• يمكن استخدام التعليقات لتعطيل أجزاء من الكود مؤقتًا أثناء عملية التصحيح (Debugging).

🔮 مثال:
// cout << "Debugging: " << x << endl;  // تم تعطيل هذا السطر للتصحيح


4. نصائح لكتابة التعليقات

كن واضحًا وموجزًا:

• اكتب تعليقات واضحة وموجزة دون إطالة غير ضرورية.

تجنب التعليقات الواضحة (المفصلة):

• لا تكتب تعليقات توضح ما هو واضح من الكود.

🔮 مثال سيء:

int x = 5;  // تعيين القيمة 5 للمتغير x


استخدم التعليقات لشرح "لماذا" وليس "ماذا":

• ركز على شرح سبب كتابة الكود بهذه الطريقة بدلاً من وصف ما يفعله الكود.

🔮 مثال جيد:

// استخدام خوارزمية سريعة بسبب حجم البيانات الكبير
sort(data, data + size);


︎ تحديث التعليقات عند تغيير الكود
:

• تأكد من تحديث التعليقات عند تعديل الكود لتجنب التضارب.

5. أمثلة عملية

🔮 مثال 1: توضيح الكود

#include <iostream>
using namespace std;

int main() {
// تعريف متغيرات لتخزين العمر والراتب
int age = 25;
double salary = 1500.75;

// حساب الضريبة بناءً على النسبة المحددة
const double TAX_RATE = 0.15;
double tax = salary * TAX_RATE;

// طباعة النتائج
cout << "Age: " << age << endl;
cout << "Salary: " << salary << endl;
cout << "Tax: " << tax << endl;

return 0;
}


🔮 مثال 2: تعطيل أجزاء من الكود


#include <iostream>
using namespace std;

int main() {
int x = 10;
int y = 20;

// cout << "x: " << x << endl; // تم تعطيل هذا السطر للتصحيح
cout << "y: " << y << endl;

return 0;
}


6. الخلاصة العامة لإستخدام التعليقات

التعليقات تُستخدم لتوضيح الكود، تسهيل الصيانة، والمساعدة في عملية التصحيح.

• هناك نوعان من التعليقات في C++: 
- تعليقات ذات سطر واحد (//)
- تعليقات متعددة الأسطر (/* ... */).

• كتابة تعليقات واضحة وموجزة يجعل الكود أكثر قابلية للقراءة والفهم.

#برمجة_و_تطوير
#دورة_سي_بلس_بلس
#C_plus_plus

#الدرس_التاسع_سي_بلس_بلس
#المستوى_الأول

الرجاء متابعة قناتنا  👇
https://t.me/artificial_AI_intelligence

🥰 قال رسول الله ﷺ << إذا مات ابن آدم؛ انقطع عمله إلا من ثلاث: صدقة جارية، أو علم ينتفع به، أو ولد صالح يدعو له >>  رواه مسلم.

🤗 اذا إستفدت من الدرس لا تنسى الدعاء لنا 🤲
9. نصائح لاستخدام cin

🔰 استخدام endl أو n\ لإدخال سطر جديد:

endl 

يُفضل استخدامه لأنه يفرغ (Buffer) أيضًا.

\n 
أسرع ولكن لا يفرغ Buffer.

🔰 تجنب استخدام cin و getline معًا دون تنظيف buffer:

︎ بعد استخدام cin، قد يتبقى حرف السطر الجديد (n\) في buffer، مما يؤثر على getline.

🔸️ الحل:

︎ استخدام cin.ignore() لتنظيف Buffer


8. الخلاصة العامة لإستخدام الكائن cin


︎ الكائن cin يُستخدم لقراءة المدخلات من المستخدم.

︎ يمكن استخدامه مع أنواع البيانات المختلفة مثل int, double, char, string.

︎ الدالة getline تُستخدم لقراءة النصوص الكاملة التي تحتوي على مسافات.

︎ الجملة cin.ignore() يُستخدم لتنظيف Buffer بعد استخدام cin.

︎ كتابة كود واضح ومنظم مع استخدام التعليقات يجعل البرنامج أكثر قابلية للقراءة والصيانة

#برمجة_و_تطوير
#دورة_سي_بلس_بلس
#C_plus_plus

#الدرس_العاشر_سي_بلس_بلس
#المستوى_الأول

الرجاء متابعة قناتنا  👇
https://t.me/artificial_AI_intelligence

🥰 قال رسول الله ﷺ << إذا مات ابن آدم؛ انقطع عمله إلا من ثلاث: صدقة جارية، أو علم ينتفع به، أو ولد صالح يدعو له >>  رواه مسلم.

🤗 اذا إستفدت من الدرس لا تنسى الدعاء لنا 🤲
👍31
1. ما هو الكائن cout؟

• الكائن cout هو كائنالإخراج (Output Object) المُعرَّف في مكتبة <iostream>.

• يُستخدم لإرسال البيانات إلى الشاشة (Standard Output).

• يعمل مع أنواع البيانات المختلفة مثل int, double, char, string, إلخ.

2. صيغة استخدام cout

💎 الصيغة العامة:
cout << بيانات_للإخراج;


• العامل >> هو عامل الإرسال (Insertion Operator) ويُستخدم لإرسال البيانات إلى cout.


3. إخراج أنواع البيانات المختلفة باستخدام cout

🔸️ 1. إخراج الأعداد الصحيحة (int)

#include <iostream>
using namespace std;

int main() {
int age = 25;
cout << "Age: " << age << endl; // طباعة العمر
return 0;
}


🔹️ 2. إخراج الأعداد العشرية (double)
#include <iostream>
using namespace std;

int main() {
double salary = 1500.75;
cout << "Salary: " << salary << endl; // طباعة الراتب
return 0;
}

🔸️ 3. إخراج الحروف (char)

#include <iostream>
using namespace std;

int main() {
char grade = 'A';
cout << "Grade: " << grade << endl; // طباعة الحرف
return 0;
}

🔹️ 4. إخراج النصوص (string)

#include <iostream>
using namespace std;

int main() {
cout << "Hello, World!" << endl; // طباعة جملة "Hello, World!"
return 0;
}


4. إخراج عدة مدخلات في سطر واحد

يمكنك إخراج عدة بيانات في سطر واحد باستخدام cout مع عامل الإرسال >> عدة مرات.

🔮 مثال:

#include <iostream>
using namespace std;

int main() {
int age = 25;
double salary = 1500.75;
string name = "Ali";

cout << "Name: " << name << ", Age: " << age << ", Salary: " << salary << endl;

return 0;
}


5. استخدام endl و n\ لإدخال سطر جديد

 endl

ال endl يُستخدم لإدخال سطر جديد (New Line) ويفرغ (Buffer) أيضًا.

🔮 مثال
#include <iostream>
using namespace std;

int main() {
cout << "Line 1" << endl;
cout << "Line 2" << endl;
return 0;
}

\n

ال \n يُستخدم لإدخال سطر جديد دون تفريغ.

🔮 مثال


#include <iostream>
using namespace std;

int main() {
cout << "Line 1\n";
cout << "Line 2\n";
return 0;
}


6. تنسيق الإخراج

🔹️ . تحديد عدد الأرقام العشرية

يمكنك استخدام fixed و setprecision من مكتبة <iomanip> لتحديد عدد الأرقام العشرية.

🔮 مثال:

#include <iostream>
#include <iomanip> // لتضمين مكتبة التنسيق
using namespace std;

int main() {
double pi = 3.141592653589793;
cout << "Pi: " << fixed << setprecision(2) << pi << endl; // طباعة pi بدقة منزلتين عشريتين
return 0;
}


🔹️ محاذاة النصوص

يمكنك استخدام setw من مكتبة <iomanip> لتحديد عرض الحقل.

🔮 مثال:

#include <iostream>
#include <iomanip> // لتضمين مكتبة التنسيق
using namespace std;

int main() {
cout << setw(10) << "Name" << setw(10) << "Age" << endl;
cout << setw(10) << "Ali" << setw(10) << 25 << endl;
cout << setw(10) << "Ahmed" << setw(10) << 30 << endl;
return 0;
}


7. أمثلة عملية لفهم الكائن cout

🔮 مثال 1: برنامج بسيط لعرض معلومات الطالب


#include <iostream>
using namespace std;

int main() {
string name = "Ali";
int age = 20;
double gpa = 3.75;

cout << "Student Information:" << endl;
cout << "Name: " << name << endl;
cout << "Age: " << age << endl;
cout << "GPA: " << gpa << endl;

return 0;
}


🔮 مثال 2: برنامج لحساب مساحة الدائرة

#include <iostream>
#include <iomanip>
using namespace std;

int main() {
const double PI = 3.14159;
double radius;

cout << "Enter the radius of the circle: ";
cin >> radius;

double area = PI * radius * radius;
cout << "Area of the circle: " << fixed << setprecision(2) << area << endl;

return 0;
}


8. الخلاصة العامة لإستخدام الكائن cout

• الكائن cout
 يُستخدم لإخراج البيانات إلى الشاشة.

• يمكن استخدامه مع أنواع البيانات المختلفة مثل int, double, char, string.

ال endl و n\ يُستخدمان لإدخال سطر جديد.

• يمكن تنسيق الإخراج باستخدام مكتبة <iomanip>.

#برمجة_و_تطوير
#دورة_سي_بلس_بلس
#C_plus_plus

#الدرس_الحادي_عشر_سي_بلس_بلس
#المستوى_الأول

🥰 قال رسول الله ﷺ << إذا مات ابن آدم؛ انقطع عمله إلا من ثلاث: صدقة جارية، أو علم ينتفع به، أو ولد صالح يدعو له >>  رواه مسلم.

🤗 اذا إستفدت من الدرس لا تنسى الدعاء لنا 🤲
3👍1
9️⃣ . استخراج النص الفرعي (Substring)

يمكن استخراج جزء من النص باستخدام الدالة ()substr.

#include <iostream>
#include <string>
using namespace std;

int main() {
    string text = "Hello, World!";
    string sub = text.substr(7, 5);  // استخراج "World"

    cout << "Substring: " << sub << endl;

    return 0;
}

📟 النتيجة على الشاشة:
Substring: World


5. أمثلة عملية

🔮 مثال 1: برنامج لتحويل النص إلى أحرف كبيرة (Uppercase)

#include <iostream>
#include <string>
#include <algorithm> // لتضمين transform
using namespace std;

int main() {
string text = "hello, world!";
transform(text.begin(), text.end(), text.begin(), ::toupper); // تحويل النص إلى أحرف كبيرة

cout << "Uppercase Text: " << text << endl;

return 0;
}


🔮 مثال 2: برنامج لعكس النص (Reverse)

#include <iostream>
#include <string>
#include <algorithm> // لتضمين reverse
using namespace std;

int main() {
string text = "Hello, World!";
reverse(text.begin(), text.end()); // عكس النص

cout << "Reversed Text: " << text << endl;

return 0;
}


6. الخلاصة العامة لإستخدام string

• الكلاس std::string تُستخدم لتمثيل النصوص والتعامل معها في C++.

• تدعم العديد من العمليات مثل القراءة، الكتابة، التسلسل، المقارنة، الوصول إلى الأحرف، البحث، الاستبدال، واستخراج النصوص الفرعية.

• استخدام std::string يجعل التعامل مع النصوص أكثر مرونة وأمانًا مقارنة بمصفوفات الأحرف.

#برمجة_و_تطوير
#دورة_سي_بلس_بلس
#C_plus_plus

#الدرس_الثاني_عشر_سي_بلس_بلس
#المستوى_الأول

الرجاء متابعة قناتنا  👇
@artificial_AI_intelligence


🥰 قال رسول الله ﷺ << إذا مات ابن آدم؛ انقطع عمله إلا من ثلاث: صدقة جارية، أو علم ينتفع به، أو ولد صالح يدعو له >>  رواه مسلم.

🤗 اذا إستفدت من الدرس لا تنسى الدعاء لنا 🤲
🔰 الدالة ()insert

🔸️ الهدف : إدراج نص في موضع محدد.

🔹️ الصيغة:
text.insert(position, "text to insert");

🔮 مثال:
#include <iostream>
#include <string>
using namespace std;

int main() {
    string text = "Hello, !";
    text.insert(7, "World");  // إدراج "World" في الموضع 7

    cout << "Updated Text: " << text << endl;

    return 0;
}

📟 النتيجة على الشاشة:👇
Updated Text: Hello, World!


🔰 الدالة ()erase

🔸️ الهدف : حذف جزء من النص.

🔹️ الصيغة:
text.erase(start, length);

🔮 مثال:
#include <iostream>
#include <string>
using namespace std;

int main() {
string text = "Hello, World!";
text.erase(7, 5); // حذف "World"

cout << "Updated Text: " << text << endl;

return 0;
}

📟 النتيجة على الشاشة:👇
Updated Text: Hello, !



2. أمثلة عملية لمختلف دوال النصوص

🔮 مثال 1: برنامج لتحويل النص إلى أحرف كبيرة (Uppercase)

#include <iostream>
#include <string>
#include <algorithm> // لتضمين transform
using namespace std;

int main() {
string text = "hello, world!";
transform(text.begin(), text.end(), text.begin(), ::toupper); // تحويل النص إلى أحرف كبيرة

cout << "Uppercase Text: " << text << endl;

return 0;
}

📟 النتيجة على الشاشة:👇

Uppercase Text: HELLO, WORLD!


🔮 مثال 2: برنامج لعكس النص (Reverse)

#include <iostream>
#include <string>
#include <algorithm> // لتضمين reverse
using namespace std;

int main() {
string text = "Hello, World!";
reverse(text.begin(), text.end()); // عكس النص

cout << "Reversed Text: " << text << endl;

return 0;
}

📟 النتيجة على الشاشة:👇

Reversed Text: !dlroW ,olleH



3. الخلاصة العامة لإستخدام دوال النصوص

︎ كلاس std::string توفر العديد من الدوال الشائعة للتعامل مع النصوص مثل length(), empty(), clear(), append(), compare(), find(), re٠place(), substr(), insert(), و erase().

︎ هذه الدوال تجعل التعامل مع النصوص أكثر مرونة وسهولة في C++.

#برمجة_و_تطوير
#دورة_سي_بلس_بلس
#C_plus_plus

#الدرس_الثالث_عشر_سي_بلس_بلس
#المستوى_الأول

الرجاء متابعة قناتنا  👇
https://t.me/artificial_AI_intelligence

🥰 قال رسول الله ﷺ << إذا مات ابن آدم؛ انقطع عمله إلا من ثلاث: صدقة جارية، أو علم ينتفع به، أو ولد صالح يدعو له >>  رواه مسلم.

🤗 اذا إستفدت من الدرس لا تنسى الدعاء لنا 🤲
👍1
🔰  أمثلة عملية

🔮 مثال 1: برنامج لمقارنة نصوص وإظهار النتيجة
#include <iostream>
#include <string>
using namespace std;

int main() {
    string text1, text2;

    cout << "Enter the first text: ";
    getline(cin, text1);

    cout << "Enter the second text: ";
    getline(cin, text2);

    if (text1 == text2) {
        cout << "The texts are equal." << endl;
    } else if (text1 < text2) {
        cout << "text1 is less than text2." << endl;
    } else {
        cout << "text1 is greater than text2." << endl;
    }

    return 0;
}

📟 النتيجة على الشاشة:👇
Enter the first text: pro3dev
Enter the second text: learn c++
text1 is greater than text2.


🔮 مثال 2: برنامج لتعديل نص (إضافة، إدراج، استبدال، حذف)

#include <iostream>
#include <string>
using namespace std;

int main() {
string text = "Hello, World!";

// إضافة نص
text.append(" How are you?");
cout << "After append: " << text << endl;

// إدراج نص
text.insert(7, "Beautiful ");
cout << "After insert: " << text << endl;

// استبدال نص
text.replace(7, 9, "Wonderful");
cout << "After replace: " << text << endl;

// حذف نص
text.erase(7, 9);
cout << "After erase: " << text << endl;

return 0;
}

📟 النتيجة على الشاشة:👇
After append: Hello, World! How are you?
After insert: Hello, Beautiful World! How are you?
After replace: Hello, Wonderful World! How are you?
After erase: Hello, World! How are you?


🔰  الخلاصة

مقارنة النصوص: يمكن استخدام العوامل العلائقية (==, !=, <, >, <=, >=) أو الدالة ()compare.

تعديل النصوص: يمكن إضافة (()append أو +=)، إدراج (()insert)، استبدال (()replace)، حذف (()erase)، وتحويل النص إلى أحرف كبيرة أو صغيرة (()transform).

︎ هذه العمليات تجعل التعامل مع النصوص في C++ أكثر مرونة وسهولة.

#برمجة_و_تطوير
#دورة_سي_بلس_بلس
#C_plus_plus

#الدرس_الرابع_عشر_سي_بلس_بلس
#المستوى_الأول

الرجاء متابعة قناتنا  👇
https://t.me/artificial_AI_intelligence

🥰 قال رسول الله ﷺ << إذا مات ابن آدم؛ انقطع عمله إلا من ثلاث: صدقة جارية، أو علم ينتفع به، أو ولد صالح يدعو له >>  رواه مسلم.

🤗 اذا إستفدت من الدرس لا تنسى الدعاء لنا 🤲
👍41
1. مقدمة عن العمليات الحسابية والمنطقية

🔰  العمليات الحسابية (Arithmetic Operations)

العمليات الحسابية هي العمليات الأساسية التي نستخدمها في الرياضيات مثل الجمع، الطرح، الضرب، والقسمة.

في البرمجة، تُستخدم العمليات الحسابية لإجراء حسابات رياضية على البيانات، مثل حساب المجموع، الفرق، الناتج، أو النسبة.

🔸️ أهميتها في البرمجة:

• تُستخدم في حل المشكلات الرياضية والعلمية.

• تُستخدم في تطبيقات مثل الحسابات المالية، الرسوم البيانية، والمحاكاة.

• تُعتبر أساسًا للعديد من الخوارزميات والهياكل البرمجية.

🔰  العمليات المنطقية (Logical Operations)

العمليات المنطقية هي عمليات تُستخدم لاتخاذ القرارات بناءً على شروط معينة.

في البرمجة، تُستخدم العمليات المنطقية لفحص الشروط واتخاذ القرارات، مثل التحقق من صحة شرط ما أو مقارنة قيم متغيرات.

🔸️ أهميتها في البرمجة:

• تُستخدم في بناء الشروط (if-else) والحلقات (loops).

• تُستخدم في التحقق من صحة البيانات واتخاذ القرارات بناءً على النتائج.

• تُعتبر أساسًا للبرمجة الشرطية والتحكم في تدفق البرنامج.

2. الفرق بين العمليات الحسابية والمنطقية

🔸️ الميزة : الهدف

العمليات الحسابية : إجراء حسابات رياضية.
العمليات المنطقية : اتخاذ قرارات بناءً على شروط

🔹️ الميزة : الأمثلة

العمليات الحسابية : الجمع (+)، الطرح (-)، الضرب (*)، القسمة (/).
العمليات المنطقية : AND (&&)، OR ()، NOT (!).

🔸️ الميزة : نوع النتيجة

العمليات الحسابية : عدد (صحيح أو عشري).
العمليات المنطقية : قيمة منطقية (true أو false).

🔹️ الميزة : الإستخدام الشائع

العمليات الحسابية : الحسابات الرياضية.
العمليات المنطقية : الشروط، الحلقات، التحقق من البيانات

3. أهمية العمليات الحسابية والمنطقية في البرمجة

🔰 العمليات الحسابية

حل المشكلات الرياضية: مثل حساب المساحات، الأطوال، النسب، وغيرها.

تطبيقات علمية: مثل المحاكاة، الرسوم البيانية، والتحليل العددي.

تطبيقات مالية: مثل حساب الفوائد، الضرائب، والميزانيات.

🔰 العمليات المنطقية

اتخاذ القرارات: مثل التحقق من صحة بيانات المستخدم أو اختيار مسار معين في البرنامج.

التحكم في بلوكات البرنامج: مثل استخدام الشروط (if-else) والحلقات (for, while).

التحقق من الشروط: مثل التحقق من تسجيل الدخول، التحقق من صحة الإدخال، وغيرها.

4. أمثلة توضيحية

🔮 مثال 1: استخدام العمليات الحسابية

#include <iostream>
using namespace std;

int main() {
int a = 10, b = 5;
int sum = a + b; // جمع
int difference = a - b; // طرح
int product = a * b; // ضرب
double quotient = (double)a / b; // قسمة

cout << "Sum: " << sum << endl;
cout << "Difference: " << difference << endl;
cout << "Product: " << product << endl;
cout << "Quotient: " << quotient << endl;

return 0;
}

📟 النتيجة على الشاشة:👇
Sum: 15
Difference: 5
Product: 50
Quotient: 2
🔮 مثال 2: استخدام العمليات المنطقية
#include <iostream>
using namespace std;

int main() {
int age = 20;
bool isStudent = true;

if (age >= 18 && isStudent) { // استخدام AND (`&&`)
cout << "You are an adult student." << endl;
} else {
cout << "You are not an adult student." << endl;
}

return 0;
}

📟 النتيجة على الشاشة:👇
You are an adult student


5. الخلاصة العامة لإستخدام العمليات الحسابية و المنطقية

العمليات الحسابية: تُستخدم لإجراء حسابات رياضية مثل الجمع، الطرح، الضرب، والقسمة.

العمليات المنطقية: تُستخدم لاتخاذ قرارات بناءً على شروط، مثل التحقق من صحة بيانات أو اختيار مسار معين في البرنامج.

︎ كلاهما أساسي في البرمجة ويُستخدم في حل المشكلات وبناء التطبيقات.

#برمجة_و_تطوير
#دورة_سي_بلس_بلس
#C_plus_plus

#الدرس_الخامس_عشر_سي_بلس_بلس
#المستوى_الأول

الرجاء متابعة قناتنا  👇
https://t.me/artificial_AI_intelligence

🥰 قال رسول الله ﷺ << إذا مات ابن آدم؛ انقطع عمله إلا من ثلاث: صدقة جارية، أو علم ينتفع به، أو ولد صالح يدعو له >>  رواه مسلم.

🤗 اذا إستفدت من الدرس لا تنسى الدعاء لنا 🤲
🔮 مثال 3 برنامج لتحويل درجة الحرارة من فهرنهايت إلى مئوية

#include <iostream>
using namespace std;

int main() {
    double fahrenheit;

    cout << "Enter the temperature in Fahrenheit: ";
    cin >> fahrenheit;

    double celsius = (fahrenheit - 32) * 5 / 9;  // التحويل إلى مئوية
    cout << "Temperature in Celsius: " << celsius << endl;

    return 0;
}

📟 النتيجة على الشاشة:👇
Enter the temperature in Fahrenheit: 70
Temperature in Celsius: 21.1111


🔰  العمليات الرياضية المركبة

1️⃣  الجمع المركب (+=)

🔸️ الهدف:

• إضافة قيمة إلى متغير.

🔹️ الصيغة:
operand1 += operand2;


🔮 مثال:

#include <iostream>
using namespace std;

int main() {
int a = 10;
a += 5; // إضافة 5 إلى a

cout << "a: " << a << endl; // النتيجة: 15

return 0;
}

📟 النتيجة على الشاشة:👇
a: 15



2️⃣  الطرح المركب (-=)

🔸️ الهدف:

•   قيمة من متغير.

🔹️ الصيغة:
operand1 -= operand2;


🔮 مثال:

#include <iostream>
using namespace std;

int main() {
int a = 20;
a -= 5; // طرح 5 من a

cout << "a: " << a << endl; // النتيجة: 15

return 0;
}

📟 النتيجة على الشاشة:👇
a: 15



2️⃣  الضرب المركب (*=)

🔸️ الهدف:

•   ضرب متغير بقيمة.

🔹️ الصيغة:
operand1 *= operand2;


🔮 مثال:

#include <iostream>
using namespace std;

int main() {
int a = 5;
a *= 3; // ضرب a بـ 3

cout << "a: " << a << endl; // النتيجة: 15

return 0;
}

📟 النتيجة على الشاشة:👇
a: 15



4️⃣  القسمة المركبة (/=)

🔸️ الهدف:

•   قسمة متغير على قيمة.

🔹️ الصيغة:

operand1 /= operand2;


🔮 مثال:

#include <iostream>
using namespace std;

int main() {
int a = 10;
a /= 2; // قسمة a على 2

cout << "a: " << a << endl; // النتيجة: 5

return 0;
}

📟 النتيجة على الشاشة:👇

a: 5



🔰 الأخطاء الشائعة في العمليات الرياضية

القسمة على صفر: تأكد دائمًا من التحقق من قيمة المقسوم عليه.

الاختلاف بين القسمة الصحيحة والعشرية: استخدم القيم العشرية إذا كنت بحاجة إلى نتائج دقيقة.

🔰 استخدام العمليات الحسابية مع الدوال الرياضية

يمكنك استخدام مكتبة cmath لإجراء عمليات أكثر تعقيدًا، مثل الجذر التربيعي والقوى

🔮 مثال:

#include <iostream>
#include <cmath>
using namespace std;

int main() {
double num = 16.0;

cout << "Square root: " << sqrt(num) << endl; // الجذر التربيعي
cout << "Power: " << pow(num, 2) << endl; // القوة

return 0;
}

📟 النتيجة على الشاشة:👇
Square root: 4
Power: 256



🔰 الخلاصة العامة لإستخدام العمليات الحسابية

الجمع (+): جمع عددين.
الطرح (-): طرح عددين.
الضرب (*): ضرب عددين.
القسمة (/): قسمة عددين (تنتج عددًا عشريًا إذا كان أحدهما عشريًا).
باقي القسمة (%): حساب باقي قسمة عددين صحيحين.
العمليات المركبة (+=, -=, *=, /=): تعديل قيمة متغير باستخدام عملية حسابية.

#برمجة_و_تطوير
#دورة_سي_بلس_بلس
#C_plus_plus

#الدرس_السادس_عشر_سي_بلس_بلس
#المستوى_الأول

الرجاء متابعة قناتنا  👇
https://t.me/artificial_AI_intelligence

🥰 قال رسول الله ﷺ << إذا مات ابن آدم؛ انقطع عمله إلا من ثلاث: صدقة جارية، أو علم ينتفع به، أو ولد صالح يدعو له >>  رواه مسلم.

🤗 اذا إستفدت من الدرس لا تنسى الدعاء لنا 🤲
3👍3
2️⃣ التحقق المختصر (Short-Circuit Evaluation)

• في AND (&&): إذا كانت القيمة الأولى خاطئة، لا يتم تقييم الثانية (لأن النتيجة ستكون false بكل الأحوال).

• في OR (||): إذا كانت القيمة الأولى صحيحة، لا يتم تقييم الثانية (لأن النتيجة ستكون true بكل الأحوال).

🔮 مثال عملي:

#include <iostream>
using namespace std;

bool checkNetwork() {
    cout << "Checking network..." << endl;
    return false; // لنفترض أن الاتصال غير متوفر
}

bool checkLocalFiles() {
    cout << "Checking local files..." << endl;
    return true;
}

int main() {
    if (checkNetwork() || checkLocalFiles()) {
        // لن يتم استدعاء checkLocalFiles() لأن checkNetwork() تعيد false
        cout << "Data loaded successfully." << endl;
    }

    return 0;
}

💎 شرح المثال:

• يتم استدعاء checkNetwork() أولاً، وإذا كانت النتيجة false، يتم استدعاء checkLocalFiles().

• إذا كانت checkNetwork() تعيد false، لن يتم استدعاء checkLocalFiles() لأن النتيجة ستكون false بكل الأحوال.


📟 النتيجة على الشاشة:👇

Checking network...
Checking local files...
Data loaded successfully.



🔰 أخطاء شائعة وتجنبها عند البرمجة

1️⃣ الخلط بين && و ||

مثال خاطئ:
if (age > 18 || age < 60) { // هذا الشرط دائماً صحيح!
cout << "Valid age." << endl;
}

التصحيح:
if (age >= 18 && age <= 60) { // العمر بين 18 و60
cout << "Valid age." << endl;
}


2️⃣ الخلط بين ! و =

مثال خاطئ:
if (isActive = false) { // هذا تعيين وليس مقارنة!
// ...
}

التصحيح:
if (!isActive) { // التحقق من أن isActive تساوي false
// ...
}


🔰 4. الخلاصة العامة

• العامل AND (&&): تُستخدم عندما تحتاج إلى كلا الشرطين أن يكونا صحيحين.

• العامل OR (||): تُستخدم عندما يكفي أن يكون أحد الشرطين صحيحًا.

• العامل NOT (!): تُستخدم لعكس القيمة المنطقية.

تطبيقات واقعية: نستخدم العمليات المنطقية في أنظمة التحقق من الهوية، أنظمة الخصومات، التحكم في الوصول، وغيرها.

#برمجة_و_تطوير
#دورة_سي_بلس_بلس
#C_plus_plus

#الدرس_السابع_عشر_سي_بلس_بلس
#المستوى_الأول

الرجاء متابعة قناتنا  👇
https://t.me/artificial_AI_intelligence

🥰 قال رسول الله ﷺ << إذا مات ابن آدم؛ انقطع عمله إلا من ثلاث: صدقة جارية، أو علم ينتفع به، أو ولد صالح يدعو له >>  رواه مسلم.

🤗 اذا إستفدت من الدرس لا تنسى الدعاء لنا 🤲
👍31