المعهد التقني المتوسط الاول
اهلا وسهلا بكم في المنتدى

انضم إلى المنتدى ، فالأمر سريع وسهل

المعهد التقني المتوسط الاول
اهلا وسهلا بكم في المنتدى
المعهد التقني المتوسط الاول
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

تمارين على تجربة الرابعة

اذهب الى الأسفل

تمارين على تجربة الرابعة  Empty تمارين على تجربة الرابعة

مُساهمة من طرف أيمن الإبراهيم الخميس فبراير 13, 2014 11:47 am

اهلا وسهلا بكم في منتدى المعهد التقني المتوسط الاول
---------------------------------------
                                       بسم الله
وسأقوم الآن بمراجعة سريعة على بعض الأشياء المهمة في الدرس السابق والتي يجب أن تعرفها جيدا لتكمل مسيرتك في احتراف برمجة البك إن شاء الله ..

أولا :: عندما نريد من البك تكرار تنفيذ مجموعة من الأوامر فإنه يجب علينا استخدام أمر يسمى for (أو جملة for ) .. فعلى سبيل المثال
كما تعلم لو أردنا أن نجعل البك يضيء الليد الموصل بالرجل b0 ثم يطفئه فإننا سنكتب الكود التالي
الكود:
void main()
}
TRISB=0;
PORTB+0XFF;
delay_ms(1000(;
PORTB=0;
delay_ms(1000);
{


في الكود السابق .. سيضيء الليد الموصل بالرجل b0 ثم ينتظر البك لمدة ثانية ثم يطفئ الليد ثم ينتطر لمدة ثانية .
ولكن ماذا نفعل إذا أردنا أن نجعل البرنامج السابق يتكرر تنفيذه خمسة عشر مرة أي أن عدد المرات التي سيضيء فيها الليد ثم ينطفئ هي خمسة عشر مرة .. في هذه الحالة لابد من استخدام أمر يقوم بعملية التكرار هذه .. وهذا الأمر كما ذكرت هو for أو ما يسمى بجملة for .. ولكن كيف نستخدم جملة for لتكرار تنفيذ مجموعة من الأوامر عدد معين من المرات (وليكن 60 مرة ) .. ببساطة سنكتب الكود التالي
الكود:
for(m=0;m<60;m++)
}
هنا نكتب الاوامر التي تريد تكرار تنفيذها
60
مرة
{



كلام جميل ... ولكن ماذا لو أردت أن أغير هذا العدد .. أي أجعل البك يكرر تنفيذ مجموعة من الأوامر وليكن 19 مرة .. (ببساطة غير الرقم 60 واجعله 19 كما يلي)

الكود:
for(m=0;m<19;m++)

ولكن قبل هذا لا بد ان اكتب في بداية البرنامج الامر التالي

الكود:
Char m;

ولكن ماذا تعني بهذا الامر char m ؟؟؟   هذا الامر نسميه تعريف المتغير
متغير ؟؟؟ نعم المتغير هذا هو مكان نحجزه في الذاكرة (ذاكرة البك ) فائدته اننا نستخدمه في الكثير من العمليات وايضا نستخدمه في تخزين قيمة معينة
بمعنى اننا الان حجزنا مكان في الذاكرة ( واخترنا له اسم هو m وهذا المكان يمكننا ان نضع فيه قيمة معينة ( 5 مثلا او 18 او 3 او اي قيمة ) كما يمكننا ان نغير هذه القيمة فمثلا لو كانت صفر يمكننا ان نجعلها بعد مدة براحد او باي قيمة اخرى   بما اننا  نستطيع تغير قيمته لذلك نطلق عليه اسم متغير
ولكن ما فائدة هذا المتغير في جملة for ؟؟؟؟
فائدته سنعرفها عندما نعرف كيف تعمل جملة for وهذا ما ساشرحه بعد قليل 
والان لنكتب الكود الذي سيجعل الليد يضيء وينطفئ 15 مرة

الكود:
void main()
}
char x;
TRISB=0;
FOR(X=0;X<15;X++)
}
PORTB=0XFF;
delay_ms(1000);
PORTB=0;
delay_ms(1000);
{
{
ولكن ماذا تعني char هذه ؟؟
انها تعني ان المتغير الذي حجزناه في الذاكرة يتكون من 8 بت

وهذا يعني أن هذا المتغير يمكن أن تكون قيمته صفر أو واحد أو 2 أو 3 .... أو 255 ولا يمكن أن تزيد قيمته عن 255 ... لماذا ؟؟ لأنه يتكون من 8 بت والبت bit هذا إما أن يكون واحد أو صفر ( بالنظام الثنائي ) ومن المعلوم أن أكبر رقم يمكن الحصول عليه من 8 بت بالنظام الثنائي هو 11111111 وهو يساوي 255 بالنظام العشري ... (راجع الأنظمة الرقمية الثنائي والعشري والسادس عشري .. وابحث عنها إذا لم تكن تعرفها جيدا..؟؟)

مما سبق يتضح أننا لو أردنا أن نعرف متغير هذا المتغير قيمته من 0 - 255 فإننا نستخدم النوع char ..
وهذا يعني أننا لو استخدمنا جملة for وكان عدد مرات التكرار هو 255 أو أقل فإننا في بداية البرنامج سنعرف متغير هذا المتغير من النوع char ..
ولكن ماذا لو أردنا أن نكرر تنفيذ مجموعة من الأوامر ألف مرة مثلا ... في هذه الحالة لا نستطيع استخدام char وسنستخدم بدلا منه نوع آخر اسمه int . هذا النوع يتكون من 16 بت (وبهذا يمكن أن تكون قيمة هذا المتغير من 0 إلى 65535 )
كلام جميل ... هيا بنا الآن نكتب كود يقوم بتكرار تنفيذ مجموعة من الأوامر ألف مرة


الكود:
void main()
}
int x;
for(x=0;x<1000;x++)
}
هنا نكتب الاوامر التي ستتكرر الف مرة
{
{

وسنشرح المتغيرات بإستزادة أكثر في دروس قادمة إن شاء الله ..


أيمن الإبراهيم
أيمن الإبراهيم
مدير الموقع

عدد المساهمات : 63
نقاط : 7706
تاريخ التسجيل : 06/01/2014
العمر : 30
الموقع : دمشق

https://reno.syriaforums.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

- مواضيع مماثلة

 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى