اخطاء المبرمجين

  • أنواع الأخطاء في البرمجة

    قال عالم الكمبيوتر الراحل Edsger W. Dijkstra ، “إذا كان التصحيح هو عملية إزالة الأخطاء ، فيجب أن تكون البرمجة هي عملية إدخالها”.

    تعتبر مواجهة أنواع مختلفة من الأخطاء في البرمجة جزءًا كبيرًا من عملية التطوير. يصبح أفضل المطورين مرتاحين في التنقل في الأخطاء التي ينشئونها ويصلحونها بسرعة.

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

    1-Syntax errors.
    2-Semantic errors.
    3-Logical errors.

     

    1- الــ Syntax errors

    أو مايُسمى بالعربية “الأخطاء اللغوية” وهي الأخطاء اللغوية الناتجة من المبرمج عند كتابة الكود، مثلاً أن ينسى وضع ( ; ) في بعض لغات البرمجة، أو يكتب كلمة محجوزة في اللغة بطريقة خاطئة ككتابة c out مثلاً إذ يوجد فراغ بين الكلمة وهذا النوع من الأخطاء سهل اكتشافه نوعاً ما في بعض لغات البرمجة، ولا يتم تشغيل البرنامج إلا بعد تصحيح هذه الأخطاء.

     2- الــ Semantic errors

    هذا النوع من الأخطاء لا يظهر تقريباً إلا بعد ظهور نتائج البرنامج، يكون هذا الخطأ رياضياً في أغلب الأحيان، مثال على ذلك :
    طلب منك إيجاد معدل للطلاب والعلامات تكون بين 0 و 100 وعندما تم تنفيذ البرنامج كانت النتائج 125 مثلاً، هنا الخطأ ربما ليس في الكود بل في الإدخال أو العمليات الحسابية، وهنا يتم تنفيذ الكود بحد ذاته دون اي مشكلة.

     3- الــ Logical errors

    هذا النوع يُسمى أيضاً بــ Runtime errors وهو الخطأ الذي يظهر أثناء تنفيذ البرنامج، وهو خطأ منطقي مثلاً :
    عملية حسابية يكون فيها المقام صفر أو ندخل قيمة مُتغييرة سالبة، ونريد طباعة قيمة لمصفوفة ونُسند هذا المتغير إلى الموقع، بالطبع سيكون خطأ منطقي لأن المصفوفات تبدأ من صفر وتكون دلئماً موجبة.
    هذه بعض أشهر أنواع الأخطاء في البرمجة.

  • (نصائح لكل مبرمج)في مشواري لتعلم البرمجة

    في مشواري لتعلم البرمجة منذ شهر ونصف تعلمت عدة اشياء في البرمجة يمكنك ان تتبعها انت، تعلمت معظم المفاهيم المتعلقة بالبرمجة وانهيت البرمجة كائنية التوجه ضمن جافا. والان اخذ الوراثة Inheritance .

    نتيجة بحث الصور عن ‪developer succufully‬‏
    ما اريد ان اخبرك به هو انك حين تريد ان تبدأ فأبدا بسؤال لجوجل ( كيف ابرمج موقع ويب ؟) او (كيف اصنع تطبيق للاندرويد برمجيا ) ثم ( الخطوات اللازمة لتعلم …..”اللغة التي تريد ان تبدأها ) ثم يجب ان تسأل في جروبات الفيسبوك اسئلة منطقية ( ماهي الخوارزميات ؟ ) وليس ( هل ادرس الخوارزميات اولاً ام لغة برمجية ) لأنك ستسأل سؤالا تحتاج الى معرفة المفاهيم التي تتكون منها اصلا، فمثلا لو سألتك هل ادرس لغة برمجية ام الخوارزميات ؟ ستسألني ما هي الخوارزميات ؟ وسوف اتوقف، وبهذا اكون قد سألت عن شيء لا اعرف ما هو اصلا.
    الامر كما لو انك تقول هل الشمس اجمل ام القمر فاقول لك ما هو القمر ؟ فتخبرني بانه مربع الشكل ويتكون من من قطعات الجبن اللذيذة .
    معرفة المفاهيم قبل السؤال عن محتوياتها امر مهم جدا وسيختصر عليك الوقت كثيرا .

    صورة ذات صلة

    الامر الثاني هو الخوف من ان تبدأ وهو عادة ناتج عن امر فطري لدى الانسان وهو الخوف من المجهول. الامر كما لو انك ستمشي في غابة مظلمة لمدة ثلاثة اشهر او اكثر، تخاف منها لأنك لا تعرف ماهية الغابة اولا وثانيا لأنها محهولة، ولو اخبرناك انك ستواجه عثرات وتقع على الارض في البداية وتصرخ محبطا ولكنك ستشعل مصباحا في مكان كل عثرة تقع في طريقك، ترتطم بغصن فتعلق عليه مصباحا وثم كلما رأيت ذلك المصباح تعرف بديهيا انها عثرة الى ان تملئ الغابة كلها بالمصابيح المشتعلة، وبذلك ستتخطى كل عثرة لو واجهتك مرة اخرى، هكذا هي البرمجة، سترى انك لا تفهم منها شيئا لكنك ما ان تبدأ سوف تشعل مصباحا جديدا في طريقك، سيبدو الامر انه ليس له نهاية ولكنك ستكتشف في النهاية ان الاخطاء التي استغرقت في التفكير فيها لساعات اصبحت بديهية الان. وبذلك تكون غابتك المظلمة قد امتلئت بالمصابيح واصبحت تعرف كيف تدخل اليها وتخرج منها، بقي بعض الاماكن التي سوف تكتشفها من باب الفضول والمغامرة فقط وهذه هي الاضافات التي ستبحث عنها في النيت.

    نتيجة بحث الصور عن ‪developer problems‬‏

    الامر الثالث هو الخوف من السخرية عند السؤال، او العجرفة الزائدة والشعور بانه سوف يكون دنيئا لو قال لا اعرف ،وسأل من هو افضل منه. وفي الحقيقة انا سألت كل من كنت اراه افضل، لأن الامر ليس منافسة وكذلك من لا يسال لن يصل.

    وهنالك اصدقاء هنا يساعدونني دائما في اي سؤال اسأله ولا اظن ان اي مبرمج ضمن هذا أن المبرمجين الأخرين سوف يبخلون في المساعدة لو سألتهم ، وفي الحقيقة ما رأيته في مجتمع المبرمجين من مساعدة جعلني اتعلق بهذا المجال اكثر، لأنك ما ان تملك سؤالا ستجد ان اغلبهم يجيبك بكل ما لديه من معلومات ودائما مستعدين للمناقشة من ضمنهم الأستاذ خالد أحمد المعروف في عالم البرمجة الذي طلب مني ان اسأله كل شيء عن البرمجة عندما اصادف اخطاءا لا تحل، وتعلمت منه اشياء كثيرة وحتى الجدول الذي وضعته في التعلم هو من ساعدني فيه

    الامر الرابع هو انك لا يجب ان تنهي بسرعة، واكتب الملاحظات دائما، واعتبر الملاحظات هي المصابيح التي تعلقها في اغصان الاشجار في الغابة .

    الامر الخامس هو ان تمتلك هدفا من كل ما تفعله .

  • أنواع الاخطاء البرمجية

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

    هناك ثلاث انواع :

    syntax errors (compile errors)

    نتيجة بحث الصور عن ‪syntax error‬‏

    الاخطاء البرمجية

    هى الاخطاء الناتجة من قيام المبرمج بكتابة قواعد اللغة بطريقة خطأئة .
    ويتم اكتشافها عن طريق المترجم compiler (قبل) تنفيذ البرنامج
    مثل فى بعض اللغات قد ينسيء المبرمج وضع ;
    او يكتب كلمة محجوزة فى اللغة بطريقة خاطئة مثل كتابة نوع البيانات Int بدلا من int

    Runtime errors (Exception errors)

    وهى الاخطاء التى تحدث (اثناء) تنفيذ البرنامج ولايمكن اكتشافها عن طريق المترجم compiler .
    مثل تعريف متغير من النوع int يقوم بااستقبال رقم صحيح من المستخدم الا ان المستخدم يقوم بادخال رقم عشرى بالخطأ .
    وهذة الاخطاء يجب على المبرمج عمل معالجة لها .

    logical errors

    نتيجة بحث الصور عن ‪logical error‬‏

    الاخطاء المنطقية
    وهى الاخطاء التى تحدث (بعد) التنفيذ
    او بمعنى اخر هو خطا فى نتيجة او مخرجات البرنامج .
    يتم اكتشافها بعد التنفيذ عند عمل test للبرنامج
    لايمكن اكتشافها عن طريق المترجم compiler
    مثل حساب perimeter of square بطريقة خطائة

    perimeter of square =length*5;

    بدلا من

    length*4;

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر