يوميات مطور تقنية معلومات
63 subscribers
39 photos
2 videos
3 files
21 links
رحلة من الصفر نحو عالم البرمجة والتقنية.
A journey from scratch to the world of programming and technology.
Download Telegram
أهلاً بك في يوميات مبرمج مطور
رحلة واقعية من الصفر نحو عالم البرمجة والتقنية 🚀
ستجد هنا:
🔹 تجارب يومية حقيقية
🔹 مصادر وأدوات عملية
🔹 أفكار ونصائح لتطوير نفسك خطوة بخطوة

انطلق معنا نحو المستقبل الرقمي 🌐
واجعل التعلم أسلوب حياة 💡

#برمجة #Coding #يوميات_مبرمج #تطوير_الذات #تقنية
👍2
✍️ أول خطوة في طريق البرمجة

قد يظن البعض أن البرمجة مجرد أكواد معقدة على شاشة سوداء، لكن الحقيقة أن البرمجة طريقة تفكير قبل أن تكون كتابة أوامر.
أهم ما يحتاجه المبتدئ هو:
1️⃣ الصبر على التعلم.
2️⃣ الاستمرار ولو بخطوات صغيرة.
3️⃣ التطبيق العملي بدلًا من الاكتفاء بالقراءة.

💡 تذكّر: كل مبرمج محترف كان في يوم من الأيام مبتدئًا لا يعرف كيف يطبع "Hello World".

ابدأ اليوم، ولو بسطر واحد من الكود. 🚀

#برمجة #يوميات_مبرمج #Coding #Motivation #تعلم_البرمجة
👍3
🔹 المتغيّرات (Variables) في البرمجة

المتغيّر هو وحدة أساسية في أي لغة برمجة، وهو عبارة عن مساحة تخزين في الذاكرة تُعطى اسمًا محددًا، ويُستخدم لحفظ البيانات والتعامل معها أثناء تنفيذ البرنامج.

🖥️ أمثلة على المتغيّرات:

int → للأعداد الصحيحة مثل int x = 10;

float / double → للأعداد العشرية مثل float pi = 3.14;

string → للنصوص مثل string name = "Omar";

bool → للقيم المنطقية (true/false) مثل bool isReady = true;


أهمية المتغيّرات:

1. تسهيل تخزين البيانات.

2. إعادة استخدام القيم بدلاً من تكرارها.

3. جعل البرامج أكثر مرونة وقابلية للتعديل.
---

#برمجة #Cplusplus #تعلم_البرمجة #Coding
👍1
🔹 الثوابت (Constants) في البرمجة

الثابت هو قيمة لا تتغيّر أثناء تنفيذ البرنامج، على عكس المتغيّرات التي يمكن تعديلها.
يُستخدم الثابت عندما نريد تخزين قيمة محدّدة ودائمة لا يجب أن تتغيّر.

🖥️ أمثلة في C++:

const float PI = 3.14159;
const int DAYS_IN_WEEK = 7;


أهمية الثوابت:

1. حماية القيم الأساسية من التغيير.

2. تسهيل قراءة الكود وفهمه.

3. تقليل الأخطاء الناتجة عن تعديل قيم ثابتة بالخطأ.
---

#برمجة #Cplusplus #تعلم_البرمجة #Coding
1
🔹 أساسيات البرمجة للمبتدئين

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

🖥️ المفاهيم الأساسية:

1. المتغيّرات (Variables): لحفظ البيانات والتعامل معها.

2. الثوابت (Constants): قيم ثابتة لا تتغير أثناء التنفيذ.

3. أنواع البيانات (Data Types): مثل الأعداد الصحيحة int، الأعداد العشرية float، النصوص string، والقيم المنطقية bool.

4. المعاملات (Operators): مثل الجمع +، الطرح -، الضرب *، القسمة /.

5. التعليقات (Comments): ملاحظات داخل الكود لا تُنفذ، تساعدك على التوضيح.


---

📝 مثال في C++:

#include <iostream>
using namespace std;

int main() {
// هذا تعليق يوضح الكود
int age = 20; // متغير عدد صحيح
const float PI = 3.14; // ثابت عشري

cout << "Age: " << age << endl;
cout << "PI value: " << PI << endl;
return 0;
}

---

نصائح للمبتدئين:

اكتب الكود خطوة بخطوة بدل ما تحاول تكتب برنامج كامل دفعة واحدة.
جرب وخطئك عادي جدًا… الأخطاء هي جزء من التعلّم.
احرص على تسمية المتغيّرات بأسماء واضحة (مثال: studentName بدل x).
---

#برمجة #Cplusplus #Coding #تعلم_البرمجة
1
⚠️ مشاكل شائعة في كود C++ وكيفية التعامل معها ⚠️

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

---

1️⃣ القيم غير المهيأة (Uninitialized Variables)
المشكلة: عند إعلان متغير دون إعطاءه قيمة، سيحمل قيمة عشوائية في الذاكرة.
مثال:


int x;
cout << x; // قيمة غير محددة

الحل: دائمًا هيئ المتغير عند الإعلان:


int x = 0;


---

2️⃣ تجاوز السعة (Overflow / Underflow)
المشكلة: عند تخزين قيمة أكبر من قدرة المتغير (مثلاً int صغير) يحدث overflow، أو قيمة أقل من الصفر مع unsigned.

مثال:

unsigned int u = 0;
u--; // يصبح أكبر عدد ممكن بدلاً من -1

الحل: استخدم نوع أكبر إذا لزم (long long) أو تحقق من القيم قبل العمليات.

---

3️⃣ استخدام المؤشرات غير الصالحة (Dangling / Null Pointers)

المشكلة: المؤشر يشير إلى عنوان غير موجود أو تم حذفه → يؤدي لكراش للبرنامج.

مثال:

int* p = nullptr;
cout << *p; // خطأ

الحل: دائماً تحقق أن المؤشر ليس nullptr قبل الاستخدام، واستخدم smart pointers كلما أمكن:

#include <memory>
auto ptr = std::make_unique<int>(5);


---

4️⃣ مشاكل النطاق (Scope)

المشكلة: محاولة الوصول لمتغير خارج نطاقه → خطأ تجميعي (compile-time error).

مثال:

int main() {
int x = 5;
}
cout << x; // خط
أ

الحل: ضع المتغير ضمن النطاق المطلوب أو اجعله عالميًا إذا لزم.

---

5️⃣ أخطاء التحويل بين الأنواع (Type Casting)
المشكلة: تحويل ضمني يمكن أن يقطع القيم أو يغيرها.
مثال:

int i = 3.9; // يتحول إلى 3 بدون تحذير

الحل: استخدم تحويل صريح:

nt i = static_cast<int>(3.9); // 3


---

6️⃣ نسيان المكتبات أو using namespace std

المشكلة: استخدام cout أو string بدون تضمين المكتبة → compile error.

cout << "Hello"; // خطأ
الحل:

#include <iostream>
#include <string>
using namespace std;
---
7️⃣ الأخطاء المنطقية (Logical Errors)
المشكلة: الكود يعمل بدون أخطاء تجميع، لكن النتيجة خاطئة.

مثال:

int sum = 0;
for(int i=1; i<=10; i++)
sum = i; // كان القصد sum += i
الحل: تحقق من المنطق بعناية، استخدم الطباعة الوسيطة (cout) لتصحيح القيم أثناء التنفيذ.

---

8️⃣ الأخطاء المتعلقة بالذاكرة (Memory Leaks)
المشكلة: عند استخدام new بدون delete → الذاكرة لا تُحرر.
الحل: استخدم smart pointers:
auto p = std::make_unique<int>(10); // يتحرر تلقائيًا

---

9️⃣ مشاكل النصوص والسلاسل (String / Char)

المشكلة: التعامل مع مصفوفة char كبيرة أو تعديل string بطريقة خاطئة → كراش.

الحل: استخدم std::string دائمًا، واحذر من تجاوز الحدود.
---

10️⃣ الأخطاء الناتجة عن العمليات على bool

المشكلة: القيم true/false تتحول إلى أعداد 1/0 عند الطباعة أو الحساب → نتائج مفاجئة.

الحل: افهم التحويل بين bool وأنواع أخرى، أو استخدم المقارنات المنطقية مباشرة.

---
نصائح عملية لتجنب معظم المشاكل

1. هيئ كل متغير عند الإعلان.
2. استخدم أنواع مناسبة لحجم البيانات.
3. استعمل المراجع بدل المؤشرات متى أمكن.
4. تحقق دائمًا من المؤشرات قبل الاستخدام.
5. استعمل smart pointers لتجنب تسريبات الذاكرة.
6. تحقق من المنطق قبل تنفيذ البرنامج.
7. استخدم الطباعة الوسيطة (cout) لتصحيح الأخطاء.
8. اتبع نمط تسمية واضح للمتغيرات والدوال لتقليل الالتباس.

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


---
#Cplusplus#CPlusPlus #CPP #Programming #LearnToCode #Coding #CodeDaily #Developer