السبت، 26 أكتوبر 2013

دورة لغة السي / المتغيرات والثوابت



المتغبرات والثوابت في لغة السي 


اولا المتغيرات والثوابت كلاهما عباره عن مواقع يتم حجزها في الذاكره (الرام RAM) لتُخزن فيها قيم محدده , يختلفان في ان الثوابت عباره عن مواقع في الذاكره عندما يتم تخزين قيم فيها فانها تكون ثابته لا يمكن تغييرها ابداً اثناء تنفيذ البرنامج ولتعديلها يجب التعديل في كود البرنامج اذاً الثوابت لا يمكن تغييرها اثنا تنفيذ البرنامج , اما المتغيرات فهي مواقع في الذاكره يمكن تغيير قيمها اثناء تنفيذ البرنامج بواسطة المستخدم او بواسطة البرنامج نفسه


مواقع الذاكره

في هذه الصوره قمنا بحجز موقعين في الذاكره احدهم اسميناه X والاخر اسميناه Y اذاً البرنامج سوف يتعامل مع هذين الموقعين ك X , Y بغض النظر عن القيم الموجوده فيهم وعندما نريد استخدام القيم الموجوده في هذين الموقعين اثناء البرنامج نستدعيهم عن طريق عناوين الموقعين X , Y . 

اذا لنحجز موقع في الذاكره لكي نخزن فيه قيم معينه هنالك صيغه ثابتة نتبعها 
 
اعلان المتغيرات

هذه الصيغه نستخدمها لحجز المتغيرات في البرامج , وفي هذا المثال قيمة المتغير وهي 7 يمكن ان تتغير اثنأ تنفيذ البرنامج بواسطة المستخدم او البرنامج نفسه
--------------------------------------------------------------------------------
اعلان الثوابت
وهذه صيغى حجز الثوابت في البرامج وهي نفس صيغة حجز المتغيرات , وفي هذا المثال قيمة الثابت 3.14 لا يمكن تغييرها اثناء تنفيذ البرنامج من قبل المستخدم او من قبل البرنامج .

حيث Type of Variable تمثل نوع المتغير الذي نريد حجزه بمعني المكان الذي نريد حجزه ما  نوع  البيانات التي نريد ان نخزنها فيه ولدينا عدة انواع من البيانات منها
int اذا كنا نريد تخزين عدد حقيقي مثل 1 , 2 , 365 , 456 اي عدد من غير فاصله عشريه ويشغل مساحه قدرها 2 بايت من الذاكره .
float وهو عدد صحيح اي عدد يحتوي علي فاصله عشريه مثل 2.4 , 5.76
ويشغل مساحه قدرها 4 بايت .
char وهو متغير حرفي اي اننا اذا اردنا ان نخزن حرف او مجموعة حروف نعبر عنها بهذا المتغير مثل 'A' , 'B' . ويشغل مساحه في الذاكره قدرها 1 بايت لتخزين حرف واحد فقط

هذه هي الانواع الرئيسية لانواع المتغيرات هنالك انواع اخري سوف نتطرق لها في اثناء البرامج .
اذاً نوع المتغير او الثابت نختاره علي حسب نوع القيم التي نريد ان نخزنها فيه .
Name of Variable هو اسم المتغير الذي نريد حجزه بمعني المكان الذي نريد حجزه لتخزين بيانات فيه ماذا نريد ان نسميه , لماذا نعطيه اسم ؟؟ حتي  نمكن البرنامج من الوصوصل لهذه القيمه متي ما احتاج اليها لانه قد يكون هنالك اكثر من موقع في الذاكره تحتوي علي نفس القيمه وللتمييز بينهم نعطي كل موقع اسم خاص به وعندما يحتاج البرنامج الي هذه القيمه لا يبحث عنها بقيمتها بل يبحث عنها عن طريق عنوان موقعها ثم ينظر الي محتوي هذا العنوان او الموقع
اذاً في البرامج لا نتعامل مع القيم مباشرة بل يجب ان نضعها في مواقع في الذاكره ونعطيها عنواناً او اسم .
اسماء المتغيرات ليست مرتبطه بصيغه محدده ويمكنك ان تختار اي اسم او حرف لتسمية المتغير لديك بشرط ان يكون ليس من الاسماء المحجوزه لاستخدام البرنامج
وان يبدأ اسم المتغير بحرف وان يتكون من حروف وارقام فقط ولا يسمح باستخدام التاثيرات النصيه مثل (#@$&!) ما عدا الشرطه التحتيه ( _ ) وان لا يكون طول الاسم اطول من 32 حرفا  وهنالك فرق بين الحروف الكبيتل والحروف الاسمول اي عندما نعلن عن متغير يجب ان نستدعيه بنفس الصيغه التي اعلناهو بها فهنالك فرق بين Name , name فكل كلمه تعتبر اسم لمتغير منفصل ,  و يحبذ ان يدل المتغير علي ما يحتويه مثلا اذا حجزنا متغير لنخزن فيه درجات طالب يفضل ان نسميه mark حتي يتسني لمن يقراء الكود البرمجي لبرنامجك ان يفهم البرنامج بسهول .

Value of Variable وهنا نكتب قيمة المتغير , بمعني القيمه التي نريد تخزينها في هذا الموقع او العنوان من الذاكره 
ويمكن اسناد القيم الي المتغيرات بطرق عديده منها
ان نعطي المتغير قيمته مباشرتاً

اعلان المتغيرات واعطائها قيم

ويمكن ان نعلن عن اسماء المتغيرات ونعطيها قيم لاحقاً
اعلان المتغيرات من غير قيم

ويمكن ان نسند قيمة متغير الي متغير اخر 

اعلان المتغيرات واسناد قيمة متغير الي متغير اخر


هنالك المزيد من الدروس في هذه الدوره اضغط هنا
وهنا نكون قد وصلنا الي نهاية هذا الدرس
ملاحظاتكم تجعلني اتحسن واقدم الافضل فلا تحرموني منها
ودمتم في سلام

1 التعليقات :

إرسال تعليق