لـــغة الـــــسي ا
لفصل الأول : لغة
C … نظرة تاريخية و
ملامح عامة لغة C لغة متفردة في ملامحها ومنشآتها، وتتميز بأنها سلاح قوي للمبرمج، فهي
تؤدي العديد مما لا تستطيع اللغات الأخرى – عالية المستوى- أن تؤديه كما تتيح
للمبرمج التحكم بصورة أفضل في الكمبيوتر، ولذلك فإن لغة ال C قد أصبحت لغة
العصر.
و على الرغم من أن لغة الC ليست جديدة فإنها لغة سريعة التطور ، حيث أبتكرها
" دينيس ريتشي" في أوائل السبعينات وقدمها بالاشتراك مع " بريان كارينجان" في
كتابهما ( The C programming language )والذي يعد المرجع الأساسي في اللغة.
ومنذ ذلك الحين واللغة في تطور مستمر.
وتطورت لغة C تطورا سريعا ليظهر منها الامتداد الذي يطلق عليه C++ وتتميز لغة
C++ باعتمادها أساسا جديدا من طرق البرمجة وهو ما يطلق عليه (Object Oriented
Programming ).ومهدت لغة C++ الطريق لظهور لغة Visual C++ وهي الصورة الأحدث
من اللغة والتي تعمل في بيئة الويندوز.
ونتيجة تزايد استخدام لغة C قامت مؤسسة القياسات الأمريكية في عام 1983
بعملية توحيد للهجات المختلفة التي كادت أن تنتشر للغة C فأصدرت اللغة
القياسية التي يطلق عليها " ANSI C "وهي تحتوي على بعض الإضافات إلى اللغة
الأصلية التي ابتكرها ريتشي.
ما هو البرنامج:
البرنامج اصطلاح يرمز لعدد محدد من الأوامر التي تعطى للكمبيوتر، بغرض تنفيذ
مهمة محددة أو أداء وظيفة مطلوبة.
ومن أهم ملامح البرمجة بلغة C أن البرنامج ما هو إلا معمار دقيق التصميم
يعتمد في بنائه على البلوكات الجاهزة التي تتكامل معا لتصنع البناء الضخم.و
البلوك أو مايسمى بالدالة ( function ) ما هو إلا مجموعة من الأوامر متعلقة
بجزء محدد من البرنامج، وتنتج البلوكات من تقسيم البرنامج إلى أجزاء أصغر لكل
وظيفته التي يتم تحديدها بالأوامر التي تكتب في البلوك.
و استخدام البلوكات الجاهزة يوفر الوقت ولا سيما عندما نرغب في تطوير
البرنامج أو إحداث تغيرات جذرية به. وليس هذا هو الحال مع لغة مثل بيسك حيث
يبني المبرمج البناء كله من البداية، فإذا أراد المبرمج تعديل البرنامج فإنه
يعيد كتابتة أو على الأقل يعيد كتابة أغلب أجزائة.
ونستطيع مع لغة C استخدام البلوكات الجاهزة الموجودة بمكتبات المبرمجين
الآخرين، أو بناء مكتبة من الدوال للاستعانة بها وقت الحاجة.
وهناك خطوات مطلوبة لتنفيذ أي برنامج وهي:
1- كتابة البرنامج وحفظة على القرص باستخدام أحد برامج التحرير ( Editors)
2- عملية الترجمة ( compilation ) وينتج عن هذه العملية البرنامج الهدف الذي
يحمل عادة الامتداد " OBJ" .
3- عملية الربط بمكتبة اللغة ( Linking) وينتج عن هذه العملية البرنامج
التنفيذي الذي يحمل الامتداد "EXE". والبرنامج التنفيذي هو البرنامج الذي يتم
تنفيذه بمجرد إدخال اسمه .
وهناك العديد من برامج الترجمة الشهيرة على الكمبيوتر مثل " Terbo C" أو
"Quick C" وتلك البرامج تحتوي على بيئة مجمعة تشمل محررا لكتابة البرنامج، و
قوائم ذات نوافذ بها أوامر الحفظ والترجمة و الربط و التنفيذ.
-------------------------------------------------------------------
الفصل الثاني :
مبادئ لغة ال C : 1- البرنامج الأول بلغة ال C من أفضل الطرق للبدء بتعلم لغة جديدة النظر لأحد البرامج البسيطة المكتوبة
بهذه اللغة ودراسة أجزاءه كل على حدة، ولنتخذ برنامجا متكاملا جاهزا للتنفيذ.
يوضح البرنامج التالي برنامجا صغيرا يطبع على الشاشة عند تشغيله العبارة
"Hello C "
CODE |
#include main() { printf ( “Hello C”); } |
إن البرنامج يعتمد أساسا على الدالة printf فهي المسئولة عن طباعة العبارة
المطلوب طباعتها على الشاشة. وعندما تتقدم في اللغة ستجد أن لغة C مبنية من
دوال مختلفة لكل وظيفتها المحددة، كما ذكرنا سابقا.
ولتؤدي الدالة printf المطلوب منها لا تستخدم بمفردها بل لابد أن تأتي بداخل
الإطار الموضح بالشكل السابق حتى تتمكن من القيام بعملها.
والإطار الذى يحوي البرنامج يبدأ بكلمة main يعقبها القوس الأيسر " { " والذي
تتالى بعده عبارات البرنامج، ثم ينتهي بالقوس الأيمن " } ".
ويطلق على الجزء المحتوى بين القوسين " { } " اسم البلوك (block) .و البلوك
الذي يبدأ بكلمة (main) يسمى بلوك البرنامج.
وفي المثال السابق يتكون البرنامج من بلوك واحد هو بلوك البرنامج.
والسطر الأول من البرنامج والمحصور بين العلامتين " /* */" يسمى التعليق
ويستخدم التعليق لكتابة الملاحظات على البرنامج، ومن المفيد دوما كتابة
التعليقات لتسهيل مراجعة البرنامج .
وعند ترجمة هذا البرنامج فإن مترجم لغة C يتجاهل تماما كل ما يأتي بين هاتين
العلامتين. ويجوز أن تضيف إلى البرنامج ما تشاء من الملاحظات وفي أي مكان من
البرنامج وبأي عدد من السطور مادمت تبدأ وتنتهي بالعلامتين المميزتين" /* " ،
" */ ".
أما السطر الثاني والذي يبدأ بالعلامة الخاصة " # " فيسمى بالتوجيه (
Directive ) وهو لا يمثل جزءا من منطق البرنامج ولكنه يستخدم لتوجيه المترجم
أثناء الترجمة ، حيث يدله على مكان الملف " stdio.h " والذي يطلق عليه اسم
ملف العناوين للدخل و الخرج أو (Standard Input Output header file )
ويجب الالتزام بسطور التوجيه لأن هناك دوال لابد لها من إستدعاء ملفات خاصه
بها، وعندما نستخدم دالة دون استخدام سطر التوجية الخاص بها نحصل على خطأ من
المترجم عند بداية الترجمة.
و هناك قواعد بسيطة لكتابة البرنامج بلغة C ولابد من مراعتها عند كتابة
البرامج ومن هذه القواعد ما يمكن التسامح فيه فمثلا المسافات الخالية والسطور
التي تفصل ما بين الكلمات والعبارات كلها اختيارية ويمكن الأستغناء عنها.
ولكن هناك من القواعد ما يجب الإلتزام به :
1-تكتب التوجيهات على سطر مستقل.
2- تستخدم الدوال ( مثل printf ) في تكوين عبارات البرنامج ( staements)
وتنتهي كل عبارة بفاصلة منقوطة. والفاصلة المنقوطة لاغنى عنها حتى لو كان
البرنامج محتويا على عبارة واحدة، وأغلب الأخطاء التي نحصل عليها تكون نتيجة
نسيان فاصلة منقوطة.
3- تتطلب بعض الكلمات الخاصة باللغة أن نعقبها بمسافة خالية على الأقل وإلا
تعرضنا لرسالة خطأ من المترجم عند ترجمة البرنامج.
4- تكتب الكلمات المفتاحية للغة ( key words ) مثل أسماء الدوال (مثل printf
) بالحروف الصغيرة ( small letters).