صفوف

صفوف » صفوف لغات البرمجة » C , C++ , C Sharp »  طريقة إعداد البرنامج

 طريقة إعداد البرنامج


 طريقة إعداد البرنامج  أضيف في: 11/08/2009
إن عملية إعداد وتحضير برنامج سي يشابه إعداد البرامج في اللغات الأخرى وتتم كما يلي :

تحضير البرنامج المصدر(Source) ويتم ذلك باستخدام منسق النصوص الذي يمثل جزءا من النظام المستخدم. بعد الانتهاء من تحضير برنامج المصدر يتم استخدام أمر ترجم (Compile) لبدء عملية الترجمة حيث ينتج عنها غالبا تحديد الأخطاء الموجودة في البرنامج. يجب تصحيح هذه الأخطاء إلى حين الحصول على برنامج نظيف من الأخطاء، عندئذ ينتج البرنامج الهدف(Object). بعدها تتم عملية ربط هذا البرنامج الهدف مع أجزاء الدوال المستخدمة فيه والمتوفرة في مكتبة الدوال أتوماتيكيا وينتج عن ذلك الشكل النهائي التنفيذي للبرنامج (Executable) من المفترض عند تنفيذ هذا البرنامج، أن نحصل على النتائج المطلوبة منه وعكس ذلك يجب عمل فحص (Testing) للبرنامج لتحديد الأخطاء المنطقية، ويجب تكرار هذه الخطوة إلى حين الحصول على النتائج النهائية المطلوبة بشكل صحيح.

غالبا ما تحتاج هذه العملية إلى أربع مراحل للمرور على البرنامج المصدر وهي:
1. مرحلة تضمين برنامج المصدر والأجزاء الخارجية عن طريق المعالجة الأولية (Preprocess).

2. مرحلة تصريف البرنامج (Parsing).

3. مرحلة خلق برنامج الهدف وهي مرحلة ترجمة البرنامج من لغة سي (المصدر) إلى لغة الجهازالتنفيذية(الهدف).

4. مرحلة تحسين أداء عمل البرنامج الهدف (Optimization).

المثال التالي يوضح هذه المراحل:

اكتب برنامجا لطباعة كلمة "مرحبا".

1. نقوم بتحضير البرنامج المصدري التالي عن طريق منسق النصوص وبعدها نقوم بحفظه على ملف اسمه : Hello.c




PHP CODE: 0001
0002
0003
0004
0005
0006
0007
0008
[COLOR=#0000BB]<?php main ( )

{

; (
"مرحبا")printf

};
?> [/COLOR]





2. إذا لم يكن هناك أخطاء في هذا البرنامج سيتم خلق برنامج تنفيذي مقابل له باسم a.out.

3. وعند تنفيذه مباشرة سوف يقوم بكتابة "مرحباً" على الشاشة.

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

5. في حالة وجود أخطاء في برنامج المصدر فإن المؤشر سوف يقف عند السطر الذي يحوي الخطأ مع إظهار ملاحظة مناسبة تشرح طبيعة هذا الخطأ مختصر.

تركيب برنامج سي

1. يتركب برنامج سي من مجموعة من الدوال(Functions) ، كل منها يعمل على أداء عمل محدد.

2. إن الدوال التي يتكون منها برنامج سي يمكن أن تتم ترجمتها كلا على حدة، ومن ثم يجري ربطها معاً ومع أجزاء مكتبة سي؛ لتكون البرنامج النهائي.

3. إن الاعتماد الأساسي في لغة سي يكون على مكتبة الدوال الجاهزة حتى أن البرنامج الرئيسي نفسه مبني من دالة رئيس اسمه(main) ، وهو يمثل نقطة بداية تنفيذ برنامج سي. إن صيغة الدالة هي كما يلي :



PHP CODE: 0001
0002
0003
0004
0005
0006
0007
0008
[COLOR=#0000BB] main ( )

{

:

};
?> [/COLOR]





حيث يوضع بين الأقواس ( ) المعاملات (arguments) التي قد يتعامل معها البرنامج، أما جسم الدالة فينحصر بين الأقواس { }التي يجب أن تكون متساوية في العدد. أما الدوال الأخرى فتركيبها يشبه تركيب الدالة الرئيسي هذا ما عدا السطر الذي يحدد اسم ونوع الدالة والصيغة المستخدمة في هذه الحالة:

PHP CODE: 0001
0002
0003
0004
0005
0006
0007
0008
[COLOR=#0000BB]<?php type name (arguments)

{

.

};
?> [/COLOR]





الاستنتاج

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

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

• إن جملة سي يجب أن تنتهي بالرمز ;.

• يمكن للجملة أن تستمر في أكثر من سطر كما يمكن وضع أي عدد من الفراغات فيها.

• تستخدم لغة سي الأقواس { }لتحديد جزء يمكن تمثيله ككتلة واحدة يتم التعامل معها وتنفيذها معا، وهي تماثل كلمات begin و end في لغة باسكال.

مثال

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


الحل:

يمكن وضع الخوارزمية للحل كما يلي:

1. اختر رقما عشوائيا ضمن المدى المحدد وباستخدام الدالة الخاصة بذلك.

2. بينما لم يدخل المستخدم رقم الخروج (99) اعمل ما يلي :

– اطلب من المستخدم أن يدخل رقما.

– إذا كان هذا الرقم مساويا للرقم العشوائي (أي صحيحا) ابتهج واطلب منه رقما آخر.

– أما إذا كان اصغر أو اكبر منه اطبع رسالة بذلك أيضا.

3. عندما يدخل المستخدم رقم 99 إنهاء مع الشكر.

PHP CODE: 0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
[COLOR=#0000BB]<?php #define Max 10

int getx (int max ); reward ( );

main ( )

{

int n, guess;

n = getran (max);

while ( (
guess = getnum (max) ) != 99 )

{ if (
guess == n )

{
reward ( );

n = getran (max);

break; }

if (
guess < n)

{
printf (" Your number was too high. \n"); }

if (
guess > n )

{
printf (" Your number was too low. \n"); }

}

printf (" Thank you for using this program \n " );

}
?> [/COLOR]





سيلاحظ هنا، عزيزي الدارس، بأننا قمنا باستخدام جملة تعريف الثوابت في لغة سي وهي#define وقد استخدمناها لنعرف مدى الرقم العشوائي 10. كما أننا استخدمنا عدة دوال داخل البرنامج الرئيسي. مثلgetran و printfوهما متوفرتان في مكتبة سي. أما الدوال getnum وreward فهما غير متوفرتين في مكتبة سي. لذا يجب كتابتهما هنا كما يلي:



PHP CODE: 0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
[COLOR=#0000BB]<?php int getnum ( max );

{
int guess = 0;

while (
guess > 1 || ‌‌guess < max )

{
printf (" enter you guess between 1 and %d ، \n" , max);

printf (" enter 99 to exit " );

scanf (" % d ", &guess );

printf (" /n thank you /n " );

}

return (
guess );

}

أما الدالة الأخرى للشكر والمكافأة وهي:

reward ( )

{
printf (" You guessed good number \n") }
?> [/COLOR]





لاحظ بأنه بالإمكان تحضير هذه الدوال منفصلة أو في نفس ملف البرنامج الرئيس.

فيديو ذو علاقة


الكاتب: صفوف انقر هنا لمراسلة صفوف أنقر هنا للإنتقال إلى موقع صفوف إضافة للمفضلة إضافة لمفضلة Google إضافة لمفضلة Delicious إضافة لمفضلة Digg إضافة لمفضلة Facebook
خيارات الدرس : ارسل الدرس لصديق ارسل الدرس لصديق  طباعة الدرس طباعة الدرس  حفظ الدرس كملف Word حفظ الدرس كملف Word  حفظ الدرس كملف PDF حفظ الدرس كملف PDF

 أساسيات كتابة البرنامج |   استخدام التحكم داخل التطبيق

التعليقات
لا يـوجـد تـعليـقات على هـذا الـدرس



أرشيف الأقسام
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44