لنكتفي بهذا القدر من الحديث عن الخوارزميات, سأتوسع بشرحها في قسم الخوارزميات إن شاء الله تعالى فيما بعد.
الآن نأتي إلى تعريف
البرنامج: هو مجموعة من التعليمات و الأوامر التي ينفذها الحاسوب بتسلسل معين و منظم لأداء المهام المختلفة.
و يمكن أن يكون البرنامج لحل معادلة بشكل معين أو مسألة ما أو برنامج تطبيقي أو برنامج نظام....
يقوم المبرمجون يتطوير و صناعة البرامج من خلال ما يسمى لغات برمجة, ولغات البرمجة هي عبارة عن برامج متخصصة مهمتها إعداد البرامج الأخرى.
وتقسم لغات البرمجة إلى ثلاثة أنواع:لغة الآلة: هي اللغة التي يفهمها الحاسوب مباشرة,ويمكن تعريف هذه اللغة على أنها اللغة المعرفة من قبل البنية الصلبة للحاسب.
تتمثل لغة الآلة برموز قد تكون أصفار أو واحدات وتشكل أوامر يفهمها الحاسوب.وتعتبر البرمجة بلغات الآلة صعبة جدا وتستغرق الكثير من الوقت.
وتعد لغة الآلة مرهقة للإنسان.
لغات المجمع: هي عبارة عن مترجمات للبرامج,حيث يكتب البرنامج بلغة برمجة قد تكون قريبة من الإنكليزية و تقوم هذه المجمعات بترجمتها
إلى لغة الآلة,وطبعا كانت لغة المجمع أبسط وأوضح بكثير من لغة الآلة,لكنها بقيت صعبة قليلاً.
لغات البرمجة عالية المستوى: وهي لغات برمجة سهلة جدا مقارنة بلغة الآلة و لغة المجمع,ويقبلها العقل البشري ويفهمها أكثر من اللغتين السابقتين,تسمى البرامج التي تترجم النصوص البرمجية
من لغات البرمجة عالية المستوى إلى لغة الآلة بالمترجمات Compilers.وطبعاً تعد لغة الفيجوال بيسك 6.0 و C++ , Cمن لغات البرمجة عالية المستوى
بالإضافة إلى الكثير من اللغات الأخرى...
تستخدم كل لغة برمجة مجموعة من الكلمات تسمى "الكلمات المحجوزة" و من المعاملات(+و-و&و||....) ويمكن استخدام هذه المحارف لتشكيل ما لا نهاية له
من الأوامر.
سنقوم في موقعنا بشرح البعض من أشهر لغات البرمجة إن شاء الله.
هناك مصطلحات أساسية لا يجب ان نهملها عند دراسة البرامج:
فعند كتابة البرنامج بلغة برمجة ما فإننا نستخدم ما يسمى بـ
الملف المصدري Source Code أو الكود أو الرماز المصدري: هو مجموعة من الأوامر تفهمها لغة البرمجة و تقوم بتنفيذها و إعطاء النتائج المطلوبة بناء على الكود.
عندما نريد تجربة الملف المصدري فإن لغة البرمجة تقوم بترجمة هذا الملف المصدري إلى لغة الآلة ومن ثم تشغيله(وهذا طبعا متعلق بنوع المترجم).
مثال بسيط:
المصدر لبرنامج لجمع الأعداد الزوجية بين 0 و 100 مكتوبا بلغة c++:
- الكود:
-
#include<iostream.h>
int main()
{
int a=2,c=0;
while(a<=100)
{
c+=a;
a+=2;
}
cout << c << endl;
}
أما
الترجمة: فهي عملية تحويل الملف المصدري إلى برنامج مكتوب بلغة الآلة.
والبرامج القوية غالبا ما تكون مجزأة و تتصل مع بعضها من خلال روابط.
يجمع أجزاء هذه البرامج ما يسمى بالملف التنفيذي.
مثلا: لدينا
مكتبة الإرتباط الحيوي Dynamic Link Library /DLL/ : وهي عبارة عن جزء برمجي يحتوي على إجراءات و أوامر و توابع عديدة قد تشترك بها عدة
برامج. وهذا نوع من (إعادة استخدام البرمجيات).
للتبسيط: أنا أريد أن أصنع مكبر للصوت,أو جهاز راديو: فلست مضطرا إلى صنع السبيكر(البفلة) بذاتي, بل يمكنني شرائها أو استخدام بفلة مصنوعة مسبقا بدلا من أن أعيد صنع بفلة جديدة بنفسي,
وهذا ما يوفر علي الجهد و الوقت و يضمن لي الجودة.
تتصل البرامج مع المستخدم من خلال وحدات لإدخال البيانات(لوحة المفاتيح و الماوس و ..) ووحدات لإخراج المعلومات(الشاشة و مكبرات الصوت و الطابعة..).
كما وتتصل مع الملفات وكل هذا من خلال مجاري للدخل و الخرج كما سنرى فيما بعد.