الدرس 1: نظرة عامة على لغة ج
في هذا الدرس ستجد مقدمة عامة حول اللغة المعلوماتية ج وكذلك البرنامج الذي تحتاجه لاستعمالها.
|
1. برنامج الخوارزمي
بداية، يجب عليك تحميل برنامج الخوارزمي من أجل تنفيذ مشاريع وتطبيقات البرمجة بلغة g
| |
يتكون البرنامج بلغة ج من سلسلة من الأوامر، تبدأ كل منها بكلمة مفتاحية تعبر عن نوع الأمر أو الأداة ووظيفته.وتقسم الأوامر في لغة ج إلى ثلاثة أنواع:
· أوامر التعريف، وتعرّف الأسماء والأنواع المستخدمة في البرنامج.
· أوامر التنفيذ، وينتج عن تنفيذها قيام البرنامج بأعمال مختلفة.
· إيعازات المترجم، وينفذها مترجم ج أثناء قيامه بترجمة البرنامج إلى شيفرة تنفيذية.
|
2. الأوامر التعريفية
تستخدم الأوامر التعريفية - كما يدل اسمها - في تعريف أسماء مميِّزة لعناصر البرنامج المختلفة، كالمتحولات والتوابع والخوارزميات. بحيث يمكن استدعاء، أي استخدام، هذه العناصر في البرنامج من خلال أسمائها. وتأخذالأوامر التعريفية في لغة ج صيغة جمل اسمية، تبدأ باسم معرف بأل يعبر عن نوع العنصر المراد تعريفه. مثلاً، يعرف الأمر التالية متغيرا صحيحاً اسمه ص.
|
المتحول ص : صحيح
|
والمتحول الصحيح هو المتغير الذي يمكن أن نضع فيه أعداداً صحيحة، أي تنتمي إلى مجموعة الأعداد الصحيحة.أما الأمر التالية فيعرف الثابت الحقيقي بي (p):
|
الثابت بي = 3.1415
|
يبين الجدول التالي الأنواع المختلفة للأوامر التعريفية في لغة ج والكلمة المفتاحية البادئة لكل منها.
|
الكلمة المفتاحية
|
وظيفة الجملة
|
مثال
|
المتحول
|
تعريف المتحولات(المتغيرات) التي ستستخدم في البرنامج، ونوع كل منها.
|
المتحول س : حقيقي
يعرف هذا الأمر متحولاً اسمه س يمكن أن نخزن فيه قيمة لعددحقيقي.
|
الثابت
|
تعريف الثوابت التي ستستخدم في البرنامج، وقيمة كل منها.
|
الثابت بلانك = 6.625 × 10^-34
يعرف هذا الأمر ثابتاً عددياً حقيقياً اسمه بلانك وقيمته6.625×10-34 (ثابت بلانك في الفيزياء)
|
النوع
|
تعريف أنواع بيانات مركبة، كالصفائف (المصفوفات)والوحدات.
|
النوع شعاع : صفيفة [3] من حقيقي
يعرف هذا الأمر نوعاً مركباً اسمه شعاع، يتكون من صفيفة من3 أعداد حقيقية.
|
الخوارزمية
|
تعريف خوارزميات جديدة، يمكن بعد ذلك استخدامها في البرنامج.
|
الخوارزمية أضرب_عقدي (س،ع : عقدي، ص: عقدي){ … }
يعرف هذا الأمر خوارزمية اسمها "أضرب_عقدي" تقوم بضرب متحولين عقديين (س و ع) وتضع الناتج في المتحول العقدي ص.
|
التابع
|
تعريف توابع (دوال) جديدة لاستخدامها في البرنامج.
|
التابع طويلة (ش : شعاع) -> حقيقي{ … }
يعرف هذا الأمر تابعاً اسمه "طويلة" يأخذ متحولاً شعاعياً (ش)ويرجع عدداً حقيقياً يمثل طويلة هذا الشعاع.
|
2. الأوامر التنفيذية
تقوم الأوامر التنفيذية بعمل معين، ككتابة عبارة على شاشة الكتابة، أو إسناد قيمة لمتحول عددي، أو قراءة حرف من ملف. وتأخذ الأوامر التنفيذية صيغة جمل فعلية، تبدأ بفعل مضارع على وزن أَفعَلُ (مثل أَكتبُ، أَرسمُ، أُكرِّرُ) . مثلاً، تقوم الجملة التالية عند تنفيذها بإسناد ناتج العملية الحسابية 66 ÷ 3 إلى المتحول س.
|
أجعل س = 66 ÷ 3
|
أما الأمر التالية فترسم دائرة على شاشة الرسم:
|
أرسم دائرة مركزها(100 ، 120) قطرها50
|
ويبين الجدول التالي أنواع الأوامر التنفيذية في لغة ج، والكلمة المفتاحية البادئة لكل منها.
|
الكلمة المفتاحية
|
وظيفة الجملة
|
مثال
|
أَكتُبُ
|
كتابة العبارات على شاشة الكتابة (أو في ملف).
|
أكتب "مجموع 4 و 5 =" ، 4+5
عندما ينفذ هذا الأمر تظهر العبارة:
مجموع 4 و 5 = 9
على شاشة الكتابة
|
أَقرأ
|
قراءة قيمة يدخلها المستخدم على شاشة الكتابة (أو من ملف).
|
أقرأ عدد_التلاميذ
عندما ينفذ هذا الأمر ينتظر البرنامج المستخدم ليدخل عدداً على شاشة الكتابة ثم يقرأ البرنامج هذا العدد ويضعه في المتحول عدد_التلاميذ
|
أَجعلُ
|
إسناد قيمة لمتحول.
|
أجعل ع = س^2 + 3
عندما ينفذ هذا الأمر يضع البرنامج قيمة العبارة الحسابية :س2+3 في المتحول ع.
|
إذا .. وإلا
|
التنفيذ الشرطي لمجموعة من الأوامر.
|
إذا ص > 360 أجعل ص = 0وإلا أجعل س = ص
عند تنفيذ هذا الأمر يقوم البرنامج باختبار قيمة المتحول ص.فإذا كانت ص > 360 يضع البرنامج القيمة 0 في ص، وإلا يضع البرنامج في المتحول س قيمة ص.
|
أُكَّررُ
|
تنفيذ أمر واحد أو أكثر عدداً من المرات. ولهذا الأمرعدة أشكال.
|
أكرر من د = 1 إلى 10أكتب " مربع "، د ، " = " ، د^2
عندما ينفذ هذا الأمر المركبة ينفذ البرنامج الأمر: جملة"أكتب"، 10 مرات من أجل د=1 حتى د=10. أي أن البرنامج سيكتب في المرة الأولى" مربع 1 = 1"، وفي الثانية"مربع 2 = 4"، وهكذا ...
|
أَنتهي
|
الإنهاء القسري للبرنامج.
|
إذا س = صفر أنتهي
عنما ينفذ هذا الأمر يختبر البرنامج المتحول س، فإذا كانت قيمته = 0 ينتهي تنفيذ البرنامج مباشرة.
|
أُنفِّذ
|
تنفيذ الخوارزميات والتوابع.
|
أنفذ جداء_مصفوفتين (آ ، ب ، ج)
عندما ينفذ هذا الأمر يقوم البرنامج باستدعاء (تنفيذ)الخوارزمية "جداء_مصفوفتين" على ثلاثة متغيرات فعلية هي آ، ب، ج.
|
أَرجِعُ (للخوارزميات)
أُرجع (للتوابع)
|
الرجوع القسري من الخوارزميات، أو إرجاع قيم التوابع (أي الدوال).
|
أرجع (س ÷ 2)
عندما ينفذ هذا الأمر يعود البرنامج من التابع الذي يقوم بتنفيذه إلى البرنامج الرئيسي ويرجع قيمة العبارة (س÷2) كقيمة لهذا التابع.
|
أَرسُم
|
رسم الأشكال الهندسية(مستقيم، دائرة...) على شاشة الرسم. ولهذا الأمرعدة صيغ تبعاً لنوع الشكلالهندسي المطلوب رسمه.
|
أرسم مستقيم من (0 ، 0) إلى (20 ، 100)
عند تنفيذ هذا الأمر يرسم البرنامج مستقيماً من النقطة (0،0)إلى النقطة (20، 100) على شاشة الرسم.
|
أُلّونُ
|
رسم الأشكال المملوءة على شاشة الرسم.
|
ألون باللون الأزرق ، دائرة مركزها (50 ، 50)قطرها 30
يرسم هذا الأمر دائرة مركزها (50،50) وقطرها 30 مملوءة باللون الأزرق
|
أَنقُشُ
|
كتابة العبارات على شاشة الرسم.
|
أنقش عند (100 ، 100) س+ع
يكتب هذا الأمر قيمة العبارة س+ع على شاشة الرسم عند النقطة التي تبلغ إحداثياتها (100،100)
|
أَفتحُ
|
فتح ملف للقراءة أو الكتابة.
|
أفتح ملف_النص للقراءة من "C:\text.txt"
يفتح هذا الأمر ملفاً اسمه ملف_النص للقراءة، ويربطه بالملف"C:\text.txt" الموجود على القرص الصلب للحاسوب.
|
أُغلقُ
|
إغلاق ملف مفتوح.
|
أغلق ملف_النص
يغلق هذا الأمر الملف : ملف_النص
|
ويمكن للبرنامج أن يحتوي على أي عدد من الأوامر التعريفية والتنفيذية وبأي ترتيب ممكن. ولا يشترط أن تكون الأوامر التعريفية في أول البرنامج حصراً. بل يمكن مزج الأوامر التعريفية والتنفيذية في أي موضع من البرنامج.
|
3. إيعازات المترجم
تحتوي لغة ج على إيعازين خاصين بالمترجم، يجري تنفيذهما أثناء ترجمة البرنامج. ويبين الجدول التالي هذين الإيعازين ووظيفة كل منهما.
|
الكلمة المفتاحية
|
وظيفة الجملة
|
مثال
|
أَدرِجْ
|
إدراج ملف آخر يحتوي جملاً بلغة ج في البرنامج الذي تجري ترجمته.
|
أدرج "رياضيات"
عندما يجد مترجم لغة ج هذا الأمر، يقوم بقراء الملف"رياضيات" وترجمة ما يحتويه من أوامر تعريفية أو تنفيذية، ثم يعود ويكمل ترجمة البرنامج الأصلي.
|
بَدِّل
|
استبدال كلمات بكلمات أخرى أو تراكيب معقدة بغية تسهيل كتابة البرنامج، أو إضافة مفردات جديدة إلى لغة ج.
|
بدل مستقيما بـ "مستقيم"
عندما يجد مترجم لغة ج هذا الأمر يقوم باستبدال كل ورود لكلمة "مستقيما" في نص البرنامج بكلمة "مستقيم".ويحدث هذا الاستبدال داخل المترجم ولا يغير النص الأصلي للبرنامج. لذلك يمكن للمبرمج أن يكتب:
أرسم مستقيما من (20،20) إلى (100،150) لأن ذلكأصح في اللغة العربية من أرسم مستقيم من (20،20)إلى (100،150). مع أن كلمة "مستقيما" ليست من الكلمات المعرفة أساساً في لغة ج، وبالرغم من ذلك يعرف المترجم أن كلمة "مستقيما" مرادفة لكلمة"مستقيم" فيترجم الجملة دون أن يصدر رسالة خطأ.
|
4. أمثلة بسيطة لبرامج بلغة ج
حساب مساحة دائرة
يبين المثال التالي برنامجاً بسيطاً بلغة ج، يحسب مساحة دائرة بعد قراءة قطرها. وقد رقمت أسطر البرنامج للإشارة إليها في الشرح التالي. ولا تشكل هذه الأرقام جزءاً من البرنامج في لغة ج.
|
1 الثابت بي = 3.14152 المتحول ق : حقيقي3 المتحول س : حقيقي4 أكتب "أدخل قطر الدائرة : " ،سطر5 أقرأ ق6 أجعل س = بي × (ق ÷ 2)^27 أكتب "مساحة الدائرة = " ، س
|
يتألف هذا البرنامج من سبع أوامر. الثلاثة الأولى منها أوامر تعريفية والأربعة الأخيرة أوامر تنفيذية:
1- يعرّف الأمر الأول الثابت الهندسي بي (π) وهو نسبة محيط الدائرة إلى قطرها.
2- يعرّف الأمر الثاني متغيرا(ق) يمكنه حفظ الأعداد الحقيقية، وسيستخدم هذا المتحول (المتغير) لحفظ قيمة قطر الدائرة.
3- أما الأمر الثالث فيعرف المتحول الحقيقي س، الذي سيستخدم لحفظ مساحة الدائرة.
4- يقوم الأمر الرابع بكتابة العبارة: "أدخل قطر الدائرة:" على شاشة الكتابة لتنبه المستخدم إلى ضرورة إدخال عدد يمثل قطر الدائرة.
5- يقرأالأمر الخامس قيمة القطر التي يدخلها المستخدم على شاشة الكتابة.
6- ثم يحسب الأمر السادس مساحة الدائرة من العلاقة: π×(ق÷2)2، وتضع هذه القيمة في المتحول س.
7- أخيراً يقوم الأمر الأخير بكتابة النتيجة على شاشة الكتابة.يبين الشكل التالي مثالاً لتنفيذ هذا البرنامج:
|
حساب عاملي عدد صحيح
يبين السرد التالي مثالاً آخر لبرنامج بسيط بلغة ج. يحسب هذا البرنامج عاملي عدد صحيح. وعاملي العدد الصحيحن هو القيمة ن(ن-1)(ن-2) …1. وقد رقمت سطور البرنامج للتوضيح.
|
1 !! برنامج لحساب عاملي عدد صحيح2 المتحول ن : صحيح3 المتحول ص ، ع : صحيح4 أجعل ع = 15 أكتب "أدخل عدداً صحيحاً لتعرف قيمة عامليه :" ، سطر6 أقرأ ن7 أجعل ص = ن8 أكرر طالما ص > 1 {9 أجعل ع = ع × ص10 أجعل ص = ص - 1 }11 أكتب ن ، "! =" ، ع
|
1- السطر الأول في هذا البرنامج هو مجرد تعليق، أي شرح توضيحي، لمن يقرأ البرنامج من الناس، أما مترجم لغة ج فيتجاهل هذا السطر بكليته. عموماً، يتجاهل المترجم كل سطر مسبوق بعلامتي تعجب متتاليتين.
2- يعرف الأمر الثاني ن بأنه متغير يمكنه حفظ الأعداد الصحيحة، وسيستخدم هذا المتغير لحفظ قيمة العدد المراد حساب عامله.
3- أما الأمر الثالث فيعرف المتغيرينن ص و ع بأنهما متغيرين صحيحين أيضاً. وسيستخدم ع لحفظ قيمة عاملي العدد ن، أما ص فسيستخدم كعداد تنازلي من ن-1 إلى 2.
4- يسند الأمر الرابع القيمة 1 إلى المتغير ع.
5- أما الأمر الخامس فيكتب عبارة " أدخل عدداً صحيحاً لتعرف قيمة عامليه: "على شاشة الكتابة.
6- يقرأ الأمر السادس قيمة المتغير ن التي يدخلها المستخدم.
7- ويسند الأمر السابع قيمة ن إلى المتحول ص.
8- أما الأمر الثامن فهو حلقة تكرار من نوع "أكرر طالما"، ويجري فيها تنفيذ الأمرين التاسع والعاشر طالما كانت قيمة العداد التنازلي ص > 1، وفي كل مرة من مرات تكرار هذه الحلقة تُضرب قيمة المتغير ع بقيمة العداد التنازلي ص، وينقص ص بمقدار 1.
9- أخيرا يكتب الأمر العاشر الناتج على شاشة الكتابة. تبين الصورة التالية مثالاً لتنفيذ هذا البرنامج.
|