الاستهلال في 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 سوف يعتبره رقما بالنظام الثماني )



Input with cin


شكل الإدخال بواسطة cin >>


متغيرات تعرف عند الإستخدام



البرنامج السابق به أكثر من فكرة , بالإضافة لكونه تدريبا علي الإدخال , فمثلا بالنسبة للمتغير ctemp , أين يتم تعريفه في السي ++ كما قدمنا , لكنه ليس مقبولا في لغات كثيرة , منها السي التقليدية .


وإمكانية التعريف بالمتغير في موضع إستخدامه أمر ييسر متابعة وفهم البرنامج , ولكن يوصي بألا تستخدم هذه الإمكانية للمتغيرات التي تستخدم في أكثر من موضع , وإلا صعب معرفة مكان تعريفها .


تتابع مؤثر الإيلاج



لاحظ تتابع استخدام مؤثر الإيلاج << في عبارة واحدة , وهي العبارة الأخيرة في البرنامج , وهذا أمر مقبول تماما , فالمؤثر الأول ينقل العبارة النصية Equivalent in Celcius is: إلي الكائن cout المسئول عن إظهارها علي الشاشة , ثم يقوم المؤثر الثاني بعمل نفس الشئ بالنسبة لقيمة المتغير ctemp , ثم يتم نفس الشئ لمحرف الهروب \n الخاص بالإنتقال للسطر الجديد ] لاحظ عدم وجود الفاصلة المنقوطة بين المؤثرات << [ .


ويمكن استخدام نفس الإمكانية مع مؤثر الإستخلاص >> , فتقبل عدة قيم لمتغيرات متعدد علي نفس السطر . ولكن نادرا ما يحدث ذلك , لأن الإدخال من اللوحة يتم عادة من خلال حوار مع المستخدم .

تعليقات

المشاركات الشائعة من هذه المدونة

المؤثرات الحسابية في C++

الرسم Graphics

دوال النمط الرسومي في ++C