منتديات ماك للعرب  

العودة   منتديات ماك للعرب > ركن برمجة الماكنتوش > مجلس دورة ماك للعرب > الدروس

الدروس سيتم نشر الدروس على حلقات في هذا القسم باذن الله عن طريق الاستاذ ابو بكر

موضوع مغلق
 
LinkBack أدوات الموضوع انواع عرض الموضوع
  #1 (permalink)  
قديم 03-27-2008, 09:14 AM
الصورة الرمزية أبو بكر
Moderator
 
تاريخ التسجيل: Dec 2004
الدولة: أبوظبي - الإمارات
المشاركات: 621
Thanks: 0
Thanked 2 Times in 2 Posts
أبو بكر is on a distinguished road
افتراضي الدرس (١) - لغة C - الروتينات والمتغيرات

دورة ماك للعرب - برمجة Apple
Carbon القسم الأول - المبتدئ
لغة C
الدرس الأول: مبادئ اللغة
السبت الموافق 4-محرم- 1429هـ 12-1-2008م


_________________________________________________
المصدر: كتاب (داخل Carbon) - تأليف أبو بكر، جميع الحقوق محفوظة لماك للعرب فقط.
المرجع: داخل الماكنتوش وهو مرجع Apple الخاص بها.
_________________________________________________


لغة C الموحدة:
سنتناول في دروسنا لغة C القياسية الموحدة وهي التي تعرف باسم ANSI C.
ويقصد بـ ANSI «المعهد الأمريكي القومي للمقاييس» - American National Standards Institute-.
وأما فائدة ANSI C هي أن تضمن بأن النص البرمجي المكتوب يمكن نقله من نظام تشغيل معين إلى أخر دون ظهور المشاكل، فيمكن نقل البرنامج من الماكنتوش إلى Windows أو العكس.

الأهداف:
  • التعرّف على أجزاء البرنامج الذي يكتب بلغة C.
  • التعرّف على الروتين واستخدامه.
  • استخدام المتغيرات.
مصطلحات ومعناها:
  • Code: النص البرمجي ويعرف أيضا باسم «الشيفرة» وأيضا يعرف باسم: «المصدر source»، ويقصد به ما يكتبه المبرمج من أوامر ونصوص لتشكل في النهاية برنامجا معينا، ويطلق على السطر الواحد أيضا.
  • Compiler: المترجم والذي يقوم بتحويل النص البرمجي أو الشيفرة، من اللغة المعنية (في حالتنا من لغة C) إلى تعليمات لغة الآلة، ولا يفهم هذه اللغة إلا وحدة المعالجة المركزية في الحاسوب CPU، ويقوم بحفظ التعليمات وجمعها في ملف الهدف، ويسمى الهدف باللغة الإنجليزية بـ: object.
  • Linker: الرابط أو الموصل، وهو البرنامج الذي يقوم بتحويل ملف الهدف إلى برنامج تطبيقي قابل للتنفيذ.
مرحلة التنفيذ:
عند فتح أي برنامج يتم تثبيته مثل Adobe PhotoShop، فإن الذي يقوم بفتح البرنامج هو نظام التشغيل، ثم يبدأ نظام التشغيل بتنفيد أوامر البرنامج واحدا تلو الأخر حتى يصل إلى نهاية البرنامج، فكيف تتم مرحلة التنفيذ؟ ومن أين يبدأ النظام بتنفيد البرنامج؟ هل من أوله ؟ أم من آخره؟ أم من نقطة معينة يبدأ بها؟
لا شك أن هناك نقطة معينة يبدأ بها نظام التشغيل، ففي لغة ANSI C هذه النقطة تسمى «نقطة المدخل» وهي عبارة عن الروتين الأساسي: main function. فما هو هذا الروتين؟

أنواع البيانات الرئيسية:
من أهم أنواع البيانات الرئيسية هي الأرقام، وتستخدم في البرمجة كما تستخدم في الرياضيات تماما وهي على النحو التالي:
  • مجموعة الأعداد الصحيحة: Integer وتكتب بلغة C اختصارا: int كما في المثال التالي.
  • مجموعة الأعداد الصحيحة الطويلة: Long Integer وتكتب بلغة C اختصارا: long.
  • مجموعة الأعداد الحقيقية: Real Numbers، وتكتب بلغة C: بـ float.
  • مجموعة الأعداد الحقيقية المضاعفة: Double Real Numbers، وتكتب بلغة C اختصارا ب: double.
المتغيرات وأهميتها:
عند التعامل مع القيم الرياضية كالأرقام والقيم المنطقية، فإننا نحتاج إلى مكان في ذاكرة الحاسوب يتم تخصيصه لحفظها، وهذا المكان يطلق عليه باسم المتغير، ويعرف باللغة الإنجليزية باسم variable.
يجب تعريف المتغير قبل استخدامه، وطريقة تعريفه سهلة جدا وهي على النحو التالي:
يجب أن تبدأ بنوع المتغير وهو المجموعة التي ينتمي إليها، ثم تتبعه باسم المتغير مثال: int x;، فهنا اسم المتغير x، ونوعه int وقد سبق شرح هذا النوع إذ هو عبارة عن مجموعة الأعداد الصحيحة، وهذا يعني أن المتغير x ينتمي إلى هذه المجموعة فقط، ولا يصح أن نعطي المتغير x قيمة لا تنتمي إلى مجال المجموعة.
تسمى عملية تعريف المتغير بالإعلان عنه.
أمثلة عن المتغيرات:
كود:
(1) int x, y;
(2) int r = 5;
(3) long L;
(4) double d;
  • لاحظ أن الأرقام كتبت لتكون مرجعا فقط ولا تكتب في البرمجة مطلقا
  • في السطر رقم (1) تم الإعلان عن متغيرين الأول x، والثاني y وكلاهما من النوع int. لاحظ أنك تستطيع تعريف أكثر من متغير في نفس الجملة الواحدة، وذلك بالفصل بينهما بالفاصلة.
  • وفي السطر رقم (2) تم تعريف المتغير r وهو من النوع int وأيضا تم إعطاؤه القيمة الافتراضية وهي (5) في هذا المثال، تسمى هذه العملية تهيئة المتغير بقيمة افتراضية محددة وتسمى هذه القيمة -المعطاة أثناء التعريف- باللغة الإنجليزية: Default value أو Initial value
  • تجد أيضا في السطر رقم (3) تم تعريف المتغير L على أنه من النوع long.
  • وأيضا في السطر رقم (4) تم تعريف المتغير d على أنه من النوع double.
تحديد قيمة للمتغير أثناء كتابة النص البرمجي:
سنقوم الأن بإعطاء قيم للمتغيرات السابقة في هذا المثال:
كود:
(1) x = r+1;
(2) y = 2;
(3) L = r * x;
(4) d = r * 3.14 + 10;
  • في السطر رقم (1) سيتم أولا جمع قيمة المتغير r مع العدد 1، ثم تخزين الناتج في المتغير x، ستجد أن قيمة المتغير x الأن تساوي 6، لأن قيمة r في المثال السابق = 5.
  • وفي السطر رقم (2) يتم تخزين العدد 2 في المتغير y، أي أن قيمة y تساوي 2.
  • وفي السطر رقم (3) يتم أولا إيجاد حاصل ضرب قيمة المتغير r مع قيمة المتغير x، ثم تخزين الناتج في المتغير L، أي أن قيمة المتغير L الأن تساوي 30.
  • وفي السطر الأخير رقم (4) يتم أولا إيجاد حاصل ضرب المتغير r مع القيمة 3.14 (وهي قيمة Pi أو ط=22/7) ثم إضافة القيمة 10 إلى ناتج الضرب ومن ثم تخزين الناتج في المتغير d. الأن قيمة المتغير d = 25.7.
الروتينات في البرمجة:
لعلك تتذكر أخي المبرمج «الدوال في الرياضيات»، لندرس معا هذه الدالة كمثال توضيحي:
د(س) = ٥س + ٨، فهذه الدالة هي دالة -د- في س، وتسمى باللغة الإنجليزية Function وتكتب بهذه الصورة: f(x) = 5x + 8، والترجمة العربية لكملة function هي دالة، وهذه الترجمة صدرت من مجمع اللغة العربية في مصر، ويقصد بها أن قيمة المتغير (س) تدل على قيمة الدالة (د)، فـإذا كانت قيمة المتغير(س) = ٨، فبالتعويض نجد أن قيمة الدالة (د) = ٤٨.
وفي سوريا استخدم مجمع اللغة العربية الكلمة تطبيق، أي أن قيمة المتغير (س) تنطبق في قيمة الدالة (د) وكذلك في الأردن استخدمت الكلمة اقتران أي أن الدالة (د) مقترنة بقيمة المتغير (س) فجميع المصطلحات السابقة صحيحة وتعبر عن نفس الغرض.
وفي لغة ANSI C الروتين الأساسي: main function، ما هو إلا دالة برمجية كما يطلق عليه بعض المبرمجون العرب، إلا أن كلمة دالة لا تؤتي المعنى بشكل صحيح، لأن function في البرمجة يقوم بعمليات كثيرة وإجراءات هامة فسنطلق عليه اسما أخر أفضل من الدالة، وهو على نوعين:
  • النوع الأول: الإجراء، ويطلق على كل روتين لا يعود بقيمة ويسمى باللغة الإنجليزية Procedure.
  • النوع الثاني: العملية، وتطلق على كل روتين يعود بقيمة ويسمى باللغة الإنجليزية Function.
ويعرف كلٌّ من النوعين باسم الروتين، لأن استخدام الـ function في البرمجة ضروري جدا، ويستخدم بكثرة، والكلمة روتين تدل على الشيء الكثير الحدوث، فتقول مثلا: أريد أن أكسر الروتين اليومي، للتخلص من الأعمال التي تؤديها بشكل يومي.

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

أجزاء البرنامج المكتوب بواسطة لغة C:
لنلق نظرة على هذا النص البرمجي:
كود:
(1) // definitions and declarations area
(2) int main()
(3) {
(4)     printf ("%s", "Hello World");
(5)    return 0;
(6) }
  • نجد أن البرنامج يتألف من ستة سطور، لاحظ أن الأرقام كتبت لتكون مرجعا فقط ولا تكتب في البرمجة مطلقا، فالسطر رقم (1) بدأ بشرطتين مائلتين وذلك للدلالة على أن النص المكتوب خلفها هو مجرد تعليق فقط، وسيؤدي ذلك إلى تجاهله وعدم تنفيذه، فالتعيقات تفيد في كتابة نصوص مساعدة لتكون بمثابة الملاحظات أو التذكير خصوصا عندما يكون النص البرمجي طويل ويقدّر عدد أسطره بمئات الألاف، عندها ستعرف قيمة هذه التعليقات. لاحظ أن العبارة تقول: هنا مكان التعريف والإعلان، فيدل هذا على أن بداية البرنامج تكون للتعريفات المطلوبة والمستخدمة في النص البرمجي.
  • والسطر رقم (2) هو بداية الروتين الأساسي، فهو يسمى تعريف الروتين الأساسي main، وسنوقم بتحليله الأن:
  • الكلمة int هي من أنواع البيانات الهامة في لغة C، ويقصد بها مجموعة الأعداد الصحيحة في الرياضيات، ثم بعد ذلك الكلمة (main) وهي اسم الروتين، وهذه هي طريقة تعريف الروتين في لغة C، فيبدأ التعريف بنوع البيانات المراد إرجاعه في حال كان الروتين من نوع العملية (تذّكر! في تعريف الروتين الذي يعود بعملية) وهنا القيمة التي يرجعها الروتين أو يعود بها هي من مجموعة الأعداد الصحيحة، أي أن هذه القيمة تنتمي لمجموعة الأعداد الصحيحة. ثم بعد اسم الروتين تم فتح قوس وإغلاقه مباشرة للدلالة على أن هذا روتين، ولو لم نقم بكتابة القوسين لكان ذلك تعريف المتغير. راجع الفقرة التالية في تعريف الروتين فإنها تتناوله بالتفصيل.
  • ثم في السطر (3) تم فتح القوس الكبيرة ( الحاصرة: } ) للدلالة على أنه بدأت الأن كتابة وظائف وعمليات الروتين وما سيقوم به ويؤديه.
  • وفي السطر (4) تم كتابة جملة الأمر الخاص بطباعة الأحرف والكلمات على الشاشة وهو الأمر printf، وهذا السطر هو أوّل وظائف الروتين الأساسي.
  • وفي السطر (5) تم كتابة جملة الأمر الخاص بالخروج من الروتين وترك تنفيذه والعودة إلى المكان الذي كان فيه قبل أن يدخل هذا الروتين وهو الأمر return، وهنا سيتم إنهاء البرنامج والرجوع إلى نظام التشغيل أو بيئة البرمجة في حال كان التنفيذ من خلالها كبرنامجنا Xcode. لاحظ أن هذا الأمر تلحقه القيمة صفر (0)، أي أن هذا الأمر سيعود بالقيمة 0 إلى المكان الذي كان فيه قبل أن يتم تنفيذ البرنامج، وعندما تعود هذه القيمة إلى نظام التشغيل فإن لها معنى مهم وهو أن البرنامج تم تنفيذه وإنهاؤه دون حدوث أي مشاكل.
  • وفي السطر (6) تم إغلاق القوس الكبير (الحاصرة: {) للدلالة على نهاية تعريف الروتين الأساسي main.
ملاحظة مهمة: إن أي جملة من جمل الأوامر في لغة C يجب أن تنتهي بالفاصلة المنقوطة: ( ; )

شرح الروتين بنوعيه:
النوع الأول الإجراء وهو الروتين الذي لا يعود بقيمة:
يتم تعريفه على هذا النحو:
كود:
(1) void main()
(2) {
(3)   ......
(4)   return;
(5) }
  • ففي السطر رقم (1) تم البدء بالكلمة void وتعني (الفارغ أو الملغي) ويقصد منها أن الإجراء لا يعود بأي قيمة. فعندما تريد تعريف روتين لا يعود بقيمة عليك فقط أن تسبق اسمه بهذه الكلمة void.، يلي هذه الكلمة اسم الإجراء وهو هنا في هذه الحالة الروتين الأساسي، لاحظ وجود الأقواس بعد اسم الروتين وإلا لن يكون روتينا.
  • السطر رقم (2) هو بداية تحديد وظائف وعمليات الإجراء، أي الغرض الذي سيؤديه، لاحظ أن السطر (3) تم كتابة نقاط للدلالة على أن الوظيفة غير محددة هنا فقط، والسطر (4) تم كتابة جملة الأمر الخاص بالخروج من الروتين والعودة إلى المكان السابق قبل دخول الروتين، لاحظ هنا في الإجراء لم يتم إضافة أية قيم لأن هذا الروتين هو إجراءً، والإجراء لا يعود بقيم أبدا، فإذا ما حاولت بإعادة قيم فستظهر لك التحذيرات الصفراء وأحيانا الأخطاء التي لا تتوقع حدوثها. السطر رقم (5) هو نهاية تعريف الإجراء.
أمثلة توضح تعريف الإجراءات:
كود:
المثال الأول:
(1) void GetMyName() { .... }
المثال الثاني:
(2) void Set_Data() { .... }
المثال الثالث:
(3) void Read5Data() { .... }
المثال الرابع:
(4) void Int2Long() { .... }
المثال الخامس:
(5) void RunX() { .... }
جميع الروتينات الخمس السابقة إجراءات، لأنها لا تعود بقيم، كيف عرفنا ذلك، عرفنا عن طريق وجود الكلمة void.
اسم الإجراء الأول هو: GetMyName واسم الإجراء الثاني هو: Set_Data واسم الإجراء الثالث: Read5Data واسم الإجراء الرابع هو: Int2Long، وأما الإجراء الأخير هو: RunX.

ليس من الضروري أن يشتمل الروتين على أمر الخروج منه: return..

كيف يتم تنفيذ الروتين؟ يتم تنفيذ الروتين باستدعائه، واستدعاء الإجراء يختلف عن استدعاء العملية، فيتم استدعاء الإجراءات الخمس السابقة بكتابة أسمائها كما وردت في التعريف -مع مراعاة حالة الأحرف الإنجليزية إذا كانت كبيرة أو صغيرة، كما يجب مراعاة الأقواس ما إذا كانت تشتمل على وسائط، وفي الحالات الخمس السابقة لا تشتمل الروتينات على وسائط لذلك تم إبقاء الأقواس فارغة- وذلك على النحو التالي:
استدعاء الإجراء الأول:
كود:
GetMyName();
وكذلك استدعاء بقية الإجراءات:
Set_Data();     Read5Data();     Int2Long();     RunX();
إن استدعاء الروتين هو جملة في لغة C ولذلك تم إنهاء الجملة بالفاصلة المنقوطة ( ; )، وعند استدعاء الروتين سيتم تنفيذ وظائفه المكتوبة بين الحاصرتين.


النوع الثاني: العملية وتعرف بالروتين الذي يعود بقيمة:
يتم تعريفها على هذا النحو:
كود:
(1) int main()
(2) {
(3)   int x = 5;
(4)   return x;
(5) }
  • ففي السطر رقم (1) تم البدء بنوع من أنواع البيانات الرئيسية وهو int وتعني أن هذا الروتين سيعود بقيمة من هذا النوع. فعندما تريد تعريف روتين يعود بقيمة عليك فقط أن تسبق اسمه بنوع القيمة التي تود إرجاعها.، يلي هذه الكلمة اسم الروتين وهو هنا في هذه الحالة الروتين الأساسي، لاحظ وجود الأقواس بعد اسم الروتين وإلا لن يكون روتينا.
  • السطر رقم (2) هو بداية تحديد وظائف وعمليات الروتين، أي الغرض الذي سيؤديه، لاحظ أن في السطر (3) تم تعريف المتغير x وهو من نوع int، ولأن نوع المتغير x اتفق مع نوع القيمة التي يرجعها هذا الروتين فنستطيع إعادة قيمة المتغير وتم ذلك فعلا في السطر (4). السطر رقم (5) هو نهاية تعريف الروتين أو العملية.
أمثلة توضح تعريف العمليات:
كود:
المثال الأول:
(1) int GetMyName() { ....return 0; }
المثال الثاني:
(2) long Set_Data() { .... return 123456789; }
المثال الثالث:
(3) double Read5Data() { .... return 3.141593445677;}
المثال لرابع:
(4) float Int2Long() { .... return 3.14159;}
المثال الخامس:
(5) int RunX() { .... return -100;}
جميع الروتينات الخمس السابقة عمليات، لأنها تعود بقيم، كيف عرفنا ذلك، عن طريق وجود نوع القيمة المعادة.
اسم العملية الأولى هي: GetMyName واسم العملية الثانية هي: Set_Data واسم العملية الثالثة: Read5Data واسم العملية الرابعة هي: Int2Long، وأما العملية الأخيرة هي: RunX.

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

البرنامج العملي للدرس الأول من دروس لغة C:
  • قم بفتح برنامج Xcode، واختر New Project من القائمة File، من مربع حوار New Project، ومن قائمة نوع المشروع ومن العنصر Application اخترCarbon Appliction، ثم اضغط على الزر Next، قم بإعطاء المشروع اسم وليكن MyFirstCApplication واضغط على الزر Finish.
  • بعد ذلك ستظهر نافذة المشروع MyFirstCApplication، من النصف الأيمن للنافذة انقر نقرا مزدوجا على الملف main.c لفتحه، ثم قم بتحديد النص البرمجي تحديدا كليا واضغط مفتاح الحذف من لوحة المفاتيح ليتم التخلص من النص بالكامل. لا تقلق سنستخدم لغة C فقط الأن.
  • الأن اكتب هذا البرنامج بالكامل وبكل دقة:
كود:
(  1) // This is my first C application in Xcode
(  2) // Abo Baker { type here your name }
(  3) int add (int a, int b)
(  4) {
(  5)        return a+b;
(  6)    }
(  7) 
(  8) int subtract (int a, int b)
(  9)   {    
(10)        return b - a;
(11)   }
(12)
(13) long multiply (int a, int b)
(14)   {    
(15)        return a * b;
(16)   }
(17)
(18) double divide (int a, int b)
(19)   {    
(15)        return a / b;
(16)   }
(17)
(18) int main ()
(19) {    
(20)     int x = 10, y = 5;
(21)     int result;
(22)     double r;
(23)     
(24)     printf("%s", "\n\n===========================================================\n");
(25)     printf("%s", "= This is my first C application on Macintosh using Xcode =\n");
(26)     printf("%s", "===========================================================\n\n");
(27) 
(28)     printf("%s", "Adding two values... x = 10, y = 5\n");
(29)     result = add(x, y);
(30)     printf("%s%d%s" , "   .  .  . Answer = ", result,"\n");
(31)     
(32)     printf("%s", "\n\nSubtracting two values... x = 10, y = 5\n");
(33)     result = subtract(x, y);
(34)     printf("%s%d%s" , "   .  .  . Answer = ", result,"\n");
(35) 
(36)     printf("%s", "\n\nMultiplying two values... x = 10, y = 5\n");
(37)     result = multiply(x, y);
(38)     printf("%s%d%s" , "   .  .  . Answer = ", result,"\n");
(49) 
(40)     printf("%s", "\n\nDividing two values... x = 10, y = 5\n");
(41)     result = divide(x, y);
(42)     printf("%s%d%s" , "   .  .  . Answer = ", result,"\n");
(43) 
(44)     return 0;
(45) }
بعد أن تكتب الشيفرة (النص البرمجي) قم باختيار MyFirstCApplication - Run Log من القائمة Window وذلك لأن التنفيذ (طباعة النتائج) سيتم عرضه على هذه النافذة.
شرح البرنامج:
  • السطر رقم (1) و (2) تعليقات ولا يتم تنفيذها. في السطر الثاني كتبت اسمي، اكتب اسمك أنت.
  • السطر رقم (3) بداية الروتين add وهو من النوع الثاني (العملية) لأنه يعود بحاصل جمع الوسيطتين a و b، لاحظ كيف تم كتابة كل من الوسيطتين، تماما كما تمت كتابة المتغيرات سابقا: يتم تحديد نوع الوسيطة ثم اسمها، ويفصل بين الوسائط بالفاصلة ( , ) والوسيطة هي خاصة فقط بروتينها ولا يمكن استخدامها من داخل روتين آخر. وعند استدعاء هذا الروتين كما حدث في السطر رقم (29) يجب تمرير قيمة لكل وسيطة بعد اسم الروتين.
  • السطر رقم (3) يدل على أنه بدأت الأن كتابة وظائف وعمليات الروتين، وتُعَْرَفُ الأسطر من السطر (3) إلى السطر رقم (6) بجسد الروتين.
  • السطر رقم (5) يقوم بحساب ناتج الجمع ثم يعيد النتيجة إلى المكان الذي تم فيه استدعاء هذه العملية وهو السطر رقم (29). لاحظ أن القيمة التي ترجع لهذا السطر يتم تخزينها في المتغير result وهو متغير خاص بالروتين الأساسي main.
  • السطر رقم (6) يدل على أنه انتهى تعريف الروتين add.
  • السطر رقم (7) ترك فارغا وذلك لترتيب النص البرمجي فقط.
  • السطر رقم (8) بداية الروتين subtract، ومهمة هذا الروتين أن يحسب ناتج طرح الوسيطة الثانية من الوسيطة الأولى ويعيد النتيجة إلى المكان الذي تم فيه استدعاء هذا الروتين وهو السطر رقم (33). لاحظ أيضا أن القيمة التي ترجع لهذا السطر يتم تخزينها في المتغير result.
  • كذلك الأمر بالنسبة للروتينين: multiply() و divide().. قم بشرحهما أنت.
  • وبالنسبة للروتين الأساسي main، يتم تنفيذه واستدعاؤه من قبل نظام التشغيل، ويبدأ التنفيد من السطر رقم (18) لاحظ أن الروتين الأساسي أيضا يعود بقيمة من نوع int، وفي السطر (19)يتم الاستعداد لكتابة وظائفه.
  • وفي الأسطر (20) و (21) و (22) تم تعريف أربعة متغيرات مختلفة الأنواع وهي x و y و result على أنها أعداد صحيحة، والمتغير r ينتمي إلى مجموعة الأعداد الحقيقية، إلا أننا لم نستخدمه في الروتين ولذلك يظهر لنا مثلث التحذير باللون الأصفر.
  • وفي الأسطر (24) و (25) و (26) يتم طباعة هذه الجملة محاطة بإطار كما هو موضح:
  • ================================================== =========
  • = This is my first C application on Macintosh using Xcode =
  • ================================================== =========
  • إن الرمز (\n) يسمى بالحرف الخاص ويقصد به new line، أي أنه ينقل موشر الكتابة إلى بداية السطر التالي.
  • وفي السطر (28) يتم طباعة هذه الجملة: Adding two values... x = 10, y = 5
  • إن الإجراءprintf هو الذي تقوم بطباعة المعلومات على النافذة، تلاحظ أنه يتطلب وسيطتين، الوسيطة الأولى تحدد نوع المعلومات المراد طباعتها، استخدم الرمز: %d لطباعة القيم الرياضية، واستخدم الرمز %s لطباعة الجمل.
  • وفي السطر (29) يتم استدعاء الروتين add، وتمرير قيم المتغيرين x و y لوسائط الروتين المطلوب استدعاؤه، ثم يقوم الروتين بالعمل والاستجابة لهذا الاستدعاء ويعيد الناتج ليتم تخزينه في المتغير result.
  • وفي السطر (30) يتم طباعة النيتجة بهذا الشكل: . . . Answer = 15
  • ومن السطر (32) إلى السطر (42) يتم استدعاء الروتينات الثلاث وذلك لحساب كل من نتيجة طرح المتغيرين وضربهما ثم حساب ناتج القسمة، وطباعة النتائج بنفس أسلوب الروتين add.
  • في السطر (38) تم تمرير الرموز: %s%d%s وذلك لأن المعلومات التي سيتم تمريرها على الترتيب هي: جملة ثم قيمة رياضية ثم جملة.
  • وفي السطر (44) يتم إعادة القيمة 0 إلى المكان الذي تم فيه استدعاء الروتين الأساسي main وهذا المكان هو جزء من نظام التشغيل مسؤول عن تشغيل البرامج والسماح لها ببدء العمل،لذلك سيتم إنهاء البرنامج والعودة إلى برنامج Xcode. وسنعرف هذا المكان الخاص من خلال دراستنا لتنقيتي Carbon و Cocoa.
  • السطر (45) يدل على نهاية الروتين الأساسي.
بهذا تكون قد اجتزت مرحلة مهمة في تعلّم لغة C.. أهنئك أخي المبرمج. وإليك أسئلة المناقشة وورشة العمل لتحسّن من مستواك بسرعة، وعليك أخي أن تجيب عليها وترسلها قبل يوم السبت القادم، آخر موعد للإرسال يوم الجمعة مساء على عنواني الإلكتروني rsfsalman@hotmail.com.

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

أسئلة ومناقشة:
س1: (5 نقاط)
(أ) كم نوعا للروتين؟
(ب) قم بتعريف الروتين الأساسي مرتان، الأولى بحيث يعود بالقيمة 0، والثانية بحيث لا يعود بأي قيمة، اجعل وظيفته في الحالتين طباعة اسمك على نافذة Run - Log التي استخدمناها في البرنامج.

س2: (8 نقاط)
عرف المتغيرات التالية بناء على أنواعها المقترحة عليك:
(أ) x ونوعه مجموعة الأعداد الصحيحة، اجعل قيمته الافتراضية = 10.
(ب) delta ونوعه مجموعة الأعداد الصحيحة الطويلة.
(ج) y ونوعه مجموعة الأعداد الحقيقية، اعطه ثلث قيمة المتغير x السابق في السؤال نفسه.
(د) q ونوعه مجموعة الأعداد الصحيحة الطويلة، اعطه قيمة المتغير x، مضروب في قمية المتغير y، ثم اطرح منه 1.
(هـ) Pi وأعطه قيمة افتراضية تساوي 3.14159. (انتبه! يجب عليك اختيار النوع الصحيح).

س3: (7 نقاط)
قم بتعديل البرنامج السابق ليقوم بجمع ثلاث متغيرات بدلا من اثنين، وكذلك يقوم بحساب نتيجة طرحها من بعضها ثم ضربها وقسمتها.

بانتظار استفساراتكم وأسئلتكم وإجاباتكم، وبالتوفيق إن شاء الله.
__________________
أبو بكر

آخر تعديل بواسطة أبو بكر ، 06-25-2008 الساعة 10:38 PM.
موضوع مغلق

  منتديات ماك للعرب > ركن برمجة الماكنتوش > مجلس دورة ماك للعرب > الدروس

أدوات الموضوع
انواع عرض الموضوع

ضوابط المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا يمكنك اضافة مرفقات
لا يمكنك تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة


الساعة الآن »07:02 AM.


Powered by vBulletin®
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
جميع الحقوق محفوظة لموقع ماك للعرب ٢٠٠٢-٢٠٠٨م
Ad Management by RedTyger