المساعد الشخصي الرقمي

عرض الإصدار الكامل : البرمجه بلغة c++


ونة حزن
07-13-2006, 03:00 PM
بسم الله الرحمن الرحيم
نبدا هذا اليوم بالدرس الاول للغة C املين ان ينال رضاكم ... وتاسف للتاخير في طرح المواضيع بسبب انجاز بعض الاعمال الخاصة وشكرا لكم



لغة 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

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

يوضح البرنامج التالي برنامجا صغيرا يطبع على الشاشة عند تشغيله العبارة
"Hello C "



لنبدأ مع جملة include. تستخدم هذه العبارة اذا اردت تضمين او تشميل مكتبة وظائف اضافية في شفرة برنامجك، فالوظيفة المستخدمة printf ليست من ضمن وظائف لغة C، لذلك نحتاج الى تضمين مكتبة stdio.h وهي مكتبة دوال الادخال والاخراج وفي برنامجنا استخدامنا الوظيفة printf وهي احدى دوال المكتبة stdio.h.



توجد مئات المكتبات والتي تأتي مع حزمة مترجم لغة C، معظمها قياسية تتبع لمعايير ANSI C. وفي العادة تكون معظم هذه المكتبات في مجلد خاص به، اما اذا كانت المكتبة في مجلد غير المجلد المحدد لمترجم بيئة التطوير، فعليك تحديده بنفسك باستخدام علامة التنصيص المزدوجة " و " عوضا عن الاقواس المثلثة < و >:

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

ولتؤدي الدالة printf المطلوب منها لا تستخدم بمفردها بل لابد أن تأتي بداخل الإطار الموضح بالشكل السابق حتى تتمكن من القيام بعملها.

والإطار الذى يحوي البرنامج يبدأ بكلمة main يعقبها القوس الأيسر " { " والذي تتالى بعده عبارات البرنامج، ثم ينتهي بالقوس الأيمن " } ".

ويطلق على الجزء المحتوى بين القوسين " { } " اسم البلوك (block) .و البلوك الذي يبدأ بكلمة (main) يسمى بلوك البرنامج.
وفي المثال السابق يتكون البرنامج من بلوك واحد هو بلوك البرنامج.

والسطر الأول من البرنامج والمحصور بين العلامتين " /* */" يسمى التعليق ويستخدم التعليق لكتابة الملاحظات على البرنامج، ومن المفيد دوما كتابة التعليقات لتسهيل مراجعة البرنامج .

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


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

ولكن هناك من القواعد ما يجب الإلتزام به :

1-تكتب التوجيهات على سطر مستقل.
2- تستخدم الدوال ( مثل printf ) في تكوين عبارات البرنامج ( staements) وتنتهي كل عبارة بفاصلة منقوطة. والفاصلة المنقوطة لاغنى عنها حتى لو كان البرنامج محتويا على عبارة واحدة، وأغلب الأخطاء التي نحصل عليها تكون نتيجة نسيان فاصلة منقوطة.
3- تتطلب بعض الكلمات الخاصة باللغة أن نعقبها بمسافة خالية على الأقل وإلا تعرضنا لرسالة خطأ من المترجم عند ترجمة البرنامج.
4- تكتب الكلمات المفتاحية للغة ( key words ) مثل أسماء الدوال (مثل printf ) بالحروف الصغيرة ( small letters).

ونة حزن
07-13-2006, 03:14 PM
--------------------------------------------------------------------------------

مكونات لغة C++ وادواتها
1- الاسماء التعريفية Identifiers
وتطلق على المتغيرات والدوال والمؤشرات والعناوين وغيرها ، ويتراوح طول المعرف بين حرف واحد وعدة حروف ، وينبغي ان يكون الرمز الاول حرفا ابجديا ويمكن ان تكون بقية الرموز مؤلفة من حروف وارقام ولايجوز استخدام الرموز الخاصة او حروف غير انكليزية مثل :
a, b6 , length , X_ray , sum , flow_rate

ملاحظة : في لغة سي ++ هناك فرق بين الحروف الكبيرة والحروف الصغيرة اليك المثال لدينا ثلاثة معرفات وكلها صحيحة لاحظ الفرق بينها SYSTEM , System , system ثلاثة معرفات مختلفة .

2- الكلمات المحجوزة Keywords
هي كلمات قياسية معرفة مسبقا لمترجم سي ++

تمثيل الثوابت العددية Numeric Constants
1- الاعداد الصحيحة Integers
وتكتب بدون فاصلة عشرية وتصنف حسب طولها والسعة التخزينية لها في الذاكرة
- ثوابت صحيحة طويلة وهي long int
- ثوابت صحيحة قصيرة وهي short int
- ثوابت صحيحة بدون اشارة unsigned int

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

2- الاعداد الحقيقية Floating-Point : وهي الثوابت العددية التي تستعمل الفصلة العشرية
3- الصورة الاسية للاعداد الحقيقية E-formatted : تستخدم هذه الصورة للاعداد المتناهية في الصغر او المتناهية في الكبر وذلك للحفاظ على صورتها من التقريب العشري فمثلا 0.00135 تكون بالصور الاسية 1.35e-5 ويبين الجدول التالي طريقة تمثيل الثوابت الحقيقية بالتدوين الاسي :
وكما في الاعداد الصحيحة من حيث الحيز الذي تشغله في الذاكرة يمكن تقسيم الاعداد الحقيقية
- ثوابت حقيقية float مثل 123.16 و 1.25e-2
- ثوابت حقيقية مضاعفة double مثل 127.1675678
والفرق ان بعض التطبيقات تحتاج الى التعامل مع الاعداد بدقة عالية فتستخدم الثوابت المضاعفة .

الثوابت الرمزية String
هو سلسلة من الرموز مكون من حرف او مجموعة من الحروف والارقام والرموز الخاصة التي توضع بين علامتي اقتباس او ما يسمى بالحاصرة العلوية المزدوجة " " ، ويسمى عدد الخانات المحجوزة بين الحاصرات المزدوجة بطول ثابت الرمزي مثل "learn c" طول الثايت هو 7 رموز حيث يحسب الفراغ رمز

الرادار
07-18-2006, 06:02 AM
باقي شي يتبع طيب مافهمت يبي لك جلسه يالمشرفه

الصنديد
07-25-2006, 11:17 PM
include <stdio.h>;

/* الدوال


main (void)
{


/* تعليمات البرنامج


}



شكرا لك ولا هنت

ونة حزن
07-26-2006, 02:07 AM
اي سؤال انا موجوده

يسلمووو للمتابعه واتمنى ان تكونو استفدتو