الكاتب: حنين السيد نور خالد الهمصي

الأستاذ المشرف: د.عبد الرحمن عبيدات

المدقق اللغوي: د.ابتسام حسين


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

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

خصائص الحاسوب

  1. سرعة إنجاز العمليات.
  2. سرعة إدخال البيانات واسترجاع المعلومات.
  3. القدرة على تخزين المعلومات.
  4. دقة النتائج .
  5. تعدد البرمجيات و البرامج الجاهزة التي تسهل استخدام الحاسوب دون دراسة علم الحاسوب أو هندسة البرمجيات.

تطور الحاسوب

يعتمد تطوير الحواسيب على عدة عناصر أساسية منها:

1.زيادة سرعة الحاسوب.

2.التقليل من حجم الحاسوب .

3.التقليل من تكلفة الحاسوب.

4.زيادة دقة النتائج.

5.زيادة القدرة التخزينية .

6.تسهيل عملية الاستخدام و التشغيل.

لغات البرمجيات

هي عبارة عن مجموعة من الأوامر المرتبة منطقيًا، يتم تنفيذها بواسطة وحدة المعالجة المركزية للحاسوب، و يختلف مستوى ونوع البرمجيات طبقًا لعلاقاتها و قربها من الحاسب الآلي من ناحية، و قربها من المستخدم من ناحية أخرى .

مفهوم البرمجة

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

نبذة عن C,C++

 جرى تطوير لغة C  انطلاقا من لغتين سابقتين لهما هما BCPL و B.
بنيت لغة BCPL في عام 1997 من قبل Martin Richards  لتكون لغة برمجة لكتابة نظم استثمار و مترجمات . بعدها أضاف Ken Thompson  العديد من الإمكانات إلى لغته B التي طورها انطلاقًا من نسخة مطابقة من لغة BCPL و ذلك من أجل كتابة النسخ الأولى نظام التشغيل UNIX .

وكانت اللغتان B ,BCPL خاليتين من الأنماط حيث يشغل كل عنصر من المعطيات كلمة واحدة في الذاكرة، ويقع من ثم عبء معالجة عناصر المعطيات، على أنها أرقام كاملة مثلاً أو أعداد حقيقية ، على عاتق المبرمج.

اللغات Visual Basic  و C# و C++ و BASIC

BASIC(Beginners All-purpose instruction code)

طورت في أوساط الستينات في كلية Dartmouth كمعنى لكتابة البرامج البسيطة، كانت البيسك سبباً لتعود المبتدئين على تقنية البرمجة .

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

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

هناك ثلاث لغات برمجة أولية في مايكروسوفت وهي :

  1. VB.Net(اقتبست من البيسك الأصلية).

 2 )     VC++  .اقتبست من C++).

  1. )       C# لغة جديدة اقتبست من لغة جافا و سي بلس بلس ).

تحدّثنا عن لغات البرمجة التي سبقت لغات الجيل الرابع، و قلنا أیضاً إنھا جمیعاً تشترك في صفة إنھا تقوم على مبدأ التحدّث بالطريقة التي یفھمھا الحاسوب .

و يجدر الذكر أن جميع لغات الأجيال الثلاثة السابقة تمّت ترجمتھا على نظام تشغیل، لأنھا لا تعمل إلا على ھذا النظام.

البرنامج ——–> المفسّر/المترجم ——–> لغة الآلة

ولأن المترجم متصل مباشرة بلغة الآلة فإنه يعتمد علیھا. و يختلف من نظام تشغیل إلى آخر.
لذا قال المبرمجون أنھم سیتخیّلون وجود آلة تكون ھذه الآلة محددة و أطلقوا علیھا اسم الآلة التخیّلیة. و ھم يكتبون برامجھم حسب ھذه الآلة و لیس حسب نظام تشغیل محدد ھكذا:

البرنامج ——–> المفسّر/المترجم ——–> الآلة التخيلية ——–> لغة الآلة

وأصبح یترجم بناءً على آلة تخيلية وذلك لأن البرنامج سيعمل على أي جھاز علیه الآلة التخیلیة، مھما اختلف نظام التشغيل، دون الحاجة لإعادة الترجمة.

من لغات الجیل الرابع

 .Visual Basic.1

  .Oracle.2

 .C++ .3

 .Java.4 

اللغات تعرف بإنھا لغات تعتمد على البرمجة الشیئیة.

أنواع البرمجیات 

-نظم التشغیل

-المترجمات

– التطبیقات

– نظم إدارة قواعد البیانات

لغة الC++

إن الحاسب لايفهم سوى لغة الآلة، ولكي نصمم أو نبني برنامجًا يحل مشكلة معينة، يجب أن نستخدم لغة ملائمة وتتناسب مع متطلبات البرنامج

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

مثال:

#include <iostream>

using namespace std;

void main()

{

cout << my first c++ program. << endl;

}

إذا قمنا بتنفيذ هذا البرنامج فسوف يطبع لنا جملة  my first c++ program.

تذكر أن الحاسب لا يمكنه أن يفهم سوى لغة الآلة، والتي هي عبارة عن ١ و ٠ ، لكي يتم تنفيذ البرنامج بنجاح، يجب أن تترجم تعليمات البرنامج إلى لغة الآلة. في هذا المقال سنراجع الخطوات اللازمة لتنفيذ البرامج المكتوبة بلغة ال c++

خطوات أساسية ومهمة لتنفيذ برنامج C++

١يجب أن تستخدم محرر لإنشاء وكتابة برنامج C++  وذلك باتّباع القواعد وصيغة اللغة للجمل التنفيذية. هذا البرنامج يسمى ببرنامج المصدر، ويجب أن يخزن هذا البرنامج بملف نصي.

برنامج المصدر: هو برنامج مكتوب بلغة عالية المستوى.

٢برنامج ال C++الموجود في المثال أعلاه يحوي الجملة #include <iostream> ، في برامج ال C++، الجمل التي تبدأ بشعار # تُسمى “تعليمات المعالج”. هذه الجمل تُعالج من قبل برنامج يُسمى المعالج.

٣بعد تنفيذ تعليمات المعالج، الخطوة التالي هي التأكد من أن البرنامج يخضع لقواعد لغة البرمجة المستخدمةأي أن استخدام الصيغة العامة للجمل التنفيذية صحيحوأن يترجم البرنامج إلى نظيره من لغة الآلة. المترجم (compiler) يتحقق من وجود الأخطاء، فإذا لم يجد فإنه يترجم للغة الآلة.

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

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

١وضع خوارزمية لتتبع منهجها.

٢تطبيق الخوارزمية باستخدام لغة برمجة، مثل لغة الc++ والتحقق من عملية الخوارزمية.

٣التعديل على البرنامج في حال تغير مجال المشكلة.

العناصر الأساسية لبرنامج c++

 مثال

#include <iostream>

 using namespace std;

int main() {

int num;

 num = 6;

cout << “My first C++ program.” << endl;

cout << “The sum of 2 and 3 = ” << 5 << endl;

 cout << “7 + 8 = ” << 7 + 8 << endl;

cout << “Num = ” << num << endl;

return 0;

 }

إذا قمنا بتنفيذ البرنامج أعلاه، سيطبع لنا الجمل الآتية بهذا الترتيب تمامًا:

My first c++ program.

The sum of 2 and 3 = 5

7 + 8= 15

Num = 6

هذه الجمل ظهرت بفعل تنفيذ هذه الجمل التنفيذية:  

cout << “My first C++ program.” << endl;

cout << “The sum of 2 and 3 = ” << 5 << endl;

 cout << “7 + 8 = ” << 7 + 8 << endl;

cout << “Num = ” << num << endl;

لشرح كيف حصل ذلك. لنبدأ أولًا بهذه الجملة: 

cout << “My first C++ program.” << endl;

 والتي تجعل الحاسوب يقرأ القيم التي بعد الرمز >> ومن ثم يعرضها على شاشة c++ هذا مثال لجملة طباعة في لغة، النتائج أو كما نطلق عليها(شاشة المخرجات(string expressions) عادةً يحوي البرنامج عدّة أنواع من العبارات، مثل العبارات الحسابية، والعبارات الحرفية..

على سبيل المثال، فإن 7 + 8 هي عبارة عن تعبير حسابي. أي شي يأتي بين علامتيّ تنصيص فإنه تعبير من النوع string . مثلًا، “My first C++ program.و “7 + 8 = هما عبارتان من النوع string.

عادةً النوع string يأخذ قيمة نفسه، أي قيمة الحروف التي بين علامات التنصيص ذاتها، وكما هي تمامًا. أما التعبيرات الحسابية فإنها تأخذ القيم طبقًا لقواعد العمليات الحسابية..

لاحظ أن في الجملة المُخرَجة، كلمة endl تشكل النقطة التي عندها يبدأ سطر جديد، بالتالي فإن الجملة التنفيذية السابقة تُظهر لنا هذا السطر على شاشة المخرجات

My first C++ program.

 

لنرى الآن الجملة التنفيذية التالية:  

cout << “The sum of 2 and 3 = ” << 5 << endl;

إن جملة الطباعة هذه مكونة فيها نوعين من العبارات/تعبيرات، الأول (وهو الذي بعد أول >>) 

“The sum of 2 and 3=

والثاني (الذي بعد ثاني >>) يقتضي بقيمة الرقم ٥. عبارةThe sum of 2 and 3 = هي عبارة من النوع string والتي كما قلنا مسبقًا فإنها تأخذ قيمة نفسها كما هي (لاحظ أيضًا المساحة بعد ال=). العبارة الثانية والتي تحمل قيمة الرقم ٥، فإنها تأخذ قيمة الرقم ٥، وهكذا فإن ناتج جملة الطباعة السابقة يكون 

The sum of 2 and 3 = 5

الآن لنحلل هذه الجملة

cout << “7 + 8 = ” << 7 + 8 << endl;

 يأخذ قيمة نفسه.  string والذي هو من النوع“7 + 8 = في جملة الطباعة هذه، التعبير

أما التعبير التالي ، ٧+٨. فإن هذا التعبير يأخذ قيم الرقمين ٧ و ٨ و العملية الحسابية +، بالتالي فإن نتيجة التعبير ستكون مجموع ٧ و٨ والتي هي ١٥، بالتالي فإن الجملة المُخرَجة ستكون 

7 + 8 = 15

وأخيرًا، الجملة التالية:

cout << “Num = ” << num << endl;

 “والتي تأخذ قيمة نفسها كما شرحنا مسبقًاNum = ”  string هذه الجملة مكونة من العبارة من نوع 

num تعني أن نخزن الرقم ٦ في المتغير  num = 6;   العبارة

وبالتالي فإن العبارة بعد >> الثانية ستأخذ قيمة ٦

.Num = 6 هكذا فإن الجملة المخرجة ستكون

.   (main function) برنامج (سي بلس بلس) هو مجموعة من الدوال، إحداها هي الدالة الرئيسية     

  الدالة هي مجموعة من العبارات التنفيذية التي عندما تُنفّذ، تقوم بعملية ما. البرنامج في المثال السابق يخضع للدالة   الرئيسية.

السطر الأول من البرنامج

#include <iostream> 

يسمح لنا باستخدام العبارة cout لإخراج جملة الطباعة على شاشة المخرجات، وتسمح لـ endl بالقيام بعملها.

السطر الثاني والذي هو using namespace std; يسمح لنا باستخدام عبارتي cout و endl من دون std::

هذا يعني إذا لم نكتب هذه العبارة، فإننا يجب أن نستخدم جملة الطباعة cout بهذا الشكل std::cout 

 

التعليقات:

تستخدم التعليقات في لغات البرمجة غالبًا لمساعدة المبرمجين القادمين الذين يستخدمون البرنامج المكتوب وتوضيح بعض المفاهيم لهم. كيف يمكننا كتابة تعليق في لغة الc++، وإن التعليقات لا تدخل في عملية التنفيذ ولا تؤثر على القيم أو على البرنامج الفعلي

هناك نوعان من التعليقات، تعليق ذو سطر واحد، ويتم ذلك بعد وضع شرطتين مائلتين هكذا:

  //this is a comment

النوع الآخر وهو التعليقات المكونة من عدّة أسطر، وتبدأ بشرطة ونجمة، وتنتهي بهما. مثل هذا المثال: 

/*this is 

another comment*/

من الجدير بالذكر أن هذه اللغة تعتبر أم لغات البرمجة عالية المستوى وأنها سهلة التعلم، لذا فإن أغلب من يبدؤون  

إذ إنها توفر جميع العناصر الأساسية والمفاهيم الأساسية بالبرمجة بشكل عام. c++البرمجة فإنهم يبدؤون باستخدام  

وعليه فإنها تعتبر بداية جيدة لمن يريد تعلم البرمجة.


المراجع

 تألیف م. عمار الدبعي ( 2005 C++ 1. أصول البرمجة بلغة

.( تألیف م. عمار الدبعي ( 2007 Java 2. البرمجة الموجھة بلغة

.( 3. مئة سؤال وسؤال لإتقان البرمجة تألیف م. عمار الدبعي ( 2006

.( تألیف م. عمار الدبعي ( 2006 C++ 4. ھیاكل البیانات بلغة

.( 5. مبادئ الحاسوب و البرمجة بلغة بیسك تألیف د. مروان مصطفي ناعھ ( 1997

.( 6. مبادئ الحاسوب الإلكتروني تألیف د. سعید عساف ( 1997

،( 7. مقدمة في علم الحاسوب تألیف د. محمد كامل ،د. حسن طاھر، دار النھظة ( 1998

جمھوریة مصر العربیة.

 

مواقع الویب العربیة:

.http://www.c4arab.com 1. الموسوعة العربیة

. http://www.javagirl.ws .2

.http://www.deyaa.org 3. المدرس العربي

  1. منتدیات الفریق العربي للبرمجة.