القائمة الرئيسية

الوحدة الأولى - الدرس 5: تصنيف أخطاء البرمجة وتصحيحها

التدريب على أسئلة الاختيار من متعدد عالية التمييز، وإدارة وقت الامتحان بكفاءة - شرح تفاعلي أكاديمي مدعوم بالمفردات الناطقة وبنك أسئلة تقييمي فوري.

37 مشاهدة آخر تحديث: 18 أكتوبر 2026
الوحدة الأولى - الدرس 5: تصنيف أخطاء البرمجة وتصحيحها
المحطة 1 من 5 فكّر واستعد: انطلاقة التعلم والأهداف
الحاسب الآلي والبرمجة - الصف الثاني الثانوي الوحدة الأولى: البرمجة وحل المشكلات

الدرس الخامس: تصنيف واكتشاف أخطاء البرمجة (Syntax, Runtime, Logic Errors) واستراتيجيات تصحيحها

انقر على أي جملة للاستماع إليها مباشرة 👆

يُعد اكتشاف الأخطاء البرمجية وتصحيحها (Debugging & Testing) من أهم المهارات الاحترافية التي تميز المبرمج البارع عن غيره. لا يوجد برنامج يخلو من الأخطاء في مسودته الأولى، ولكن الفارق يكمن في القدرة التحليلية على تصنيف الخطأ ومعرفة مصدره وكيفية معالجته. تنقسم الأخطاء البرمجية في هندسة البرمجيات إلى ثلاثة أصناف معيارية: أولاً، الأخطاء اللغوية والنحوية (Syntax Errors) التي تنشأ عن مخالفة قواعد لغة البرمجة ويكتشفها المترجم فوراً قبل التنفيذ. ثانياً، أخطاء وقت التشغيل (Runtime Errors) التي تظهر فجأة أثناء عمل البرنامج وتؤدي لانهياره مثل القسمة على صفر أو نفاد الذاكرة. ثالثاً وأخطرها، الأخطاء المنطقية (Logic Errors) التي يمر فيها البرنامج دون أي توقف لكنه يعطي نتائج حسابية خاطئة كاستخدام علامة الجمع بدلاً من الضرب، والتي تستوجب استخدام بيانات الاختبار وجدولة التتبع لاكتشافها وتصحيحها وفق المعايير الوزارية والوطنية المعتمدة.

المحطة 2 شرح الدرس والمفاهيم الأساسية

1. الأنواع الثلاثة للأخطاء البرمجية

نوع الخطأوقت الاكتشافالسبب النموذجيمثال
أخطاء لغوية (Syntax Errors) أثناء كتابة الكود أو ترجمته (Compile-time) مخالفة قواعد هجاء وصياغة لغة البرمجة كتابة Prnt بدلاً من Print أو نسيان قوس
أخطاء تشغيلية (Runtime Errors) أثناء تشغيل وتنفيذ البرنامج (Run-time) طلب عملية حسابية مستحيلة أو خطأ في موارد النظام القسمة على صفر، أو إدخال حروف لمتغير رقمي
أخطاء منطقية (Logic Errors) عند مقارنة النتائج الفعلية بالمتوقعة كتابة صياغة رياضية أو شرطية غير صحيحة فكرياً كتابة Area = L + W بدلاً من L × W

2. لماذا تُعد الأخطاء المنطقية هي الأخطر؟

  • صمت المترجم: المترجم لا يصدر أي رسالة تحذير أو خطأ، لأن الكود مكتوب بقواعد نحوية صحيحة 100%.
  • استمرار البرنامج: البرنامج يعمل بسلاسة كاملة وينتهي بنجاح ظاهري ولكن كل نتائجه وأرقامه مغلوطة تماماً.
  • طريقة الاكتشاف الوحيدة: تتطلب إخضاع البرنامج لاختبار صارم ببيانات اختبار (Test Data) معلومة النتائج مسبقاً وتتبع المتغيرات بجدول التتبع.

3. أدوات واستراتيجيات تصحيح الأخطاء (Debugging Techniques)

نقاط التوقف (Breakpoints)

إيقاف مؤقت لتنفيذ البرنامج عند سطر معين لفحص قيم المتغيرات في الذاكرة في تلك اللحظة.

التنفيذ خطوة بخطوة (Step-By-Step)

تشغيل أسطر الكود سطراً تلو الآخر لمراقبة مسار التفرع وتغير قيم العدادات مباشرة.

معالجة الاستثناءات (Try-Catch)

اعتراض أخطاء التشغيل برمجياً ومنع انهيار البرنامج وعرض رسالة إرشادية مهذبة للمستخدم.

المحطة 3 التطبيقات والأنشطة العملية
تمرين 1: تصنيف خطأ إملائي

المسألة: كتب مبرمج السطر Dim X As Intger فرفض المترجم ترجمة الكود، ما نوع هذا الخطأ؟

الحل النموذجي:
• هذا خطأ لغوي نحوي (Syntax Error).
• السبب: كتابة الكلمة المحجوزة Integer بشكل إملائي خاطئ Intger مما يخالف القواعد الصارمة للغة البرمجة.
تمرين 2: تصنيف خطأ معادلة المحيط

المسألة: كتب مبرمج لحساب محيط المستطيل: Perimeter = L + W * 2، فكانت النتيجة خاطئة، ما نوع الخطأ؟

الحل النموذجي:
• هذا خطأ منطقي (Logic Error).
• السبب: بسبب أولويات العمليات الحسابية تم ضرب W في 2 أولاً ثم جمع L.
• التصحيح بوضع الأقواس: Perimeter = (L + W) * 2.
تمرين 3: تصنيف توقف مفاجئ للبرنامج

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

الحل النموذجي:
• هذا خطأ وقت التشغيل (Runtime Error).
• السبب: محاولة تنفيذ عملية حسابية غير معرفة رياضياً (Division by zero) أثناء التنفيذ الفعلي للبرنامج.
تمرين 4: تصنيف إدخال نص في حقل رقمي

المسألة: برنامج يطلب العمر كرقم صحيح، فأدخل المستخدم كلمة "عشرين"، ما الخطأ المتوقع؟

الحل النموذجي:
• خطأ وقت التشغيل (Runtime Error) ويسمى خطأ عدم تطابق نوع البيانات (Data Type Mismatch).
تمرين 5: خطأ في شرط النجاح

المسألة: مبرمج كتب If Degree > 50 Then Print "ناجح"، فحصل الطالب الحاصل على 50 على "راسب"، ما نوع الخطأ؟

الحل النموذجي:
• هذا خطأ منطقي (Logic Error).
• التصحيح: إضافة علامة المساواة Degree >= 50 لأن درجة 50 تعتبر درجة نجاح رسمياً.
تمرين 6: مقارنة بين Syntax Error و Logic Error

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

الحل النموذجي:
• الخطأ اللغوي: سهل الاكتشاف جداً، لأن المترجم يحدده فوراً ويشير إلى رقم السطر وسبب الخطأ.
• الخطأ المنطقي: صعب الاكتشاف ويتطلب مراجعة شاملة وتتبعاً للمتغيرات لأن البرنامج لا يظهر أي رسائل خطأ.
تمرين 7: نسيان إغلاق الأقواس

المسألة: الكود: Average = (A + B + C / 3 ، ما نوع الخطأ الحادث؟

الحل النموذجي:
• خطأ لغوي نحوي (Syntax Error) لعدم إغلاق القوس المفتوح، ويرفض المترجم تشغيل البرنامج.
تمرين 8: دور بيانات الاختبار

المسألة: كيف تسهم بيانات الاختبار (Test Data) في كشف الأخطاء المنطقية الخفية؟

الحل النموذجي:
• بتزويد البرنامج بمدخلات معروفة النتائج مسبقاً، عند مقارنة النتيجة الصادرة بالنتيجة الصحيحة يتضح فوراً وجود خطأ منطقي في حال اختلافهما.
المحطة 4 قاموس المفردات والمصطلحات الناطق

اضغط على أي بطاقة لاكتشاف المعنى الدقيق، واضغط على أيقونة الصوت للاستماع للنطق:

الأخطاء اللغوية (Syntax Errors)
اضغط لاكتشاف الدلالة والشرح 👆
أخطاء تنتج عن مخالفة قواعد وقواعد هجاء لغة البرمجة ويكتشفها المترجم أثناء كتابة الكود
أخطاء وقت التشغيل (Runtime Errors)
اضغط لاكتشاف الدلالة والشرح 👆
أخطاء تحدث أثناء تشغيل البرنامج تؤدي لانهياره المفاجئ كعمليات القسمة على صفر
الأخطاء المنطقية (Logic Errors)
اضغط لاكتشاف الدلالة والشرح 👆
أخطاء فكرية في صياغة المعادلات تؤدي لنتائج غير صحيحة مع عمل البرنامج دون توقف
تصحيح الأخطاء (Debugging)
اضغط لاكتشاف الدلالة والشرح 👆
عملية تحديد موقع الخطأ البرمجي وفهم سببه وإجراء التعديل اللازم لإصلاحه
المترجم (Compiler)
اضغط لاكتشاف الدلالة والشرح 👆
البرنامج المسؤول عن تحويل الكود المكتوب بلغة راقية إلى لغة الآلة واكتشاف أخطاء Syntax
بيانات الاختبار (Test Data)
اضغط لاكتشاف الدلالة والشرح 👆
مدخلات مختارة بعناية معلومة نواتجها مقدماً تستخدم لفحص صحة مخرجات البرنامج
القسمة على صفر (Division by Zero)
اضغط لاكتشاف الدلالة والشرح 👆
أشهر أخطاء وقت التشغيل الحسابية وتحدث لكون العملية غير معرفة رياضياً
أولويات العمليات الحسابية
اضغط لاكتشاف الدلالة والشرح 👆
القواعد التي تحدد ترتيب تنفيذ العمليات (الأقواس، الأسس، الضرب والقسمة، الجمع والطرح)
نقاط التوقف (Breakpoints)
اضغط لاكتشاف الدلالة والشرح 👆
علامة يضعها المبرمج لإيقاف تنفيذ البرنامج مؤقتاً عند سطر معين لمراقبة المتغيرات
فحص الحدود (Boundary Testing)
اضغط لاكتشاف الدلالة والشرح 👆
اختبار البرنامج بالقيم الحدية القصوى والدنيا كالأصفار والقيم السالبة لكشف الثغرات
عدم تطابق نوع البيانات (Type Mismatch)
اضغط لاكتشاف الدلالة والشرح 👆
خطأ تشغيلي ينتج عن إدخال نص في متغير تم تعريفه كعدد رقمي
معالجة الاستثناءات (Exception Handling)
اضغط لاكتشاف الدلالة والشرح 👆
أسلوب برمجي لاعتراض الأخطاء التشغيلية برفق دون توقف البرنامج المفاجئ
التحقق الثنائي
اضغط لاكتشاف الدلالة والشرح 👆
مقارنة المخرجات الفعلية للبرنامج بالمخرجات النموذجية المتوقعة حسابياً
بيئة التطوير المتكاملة (IDE)
اضغط لاكتشاف الدلالة والشرح 👆
البرنامج الذي يوفر للمبرمج محرر الكود وأدوات الترجمة وتصحيح الأخطاء في واجهة واحدة
المحطة 5 بنك الأسئلة والتقييم الذكي الفوري

اضغط على الإجابة لتتحقق من فهمك وتكتشف التفسير النموذجي فورياً:

1 الخطأ الناتج عن مخالفة قواعد وصياغة لغة البرمجة يسمى خطأ:
2 إذا كتب المبرمج معادلة حساب مساحة المستطيل: Area = L + W بدلاً من L * W، فإن هذا الخطأ يصنف كخطأ:
3 محاولة قسمة عدد على صفر أثناء تشغيل البرنامج تؤدي إلى حدوث خطأ:
4 أي أنواع الأخطاء الآتية لا يصدر المترجم بشأنه أي رسائل تحذيرية أثناء كتابة الكود ؟
5 اكتشاف الأخطاء اللغوية Syntax Errors يتم بواسطة:
6 إذا كتب المبرمج Prnt X بدلاً من Print X فإن هذا الخطأ يعتبر:
7 الطريقة المثلى لاكتشاف الأخطاء المنطقية في البرامج هي:
8 إدخال المستخدم لقيمة نصية "أحمد" في متغير عددي مخصص للعمر ينتج عنه خطأ:
أحسنت يا بطل! اكتملت محطات الدرس بنجاح.

أكملت دراسة هذا الدرس؟

احفظ إنجازك الآن لإضافة 5 نقاط تميز إلى رصيدك وتسجيل الدرس في لوحة إحصائياتك!