قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

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

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:328
قديم 14-03-2012, 10:45 AM المشاركة 1   
افتراضي درس : تفاصيل أنواع المتغيرات Variables والبيانات Data : Twitter FaceBook Google+



درس : تفاصيل أنواع المتغيرات Variables والبيانات Data :
المحتويات :
1- المعرفات Identifiers
2- أنواع البيانات .
3- معدلات نوع البيانات modifiers
4- إعلان (تعريف) المتغيرات Declaration.
5- المتغيرات الشاملة (العامة) Global variables .
6- المتغيرات المحلية Local variables .

1- المعرفات
المعرفات هى أسماء محددة بأى طول تعطى للدوال والمتغيرات والثوابت الرمزية والعلامات labels . يشار إلى كل عناصر البرنامج هذه ككائنات .
يمكن أن تحتوى المعرفات على حروف " a to z " و A to Z "" والشرطة السفلية “_” والأرقام
" 0 to 9" . القيد الوحيد هو أن الحرف الأول يجب أن يكون حرف هجائى أو الشرطة السفلية .
الحساسية لنوع الحرف :
المترجم ميكروسى برو , فى وضعه الافتراضى, ليس حساس لنوع الحرف أى أن Sum, sum, suM تمثل نفس المعرف .
أمثلة للمعرفات :
فيما يلى بعض معرفات الصحيحة (الصالحة) :


كود:
temperature_V1 Pressure no_hit dat2string SUM3 _vtext

وفيما يلى بعض المعرفات الغير صحيحة :


كود:
7temp // NO -- cannot begin with a numeral %higher // NO -- cannot contain special characters int // NO -- cannot match reserved word j23.07.04 // NO -- cannot contain special characters (dot)

اعلانات

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:328
قديم 14-03-2012, 10:51 AM المشاركة 2   
افتراضي


1- أنواع البيانات Data Type :
يوجد خمسة أنواع أساسية للبيانات والمعتمدة بالمترجم ميكروسى برو وهى : الأحرف (الرموز) character و الأعداد الصحيحة integer والأعداد الحقيقية (العشرية)( float/double) floating point وعديمة القيمة worthless .
الكلمات المحجوزة التى تستخدم فى إعلان (تعريف) المتغيرات من تلك الأنواع هى :
char, int, float/double , voidعلى الترتيب .
الجدول التالى يوضح قيمة ومدى كل نوع من البيانات :






البيانات من نوع char تستخدم لتمثيل أحرف كود أسكى ASCII characters . كل متغير من نوع char يمكن إن يمثل حرف من أحرف كود أسكى .
البيانات من نوع int تستخدم فى تمثيل الأعداد الصحيحة بسعة 8 bits (0-255) . هذه الأنواع من البيانات تستخدم على نطاق واسع فى البرمجة بلغة السى .
البيانات من النوع char و النوع int تمثل أعداد صحيحة ولا يمكن أن تستخدم فى تمثيل الأعداد الكسرية . لهذا الغرض يجب أن تستخدم بيلنات من النوع float , يسمى أيضا floating-point .
هذا النوع من البيانات يجب تجنبه إلى أقصى حد ويستخدم فقط عند الحاجة الفعلية لمثل هذه البيانات .

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:328
قديم 14-03-2012, 10:56 AM المشاركة 3   
افتراضي


3- معدلات نوع البيانات modifiers .
يمكننا استخدام أوامر خاصة بلغة السى للحصول على أنوع أخرى من البيانات . هذه الأوامر تسمى "معدلات" modifiers الأنواع الخاصة وهى :signed, unsigned, short, long.
معدل نوع "بإشارة" signed
يمكن أن يستخدم فى تعديل النوع الأساسى من البيانات بحيث يمكن أن يمثل الأعداد الموجبى والسالبة .
معدل نوع "القصير" short يستخدم فى تعريف متغير صغير الحجم أصغر من النوع الأساسى أى أنه شكل مخفض من النوع المحدد .
معدل نوع "الطويل" long يستخدم فى توسعة مقياس تمثيل النوع المحدد .







ملاحظة :
الأنواع float, double
, long double تعتبر من نفس النوع فى المترجم ميكروسى .


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:328
قديم 14-03-2012, 11:00 AM المشاركة 4   
افتراضي


1- إعلان (تعريف) المتغيرات Declaration

تعريف المتغير يتم إنشاءه بموقع بالذاكرة , حيث يتم إعطاءه "إسم" و "نوع" محدد من البيانات التى سوف يتم حفظها .
المتغير , من وجهة نظر البرمجة, هو منطقة بالذاكرة والتى يتم حجزها بغرض حفظ البيانات أو المعلومات عن البرنامج لفترة زمنية محددة . أى أن المتغير يحفظ قيمة واحدة فقط فى أى لحظة .
صيغة إنشاء المتغير فى لغة السى :

كود:
<type> name_of_variable;
النوع type يجب أن يكون نوع صالح (متاح) من أنواع البيانات مثل char, int, floatسواء بدون معدلات أو بالمعدلات unsigned, signed, short , long.
فى لغة السى يمكننا إعلان عدة متغيرات فى نفس السطر بوضع فاصلة "," بين كل متغير وآخر .
أمثلة :


كود:
int sum; unsigned char i, j, k; float salary; unsigned int age; short int y; long way, state; unsigned value;
جانب هام آخر فى إعلان المتغيرات وهو "المكان" الذى يتم الإعلان عنده .
يمكن إعلان المتغير أساسا عند نقطنين متميزتين فى البرنامج :



الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:328
قديم 14-03-2012, 11:04 AM المشاركة 5   
افتراضي


  • المتغيرات العمومية (الشاملة) Global variables :
المتغيرات التى تذكر فى الجسم الرئيسى للبرنامج هى متغيرات عمومية وهى التى "يمكن الوصول إليها من أى دالة فى البرنامج" .
هذه البمتغيرات تكون "خارج أى دالة" من دوال البرنامج بما فى ذلك الدالة الرئيسية main () .
مثال :
كود:
int count; // sets the global variable "count" as integer char a; // sets the global variable "a" as char
void main () // main function of the program { counter = counter + 10; }
لاحظ أن المتغير "counter" والمتغير a"" تم تعريفهما خارج أى دالة من دوال البرنامج , هذه المتغيرات تعالج كمتغيرات عمومية ويمكن تناول ومعالجة بياناتهما عن طريق أى دالة فى البرنامج .

مثال آخر للمتغيرات العمومية :

كود:
int count; // sets the global variable "count" as integer char a; // sets the global variable "a" as char
void subroutine () // function subroutine any program { count = count - 20; a = 100; }
void main () // main function of the program { count = count + 10; a = 55; }



لاحظ أنه فى هذا المثال أن المتغير "count" والمتغير "a" تم تناولهما فى جسم الدالة الرئيسية
main () وفى جسم الدالة subroutine () .


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:328
قديم 14-03-2012, 11:07 AM المشاركة 6   
افتراضي


  • المتغيرات المحلية Local variables :
على خلاف المتغيرات العمومية , فإن المتغيرات المحلية "تتواجد فقط داخل الدالة التى تم إعلانها فيها" . هذا يعنى أن المتغير المحلى يتواجد فقط "أثناء تنفيذ الدالة" , و فى لحظة إنتهاء الدالة والحصول على عائدها يتم التخلص من المتغير .
مثال :
كود:
void main () // main function of the program { int count; // define the local variable "count" as int count = count + 10; }
لاحظ أن المتغير "count" تم إعلانه بداخل الدالة الرئيسية main (), هذا المتغير المحلى سوف يكون متاحا فقط بداخل الدالة التى أعلن فيها , فى هذه الحالة المتغير "count" يمكن فقط تناوله فى البرنامج داخل الدالة الرئيسية main () .
مثال آخر لتوضيح المتغير المحلى :



كود:
void subroutine () // any sub-program function { int time; time = time * 2; }
void main () // main function of the program { int time; time = time / 2; }

لاحظ أنه فى هذا المثال لدينا دالتان : الدالة الرئيسية main () ودالة فرعية subroutine () . بداخل كا دالة تم إنشاء متغير يسمى "time" من نوع int , ولأن المتغير المحلى قابل للاستخدام فقط داخل الدالة التى يتم إعلانه فيها فإن " المتغير "time" الموجود بالدالة الفرعية subroutine () ليس له أى إرتباط بالمتغير "time" الموجود بالدالة الرئيسية main () " لأنهما متغيرين محليين .
إذا وحدث أن ارتكبنا الخطأ التالى :

كود:
void subroutine () // any sub-program function { time = time * 2; }
void main () / / main function of the program { int time; }
لاحظ ن المتغير "time" تم إعلانه فقط داخل الدالة الرئيسية main () بينما تم تناول بياناتك داخل دالة أخرى تسمى subroutine () . عندما تترجم هذا البرنامج فسوف يظهر المترجم بالقطع رسالة خطأ مفادها "أن المتغير "time" غير معرف" . وهذا خطأ شائع نقع فيه فى بداية تعلم البرمجة لأننا ننسى أن المتغير المحلى متاح فقط داخل الدالة التى أعلن فيها .


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:328
قديم 14-03-2012, 11:25 AM المشاركة 7   
افتراضي


الدرس فى ملف بصيغة Word على الرابط :

http://www.eeecb.com/vb/showthread.php?p=2620#post2620

إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 04:54 AM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2024