البرمجة :
هي باختصار توجيه اوامر للاجهزة لتنفيذ مهمات معينة , مثل :
- حل مسائل رياضية
- ارسال معلومات لشخص معين
- تشفير بيانات
- حفظ بيانات لغرض ما
- عرض بيانات للمستخدمين بشكل معين
- تحليل البيانات
- وغيرها الكثير
هي باختصار توجيه اوامر للاجهزة لتنفيذ مهمات معينة , مثل :
- حل مسائل رياضية
- ارسال معلومات لشخص معين
- تشفير بيانات
- حفظ بيانات لغرض ما
- عرض بيانات للمستخدمين بشكل معين
- تحليل البيانات
- وغيرها الكثير
هذي المهمات في الغالب تجتمع عشان تكوّن ما يسمى ( البرنامج ) أو ( التطبيق ) أو ( المشروع ) , مثل :
- تطبيق تويتر
- تطبيقات الذكاء الاصطناعي
- المدونات
- بعض الاجهزة المنزلية
- المواقع وغيرها
- تطبيق تويتر
- تطبيقات الذكاء الاصطناعي
- المدونات
- بعض الاجهزة المنزلية
- المواقع وغيرها
طيب كيف نوجه هذي الأوامر للأجهزة ؟
هذي الاوامر تسمى ( Codes ) , وبالعربي ( شيفرات ) ,
ولكن تقدرو تسموها أكواد للتسهيل😅.
هذي الأكواد يطلق عليها اسم ( اللغات البرمجية ).
الاجهزة تفهم اللغة البرمجية وما تفهم اللغة الطبيعية , ولذلك نتواصل معها من خلال اللغات البرمجية
هذي الاوامر تسمى ( Codes ) , وبالعربي ( شيفرات ) ,
ولكن تقدرو تسموها أكواد للتسهيل😅.
هذي الأكواد يطلق عليها اسم ( اللغات البرمجية ).
الاجهزة تفهم اللغة البرمجية وما تفهم اللغة الطبيعية , ولذلك نتواصل معها من خلال اللغات البرمجية
بعد ما أخذنا لمحة عن البرمجة ولغات البرمجة .. تعالو نشرح بعض المفاهيم الاساسية اللي تكون في جميع لغات البرمجة تقريبا .
- المفهوم الأول ( انواع البيانات )
أنواع البيانات هي كل ما تراه في التطبيقات من نصوص وأرقام , وملفات وغيرها .
لغات البرمجة لها أنواع بيانات اساسية :
- الاحرف Char
- الارقام Numbers
- القيم المنطقية ( Booleans ) وهي اجابة لسؤال ( هل ) وعادة ما تكون ( صح true ) أو ( خطأ false )
أنواع البيانات هي كل ما تراه في التطبيقات من نصوص وأرقام , وملفات وغيرها .
لغات البرمجة لها أنواع بيانات اساسية :
- الاحرف Char
- الارقام Numbers
- القيم المنطقية ( Booleans ) وهي اجابة لسؤال ( هل ) وعادة ما تكون ( صح true ) أو ( خطأ false )
اغلب البرامج ما تكتفي بانواع البيانات الاساسية , ولذلك لغات البرمجة تدعم انشاء أنواع بيانات معقدة اكثر من هذه الانواع الاساسية لاستخدامها في التطبيقات ..
مثلا :
- النص ( هو سلسلة من الأحرف )
مثال اخر نوع بيانات ( سيارة ) تتكون من انواع ثانية :
- اسمها ( نص )
- رقمها ( رقم )
مثلا :
- النص ( هو سلسلة من الأحرف )
مثال اخر نوع بيانات ( سيارة ) تتكون من انواع ثانية :
- اسمها ( نص )
- رقمها ( رقم )
- المفهوم الثاني ( المتغيرات )
عرفنا ان فيه انواع بيانات في البرمجة .. ولكن نحتاج مكان لوضع هذه البيانات فيه عشان نقدر نوصل لهذه البيانات بسهولة.
هنا يجي دور ( المتغيرات ) , المتغيرات هي مجرد صناديق لاحتواء هذي البيانات ..
وبالتالي نقدر نستخدم هذه الصناديق وننقلها لأي مكان
عرفنا ان فيه انواع بيانات في البرمجة .. ولكن نحتاج مكان لوضع هذه البيانات فيه عشان نقدر نوصل لهذه البيانات بسهولة.
هنا يجي دور ( المتغيرات ) , المتغيرات هي مجرد صناديق لاحتواء هذي البيانات ..
وبالتالي نقدر نستخدم هذه الصناديق وننقلها لأي مكان
كل صندوق بيكون له اسم خاص فيه وداخله بيانات معينة ..
مثال واقعي :
- صندوق كتب
- صندوق طعام
- صندوق معدات
يمكننا وضع هذه الصناديق في اي مكان متى نشاء
مثال واقعي :
- صندوق كتب
- صندوق طعام
- صندوق معدات
يمكننا وضع هذه الصناديق في اي مكان متى نشاء
- المفهوم الثالث ( Operators أو العمليات )
هذه العمليات غالبا ما تكون عمليات حسابية مثل جمع وطرح وتقسيم وضرب وغيرها.
وقد تكون عملية ازاحة للـ bit .
بالمناسبة ( الـ bit ) هي اصغر وحدة رقمية في الحاسوب ) وجميع البيانات تتكون من هذا الـ bit .
ولذلك عملية الازاحة تؤثر على القيمة
هذه العمليات غالبا ما تكون عمليات حسابية مثل جمع وطرح وتقسيم وضرب وغيرها.
وقد تكون عملية ازاحة للـ bit .
بالمناسبة ( الـ bit ) هي اصغر وحدة رقمية في الحاسوب ) وجميع البيانات تتكون من هذا الـ bit .
ولذلك عملية الازاحة تؤثر على القيمة
المفهوم الرابع ( Control Flow أو التحكم بسير البرنامج )
البرنامج البسيط هو عبارة عن ملف .. وهذا الملف فيه الاوامر البرمجية مكتوبة بالترتيب .
طيب هل تنفيذ البرامج هذه يتم بالترتيب ؟
فعليا يتم بطريقتين .. الأولى بالترتيب Sequential
والثانية بناء على شرط معين Conditional
البرنامج البسيط هو عبارة عن ملف .. وهذا الملف فيه الاوامر البرمجية مكتوبة بالترتيب .
طيب هل تنفيذ البرامج هذه يتم بالترتيب ؟
فعليا يتم بطريقتين .. الأولى بالترتيب Sequential
والثانية بناء على شرط معين Conditional
الطريقة الأولى بيتم تنفيذ الأوامر بشكل تسلسلي بسيط ..
اما الطريقة الثانية تقوم بفحص شرط معين ( هل هذا الشرط تحقق ؟ أم لم يتحقق ؟ )
وبناء عليه يتم تنفيذ أمر معين .. ( أيا كان ترتيبه ) سواء في بداية الملف او في نهايته وهذا ما يسمى ( jump ) أو ( القفز في التنفيذ )
اما الطريقة الثانية تقوم بفحص شرط معين ( هل هذا الشرط تحقق ؟ أم لم يتحقق ؟ )
وبناء عليه يتم تنفيذ أمر معين .. ( أيا كان ترتيبه ) سواء في بداية الملف او في نهايته وهذا ما يسمى ( jump ) أو ( القفز في التنفيذ )
- المفهوم الخامس ( التكرار أو Iteration )
هذا المفهوم من اهم المفاهيم اللي لازم أي مبرمج يكون متمكن منه .
وهو عبارة عن تكرار أمر برمجي معين عدد مرات معينة أو تكرار امر معين عند تحقق شرط معين ويتم ايقاف هذا التكرار عند عدم تحقق هذا الشرط
هذا المفهوم من اهم المفاهيم اللي لازم أي مبرمج يكون متمكن منه .
وهو عبارة عن تكرار أمر برمجي معين عدد مرات معينة أو تكرار امر معين عند تحقق شرط معين ويتم ايقاف هذا التكرار عند عدم تحقق هذا الشرط
التكرار موجود في جميع التطبيقات اللي نستخدمها , امثلة :
- تكرار عرض التغريدات
- تكرار عرض الحسابات
مثال آخر :
لدينا قائمة طلاب , ونريد حساب عمر كل طالب من خلال تاريخ ميلاده , ليس من المنطقي ان نقوم بهذا يدويا , ولذلك نستخدم التكرار لحساب عمر جميع الطلاب .
- تكرار عرض التغريدات
- تكرار عرض الحسابات
مثال آخر :
لدينا قائمة طلاب , ونريد حساب عمر كل طالب من خلال تاريخ ميلاده , ليس من المنطقي ان نقوم بهذا يدويا , ولذلك نستخدم التكرار لحساب عمر جميع الطلاب .
- المفهوم السادس ( الدوال أو Functions )
الدوال تتكون من قسمين ( رأس الدالة ) ويحتوي اسمها و ( جسم الدالة ) ويحتوي مجموعة من الأوامر البرمجية .
وعشان ننفذ الأوامر الموجودة في جسم الدالة , نقوم باستدعائها من خلال اسمها .
الدوال تتكون من قسمين ( رأس الدالة ) ويحتوي اسمها و ( جسم الدالة ) ويحتوي مجموعة من الأوامر البرمجية .
وعشان ننفذ الأوامر الموجودة في جسم الدالة , نقوم باستدعائها من خلال اسمها .
طيب ليه ممكن نحتاج الدوال ؟
تخيل ان هذي الاوامر تحتاج تنفذها في 10 مواضع في البرنامج .. وبعدين قررت تعدل على هذه الأوامر ..
بدون الدوال راح تعدل في ال 10 مواضع كلها .
ولكن لو قمت باستدعاء الدالة في هذه العشر مواضع , ستقوم بتعديل فقط جسم الدالة اذا احتجت ( موضع واحد )
تخيل ان هذي الاوامر تحتاج تنفذها في 10 مواضع في البرنامج .. وبعدين قررت تعدل على هذه الأوامر ..
بدون الدوال راح تعدل في ال 10 مواضع كلها .
ولكن لو قمت باستدعاء الدالة في هذه العشر مواضع , ستقوم بتعديل فقط جسم الدالة اذا احتجت ( موضع واحد )
الدوال لها فوائد كثير ومنها :
- تنظيم الكود
- تسهيل تطوير البرنامج
- تسهيل اصلاح المشاكل
- تسهيل قراءة الكود
- اعادة تنفيذ الاوامر بدون اعادة كتباتها مرارا وتكرارا في كل مرة
- تنظيم الكود
- تسهيل تطوير البرنامج
- تسهيل اصلاح المشاكل
- تسهيل قراءة الكود
- اعادة تنفيذ الاوامر بدون اعادة كتباتها مرارا وتكرارا في كل مرة
- المفهوم السابع ( الخوارزميات )
الخوارزميات هي طريقة لحل مشكلة ما وليست معادلات رياضية بحتة كما يظن البعض.
بالبرمجة .. الخوارميات هي تطبيق واستخدام المفاهيم السابقة بطريقة توصلك لهدفك .
وعشان اكون صريح .. بعض الخوارزمية تتطلب معادلات رياضية معقدة ..
الخوارزميات هي طريقة لحل مشكلة ما وليست معادلات رياضية بحتة كما يظن البعض.
بالبرمجة .. الخوارميات هي تطبيق واستخدام المفاهيم السابقة بطريقة توصلك لهدفك .
وعشان اكون صريح .. بعض الخوارزمية تتطلب معادلات رياضية معقدة ..
- المفهوم الثامن ( الأخطاء Errors & Exceptions )
الاخطاء البرمجية تنقسم لـ 3 أنواع :
- خطاء في قواعد كتابة الكود Syntax Error :
يظهر لما تخالف قواعد كتابة الاكواد , كل لغة برمجية لها قواعد كتابة للاكواد خاصة فيها وتتشابه في كثير من الاحيان .
الاخطاء البرمجية تنقسم لـ 3 أنواع :
- خطاء في قواعد كتابة الكود Syntax Error :
يظهر لما تخالف قواعد كتابة الاكواد , كل لغة برمجية لها قواعد كتابة للاكواد خاصة فيها وتتشابه في كثير من الاحيان .
- خطأ اثناء تشغيل البرنامج Runtime Error :
وهذا الخطأ يظهر اثناء تشغيل البرنامج , مثال .. عندما يحاول البرنامج فتح ملف غير موجود .
- خطأ منطقي Semantic Error
وهذا الخطأ هو اصعب انواع الاخطاء ,لان البرنامج يعمل .. ولكن النتيجة تكون مختلفة عن النتيجة المتوقعة .
وهذا الخطأ يظهر اثناء تشغيل البرنامج , مثال .. عندما يحاول البرنامج فتح ملف غير موجود .
- خطأ منطقي Semantic Error
وهذا الخطأ هو اصعب انواع الاخطاء ,لان البرنامج يعمل .. ولكن النتيجة تكون مختلفة عن النتيجة المتوقعة .
- المفهوم التاسع ( Debugging )
هو باختصار طريقة لتتبع الكود ومعرفة اماكن الأخطاء وحلها .
هو باختصار طريقة لتتبع الكود ومعرفة اماكن الأخطاء وحلها .
- المفهوم العاشر ( Best Practice )
هو أفضل طريق أو ( خوارزمية ) لتنفيذ مهمة معينة
هو أفضل طريق أو ( خوارزمية ) لتنفيذ مهمة معينة
اي مفاهيم ثانية اشوف انها مهمة راح يتم اضافتها ان شاء الله ..
جاري تحميل الاقتراحات...