الدرس الأول : مفهوم البرمجة واحتياجاتها

سلسلة من الدروس في لغة البرمجة ++C

الدرس الأول : مفهوم البرمجة و احتياجاتها

نقوم كل اليوم بالكثير من الأفعال المعقدة و المركبة من مجموعة من الأفعال الجزئية الصغيرة وفق ترتيب ثابت و محدد يضمن صحة قيامنا بالعمل المطلوب.

لنطرح مثال عن مثل هذه الأفعال هو الذهاب للجامعة باكراً، حتى نذهب للجامعة في الوقت المحدد و جهوزية كاملة فأننا بشكل روتيني عام نقوم :

– الاستيقاظ من النوم.

– غسل الوجه.

– تناول الفطور.

– تبديل الملابس.

– تسريح الشعر.

– تجهيز الحقيبة.

– ارتداء الحذاء.

– مغادرة المنزل.

– المشي حتى موقف الباص.

– الصعود إلى الباص.

– الجلوس في أحد المقاعد.

يدعى هذا الأسلوب من تحليل موضوع إلى عناصر جزئية مرتبة و واضحة بالأسلوب الخوارزمي (نسبة للعالم محمد بن موسى الخوارزمي) و تسمى الخطوات السابقة بـ الخوارزمية.

يمكن تعريف الخوارزمية على أنها طريقة أو خطة أو قاعدة  موصّفة بشكل كامل و واضح و مفصل.

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

هل سنحتاج للخطط البديلة Plan B   ؟

ماذا لو تأخرت بالاستيقاظ ..؟

– تذهب بسيارة أجرة إلى موقف السيارات المخصصة للسفر و التي بإمكانها أن توصلك للجامعة.

– لا تذهب للدرس.

مثال :  مشكلة عامة نريد توصيف حلها وهي .. القيام بقلي 3 بيضات للفطور.

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

1-    نحضر المقلاة.

2-    نحضر السمنة.

a.     …..

مثال من واحة الرياضيات :

بفرض أن لدينا آلة حاسبة علمية تستطيع حل جملة معادلات خطية بثلاثة مجاهيل و لدينا جملة معادلات خطية مؤلفة من خمسة مجاهيل x1,x2,x3,x4,x5، فما هي الخطوات الصحيحة لحل هذه الجملة بالاستعانة بالآلة الحاسبة المتوفرة لدينا؟

إن الفكرة الأساسية هي اختصار الجملة السابقة إلى جملة مؤلفة من ثلاث معادلات بثلاثة مجاهيل باستخدام طريقة الحذف بالتعويض (مثلاً) ثم إيجاد حل الجملة باستخدام الآلة الحاسبة و التعويض و الحصول على المتحولين المحذوفين.

1- نختار أحد المتحولات عشوائياً.

2- نوجد قيمته بدلالة المتحولات الأربعة الباقية من المعادلة الأولى.

3- نعوض في المعادلات الأربعة التالية.

4- نختار أحد المتحولات المتبقية عشوائياً.

5- نوجد قيمته بدلالة المتحولات الثلاثة البقية من المعادلة الثانية.

6- نعوض في المعادلات الثلاثة التالية.

7- نوجد حل جملة المعادلات الثلاثة الناتجة باستخدام الآلة الحاسبة.

8- نعوض و نوجد المتحول المختار أخيراً.

9- نعوض و نوجد المتحول المختار أولاً.

ماذا لو كانت الجملة أكبر من ذلك (n  متحول مثلاً) …. ؟؟؟ الأمر للنقاش …

استنتاج :

فهم المشكلة بالكامل هو الخطوة الأولى نحو خوارزمية ناجحة و حل صحيح.

تعريف الحاسب :

جهاز إلكتروني ينفذ ما نعطيه له من برامج بحرفيه تامة على أن يكون البرنامج مصاغ بأسلوب يفهمه الحاسب أو يستطيع التعامل معه.

تعريف البرمجة :

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

لا بد من توضيح بعض الكلمات التي ردت في التعريف. نعني بكلمة مجرّد أي حال يحمل صفة العمومية قدر الإمكان فأنا مثلاً اكتب برنامج يجمع عددين صحيحين  Z= X+Y و لا اكتب برنامج يعيد ناتج جمع 1+2 = 3 . قد عرفنا معنا الأسلوب الخوارزمي و لكن السؤال المطروح هو ما هو الأسلوب الذي سأصوغ الحل به قبل الانتقال إلى كتباته بلغة برمجة محددة.

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

من خصائص البرمجة أن تكون الخوارزمية شاملة لجميع الاحتمالات و الاستثناءات أي يجب الإحاطة بالمشكلة بجميع جوانبها (نحتاج إلى Plan B,C,…).

يتبع …

م. زين العابدين حاج حمّادة – جامعة الخليج الخاصة

About زين العابدين

مهندس حواسيب - معهد IDA - جامعة Braunshweig التقنية.
هذا المنشور نشر في دروس في البرمجة. حفظ الرابط الثابت.

أضف تعليقاً

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s