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

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

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:333
قديم 20-05-2017, 12:19 PM المشاركة 1   
افتراضي المتغيرات ، أنواع البيانات ، عامل التخصيص ،......... Twitter FaceBook Google+



المتغيرات Variables :
المتغير هو مجرد مكان (وعاء) لحفط قيم لبيانات من نوع معين . مكان الحفظ هو مواقع ذاكرة RAM والنوع يمكن أن يكون لأحرف Character أو أعداد صحيحة Integers (بدون علامة عشرية) أو أعداد بعلامة أو نقطة عشرية تسمى Float .



يمكن تصنيف المتغيرات تبعا "لنوع البيانات" التى تخزنها بداخلها :
1- متغير يحفظ بيانات لعدد صحيح integer ، ويشار إليه بكلمة “int” .
2- متغير يحفظ بيانات لحرف character ، ويشار إليه بكلمة “char” .
3- متغير يحفظ بيانات لعدد بنقطة عشرية float ، ويشار إليه بكلمة “float” .
4- متغير يحفظ بيانات عدد بنقطة عشرية "مضاعف" double ، ويشار إليه بكلمة double .



كما يمكن تصنيف المتغيرات تبعا لعدد المتغيرات التى يمكن أن تحفظها :
1- متغيرات تحفظ "قيمة مفردة" فى نفس الوقت ومن أى نوع من البيانات ، وتسمى متغيرات عادية .
2-متغيرات تحفظ "قيم متعددة" من نفس نوع البيانات وتسمى "المصفوفات" Array .
3-متغيرات تحفظ "قيم متعددة" من أنواع مختلفة من البيانات وتسمى "الهياكل" Structure .

بيانات الأعداد الصحيحة Integer Type :
النوع char والنوع int ، وتعديلاتها ، تعتبر أنواع لبيانات أعداد صحيحة . يمكن إنشاء التعديلات باستخدام واحد من بادئات التعديل التالية : short , long , signed , unsigned . الجدول التالى يبين أنواع بيانات الأعداد الصحيحة ، يمكن إهمال الكلمات الموجودة بين الأقواس :



• فى حالة غياب البادئة unsigned فيفترض تلقائيا النوع signed لبيانات أنواع العدد الصحيح ، على سبيل المثال int تعنى signed int. الاستثناء الوحيد هو char حيث يكون unsigned فى الوضع الافتراضى وتقتصر على كتابة char.
• الكلمات signed و unsigned عندما يتم استخدامها فى حد ذاتها ، تعنى signed int و unsigned int على الترتيب ، على سبيل المثال unsigned تعنى unsigned int .
• كلمات التعديل short و long يمكن فقط تطبيقها على النوع int .
• الكلمات short و long عند استخدامها فى حد ذاتها ، تعنى short int و long int على ، سبيل المثال short تعنى signed short int .

بيانات الأعداد الحقيقية (التى تحتوى على نقطة عشرية)من نوع Float point :
الأنواع float و double مع النوع long double تعتبر أنواع الأعداد الحقيقية التى تحتوى على نقطة عشرية وتسمى float . المترجم ميكروسى برو يعتبر الثلاثة أنواع من نفس النوع ، كما هو مبين بالجدول التالى :


عامل التخصيص (التعيين) Assignment Operator :
• يستخدم عامل التخصيص لتخصيص (تعيين) قيمة إلى متغير .
• عامل التخصيص يشار إليه بعلامة التساوى “=” .
• عامل التخصيص يتعامل مع قيمتان ، قيمة على جانبه الأيسر ، وقيمة على جانبه الأيمن ، ويقوم العامل بنسخ القيمة التى على جانبه الأيمن إلى القيمة التى على جانبه الأيسر .



إعلان المتغير Variable Declaration :
مفهوم إعلان المتغير هو إعطاء أمر للمترجم لكى يقوم بحجز مواقع ذاكرة تتناسب مع نوع البيانات التى يقوم هذا المتغير بتخزينها .
صيغ إعلان المتغير :
الصيغة الأولى : نوع البيانات يليه اسم المتغير .

[codedataType variableName;] [/code]

هذه الصيغة تعلن عن متغير ، فهى تعلن عن نوع بياناته ، وحجز ذاكرة له وإطلاق اسم على هذه الذاكرة . هذه الصيغة لا تذكر شيئا حول القيمة الموجودة بالذاكرة .

الصيغة الثانية : نوع البيانات ، يليه اسم المتغير ، ثم تخصيص قيمة لهذا المتغير .

كود:
dataType   variableName  =  initialValue ;
هذه الصيغة تعلن عن المتغير ، وتعلن عن نوع بياناته ، وتحجز ذاكرة له ، وتضع قيمة ابتدائية فى هذه الذاكرة .

الصيغة الثالثة :

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

الصيغة الرابعة :

كود:
dataType   variableNameOne  =  initialValueOne, 
           	       variableNameTwo  =  initialValueTwo ;
هذه الصيغة تعلن عن متغيرين ، كلاهما له نفس نوع البيانات ، وتحجز الذاكرة اللازمة ، وتضع قيمة ايتدائية فى كل متغير . يمكنك كتابة الصيغة فى سطر واحد ، كما يمكنك إعلان أكثر من متغيرين بنفس الطريقة .
لعلك لاحظت الفاصلة “,” الموجودة بين المتغيرات ، والفاصلة المنقوطة “;” فى نهاية عبارة الإعلان .


فيما يلى أمثلة للأنواع المختلفة من المتغيرات :
• المتغيرات :


كود:
unsigned char 
or
unsigned short int
هى متغيرات "بدون إشارة" 8 بت ، تحتل "واحد بايت" فقط من الذاكرة ولها قيم فى المدى من (0) إلى (255) .
فى المثال التالى ، المتغير Sum يخصص (يعين) له القيمة (255) :

كود:
unsigned char Sum = 225;
 or
unsigned char Sum;
Sum = 225;

• والمتغيرات :

كود:
unsigned int
هى متغيرات "بدون إشارة" 16 بت ، تحتل "2 بايت" من الذاكرة ولها قيم فى المدى من (0) إلى (65 535) . فى المثال التالى ، المتغير Total يخصص له القيمة (64 500) :

كود:
unsigned int Total = 64500;
• والمتغيرات :

كود:
unsigned long int
هى متغيرات بدون إشارة 32 بت ، تحتل 4 بايت من الذاكرة ولها قيم فى المدى من (0) إلى
4 294 967 295 . فى المثال التالى ، المتغير Sum يخصص له القيمة 4 200 000 000 :

كود:
unsigned long int Sum = 4200000000;
• والمتغيرات :

كود:
signed char 
or 
signed short int
هى متغيرات "بإشارة" 8 بت ، نحتل واحد بايت فقك من الذاكرة ولها قيم فى المدة من (-128) إلى (+127) . فى المثال التالى المتغير Total يخصص له القيمة (-40) :

كود:
signed char Total = -40;
• والمتغيرات :

كود:
signed int
هى متغيرات بإشارة 16 بت ، تحتل 2 بايت من الذاكرة ولها قيم فى المدى من (-32 768) إلى (+32 767) . فى المثال التالى ، المتغير Sum يخصص له القيمة (-31 500) :

كود:
signed int Sum = -31500;
• والمتغيرات :

كود:
signed long int
هى متغيرات بإشار 32 بت ، تحتل 4 بايت من الذاكرة ولها قيم فى المدى من (-2 147 483 648) إلى
(+2 147 483 647) . فى المثال التالى ، المتغير Sum يخصص له القيمة (2 050 480 000) :

كود:
signed long int Sum = 2050480000;
• أنواع بيانات العدد الحقيقى هى : float, double , long double . فى المثال التالى ، المتغير Volume يخصص له القيمة (23.45) :

كود:
float Volume = 23.45;
or
float Volume;
Volume = 23.45;


أسماء المتغيرات:
• فى المترجم ميكروسى برو ، أسماء المتغيرات يمكن أن تبدأ بحرف أو الشرطة السفلية ( _ ) .
• أسماء المتغير يمكن أن تتضمن أى حرف من ( a ) إلى ( z ) ومن ( A ) إلى ( Z ) والأرقام من ( 0 ) إلى ( 9 ) .
• اسم المتغير يمكن أن يكون بطول حتى 31 حرف .
• بعض أمثلة أسماء المتغير الصحيحة :

كود:
Total 
Sum 
Average 
My_Variable 
username 
MaxTotal
 _Name
• وفيما يلى بعض الأمثلة لأسماء متغير غير صحيحة :



كود:
 %name 
?Total 
7Sum 
(Max 
12count

• الأسماء حساسة لحالة الحرف وبالتالى فإن المتغيرات بأسماء بحروف صغيرة تختلف عن المتغيرات بأسماء بحروف كبيرة . وبالتالى فأن المتغيرات التالية جميعها مختلفة :

كود:
 Total 
total 
ToTal 
TotaL 
TOTAL 
TOTal
الأسماء المحجوزة :
فى المترجم ميكروسى برو يتم حجز بعض الأسماء من أجل المترجم ، وهذه الأسماء لا يمكن أن تستخدم كأسماء للمتغيرات . الجدول أدناه يعطى قائمة بهذه الأسماء المحجوزة .




يمكن تقسيم المتغيرات إلى :
• متغيرات عمومية Global
• متغيرات محلية Local



المتغيرات العمومية Global : هى التى يتم إعلانها عند بداية البرنامج خارج أى دالة ، مجال هذه المتغيرات يكون عمومى global وهذا يعنى أنه يمكن الوصول إليها واستخدامها فى أى مكان بالبرنامج وفى داخل جميع الدوال . هذا النوع يستهلك الذاكرة نظرا لوجودة طوال البرنامج .
المتغيرات المحلية Local : هى التى يتم إعلانها داخل دالة ، ويكون مجالها محلى وهذا يعنى أنه يمكن الوصول إليها واستخدامها فقط داخل الدالة حيث تم إعلانها . هذا النوع يوفر من الذاكرة حيث يتم تحرير الذاكرة بعد نهاية الدالة .




احصائية الشكر والاعجاب - 3 شكراً, 0 عدم اعجاب, 3 اعجاب
شكراً مشتاق الله, سعيد قادر, عريبى محمود ( شكر العضو على هذه المشاركة )
اعجاب مشتاق الله, سعيد قادر, عريبى محمود ( أعجبته المشاركة )
اعلانات

الصورة الرمزية مسلم11
مسلم11
:: عضو ذهبي ::
تاريخ التسجيل: Jun 2009
الدولة: بلاد الشام
المشاركات: 3,803
نشاط [ مسلم11 ]
قوة السمعة:184
قديم 22-06-2017, 08:24 PM المشاركة 2   
افتراضي


السلام عليكم ورحمة الله
اخي فتح الله هل انتهى الشرح لهنا ام للموضوع تتمة
ان كانه كذلك ارجو منك المتابعة حفظك الله وساقوم على رفع مواضيعك بخصوص لغة الميكرو سي .
ان لم يكن لديك مانع واعتقد بل متاكد انه مامن مانع
جعله لك الله ذخرا.

احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 0 اعجاب
شكراً F.Abdelaziz ( شكر العضو على هذه المشاركة )
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  
إضافة رد

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

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

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


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

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