الاستهلال في C++
الاستهلال في C++
الاستهلال initialization هو البدء بقيم معينة للمتغيرات تعطي لها في نفس خطوة التعريف بها , كما فعلنا بالنسبة للمتغيرات charvar1 , charvar2 والتي عرفت علي أنها من النوع char , ثم خصص لها قيم هي 'A' للأول و '\t' للثاني في نفس خطوة التعريف .مجموعات الهروب
المتغير الثاني عجيب , فهو من نوع يقال له " مجموعات الهروب escape sequence " , وتتكون من محرف أو أكثر , مسبوق بالشرطة المائلة العكسية , والتي تتسبب في أن "يهرب " المحرف من أن يعامل بالصورة العادية للمحارف , لتكون له وظيفة معينة , كما يسمي المحرف في المجموعة " محرف هروب character escape " , فالمحرف المعطي في المثال يتسبب في إزاحة بقدر مسافة الجدولة tap , وتقدر في لغة السي بمقدار ثمانية مسافات .وقد أرسل الي cout في السطر الأخير من البرنامج مجموعة هروب أخري , هي '\n' , ووظيفتها العودة إلي أول السطر carrage return مع الإنتقال إلي سطر جديد line feed . وهذا المحرف هو بالطبع أكثر المحارف استخداما .
ولما كانت الشرطة المائلة العكسية , وكذا علامتي التنصيص المفردة المزدوجة لها جميعا دلالات معينة في لغة السي , فإنه عند محاولة إظهارها في عبارات نصية يجب أن تميز هي ذاتها بشرطة عكسية , فمثلا , عند الرغبة في إظهار العبارة التالية في برنامج ما :
''Run, Spot, run '' she said.
فإنها توضع في سطر البرنامج التالي :
Cout << ''\'' Run, Spot, run\'' she said.'';
ولو أنك نسيت الشرطة العكسية السابقة علي إحدي علامتي التنصيص , لاعتبر المترجم أن العبارة النصية قد انتهت , وأخذ ما تلاها علي أنه خطأ .ومن جهة أخري , فقد ترغب في إظهار محرف ليس علي لوحة المفاتيح , كأن يكون أحد المحارف الرسومية الموجودة في جدول الأسكي بعد الرقم 127 , في هذه الحالة يمكنك أن تسبق رقم المحرف بالصياغة السداسية العشرية بمحرف الهروب x\ , فإذا ما أردت طباعة مربع مصمت مثلا , وهو المحرف رقم 178 بالنظام العشري , فإنك تكتب رقمه بالنظام السداسي العشري , أي 2B , مسبوقا بمحرف الهروب الذي ذكرناه , أي \xB2 ويبين الجدول التالي محارف الهروب الشائعة الإستخدام .
جدول أهم مجموعات الهروب
المجموعة | الدلالة |
\a | الجرس Bell |
\b | مسافة خلفية backspace |
\f | صفحة جديدة formfeed |
\n | سطر جديد newline |
\r | أول السطر return |
\t | مسافة جدولة tab |
\\ | شرطة عكسية backslash |
\' | علامة تنصيص مفردة single quotation |
\'' | علامة تنصيص مزدوجة double quotation |
\x | إظهار سداسي عشري hexadecimal representation |
يقوم البرنامج المذكور بطباعة قيمة المتغير الأول charvar1 وهو 'A' , ثم قيمة المتغير الثاني chavar2 , وهو أخذ مسافة جدولة , ثم يغير قيم الأول إلي 'B' , ويطبعها , ثم ينتقل إلي سطر جديد . وعلي ذلك فإن الخرج يبدو علي الصورة التالية :
A B
الإدخال بواسطة cin
بعد أن عرفنا بعضا من أنواع المتغيرات , وطريقة إخراجها إلي الشاشة , ننتقل الأن إلي برنامج يوضح كيف يكون إدخال القيم إليه من لوحة المفاتيح . والبرنامج التالي يسأل المستخدم عن قيمة درجة الحرارة بالفهرنهايت , ويحولها إلي درجة مئوية , ثم يطبع النتيجة :
Fahren.ccp
fahren.cpp
// fahren.cpp
// demonstrates cin, newline
#include <iostream.h>
void main()
{
int ftemp;
cout << "Enter temperature in fahrenheit: ";
cin >> ftemp;
int ctemp = (ftemp-32) * 5 / 9;
cout << "Equivalent in Celsius is: " << ctemp << '\n';
}
في هذا البرنامج تجد أن العبارة :
Cin>>ftemp;
تجعل البرنامج ينتظر أن يدخل المستخدم قيمة درجة الحرارة المطلوب تحويلها , ثم يضع القيمة المدخلة في المتغير ftemp . والرمز الأساسي cin ( ينطق سي إن ) هو إيضا كائن من الكائنات المعرفة في اللغة س++ , ليتوافق مع تدخل الإدخال القياسي , وهو التدفق الذي يأتي عادة من لوحة المفاتيح ( ما لم تكن قد استخدمت إمكانية إعادة التوجيه ) . والمؤثر >> يسمي "مؤثر الإستخلاص get from operator أو extracting operator " وهو يتلقي القيمة من الكائن الذي إلي يساره ويضعه في المتغير الذي يمينه . وإليك نموذجا من خرج البرنامج :
Enter temperature in fahernheit: 212
Equivalent in Celsius is: 100
ويبين الشكل عملية الإدخال بواسطة كل من الكائن cin والمؤثر >> . (بالمناسبة , لا تدخل رقما مسبوقا بالصفر , علي هذه الشاكلة مثلا : 032 , وإلا فإن الكائن cin سوف يعتبره رقما بالنظام الثماني )
شكل الإدخال بواسطة cin >>
متغيرات تعرف عند الإستخدام
البرنامج السابق به أكثر من فكرة , بالإضافة لكونه تدريبا علي الإدخال , فمثلا بالنسبة للمتغير ctemp , أين يتم تعريفه في السي ++ كما قدمنا , لكنه ليس مقبولا في لغات كثيرة , منها السي التقليدية .
وإمكانية التعريف بالمتغير في موضع إستخدامه أمر ييسر متابعة وفهم البرنامج , ولكن يوصي بألا تستخدم هذه الإمكانية للمتغيرات التي تستخدم في أكثر من موضع , وإلا صعب معرفة مكان تعريفها .
تتابع مؤثر الإيلاج
لاحظ تتابع استخدام مؤثر الإيلاج << في عبارة واحدة , وهي العبارة الأخيرة في البرنامج , وهذا أمر مقبول تماما , فالمؤثر الأول ينقل العبارة النصية Equivalent in Celcius is: إلي الكائن cout المسئول عن إظهارها علي الشاشة , ثم يقوم المؤثر الثاني بعمل نفس الشئ بالنسبة لقيمة المتغير ctemp , ثم يتم نفس الشئ لمحرف الهروب \n الخاص بالإنتقال للسطر الجديد ] لاحظ عدم وجود الفاصلة المنقوطة بين المؤثرات << [ .
ويمكن استخدام نفس الإمكانية مع مؤثر الإستخلاص >> , فتقبل عدة قيم لمتغيرات متعدد علي نفس السطر . ولكن نادرا ما يحدث ذلك , لأن الإدخال من اللوحة يتم عادة من خلال حوار مع المستخدم .
تعليقات
إرسال تعليق