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

   

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 19-02-2013, 01:13 AM المشاركة 17   
افتراضي



شكرا جزيلا على هذا الشرح الجيد جدا
أخى الكريم

شكرا جزيلا لك

مع تمنياتى بدوام التوفيق

اعلانات

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 19-02-2013, 01:15 AM المشاركة 18   
افتراضي


1-6-2 العوامل المنطقية Logical وعوامل العلاقات النسبية (المقارنات) Relational :
جميع هذه العوامل هى عوامل ثنائية binary ولكنها تعطى نتيجة إما "صواب" TRUE أو "غير صواب" FALSE . يتم تمثيل "صواب" TRUE عن طريق القيمة "الغير صفرية" , وتمثيل "غير صواب" FALSE بقيمة صفرية . هذه العوامل عادة تستخدم فى عبارات التحكم لتوجيه سريان تنفيذ البرنامج .

العوامل المنطقية Logical Operators :
الجدول التالى يبين العوامل المنطقية بترتيب أسبقيتها :





العوامل المنطقية تختلف بشكل كبير عن العوامل الخاصة بالتعامل مع البتات المنفردة bitwise فى أنها تتعامل مع المعاملات operands ككل بمنطق أو بمفهوم "صواب" TRUE و"غير صواب" FALSE .
العامل المنطقى AND(&&) : ينتج "صواب" TRUE إذا كان المعاملان كلاهما both "صواب" TRUE , وإلا تكون النتيجة "غير صواب" FALSE .
العامل المنطقى OR(||) : ينتج "صواب" TRUE إذا كان أى من either (أحدهما) المعاملين "صواب" TRUE .
فى حالة OR(||) , يجب أن يكون كلا المعاملين "غير صواب" FALSE حتى تكون النتيجة "غير صواب" FALSE .
لتوضيح الفرق إليك المثال التالى :

بفرضx = 5 و y = 2 فإن :
  • نتيجة (x&&y) تكون "صواب" TRUE , لأن كلاهما "غير صفرى" .
  • نتيجة (x&y) تكون "غير صواب" FALSE , لأنه عند إجراء عملية (&) AND ( بين البتات المفردة bitwise ) للقيمة الثنائية (x=101b) مع القيمة الثنائية ( y= 010b)فإن النتيجة تكون القيمة الثنائية ( 000b) وهى "صفرية" أى FALSE .
  • نتيجة ( x || y ) تكون "صواب" , لأن كلا القيمتين "غير صفرية" .
  • نتيجة ( x | y ) تكون "صواب" , لأنه عند إجراء عملية OR(|) ( بين البتات المفردة bitwise ) للقيمة الثنائية ( x= 101b )والقيمة الثنائية ( y = 010b ) تكون النتيجة القيمة الثنائية (111b) وهى غير صفرية أى TRUE .

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

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 19-02-2013, 01:18 AM المشاركة 19   
افتراضي


عوامل العلاقات النسبية (المقارنات) Relational Operators :
تستخدم هذه العوامل فى عمليات المقارنة. كما هو الحال فى العوامل المنطقية , يتم تقييم المعاملات "من اليسار إلى اليمين" وتوليد النتيجة "صواب" TRUE أو "غير صواب" FALSE . هذه العوامل فعليا "تسأل" ask حول علاقة بين تعبيرين بغرض الحصول على إجابة : "صواب" TRUE أو "غير صواب" FALSE بالصيغة التالية :
  • هل الأيسر أكبر من الأيمن ؟
  • هل الأيسر أقل من أو يساوى الأيمن ؟
الجدول التالى يبين عوامل العلاقات النسبية :



والجدول التالى يبين أمثلة عليها :




الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 19-02-2013, 01:21 AM المشاركة 20   
افتراضي


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

عوامل التزايد Increment Operators :
تسمح عوامل التزايد بتعديل "المعرف" , وهو فى موضعه , سواء بتزايد "مسبق" أو بتزايد "لاحق" .
على سبيل المثال :

كود:
x = x + 1 ; is the same as : ++x; //pre-increment operation and as : x++; // post-increment operation

فى هذا المثال يتم تزايد قيمة المتغير x بواحد . ++x هو عامل التزايد المسبق , بينما x++ هو عامل التزايد اللاحق . هذا يعنى أنه خلال تقييم التعبير عن طريق المترجم , يتم تغير القيمة ويكون ذلك " سابق" للتقييم أو "لاحق" للتقييم .
على سبيل المثال :

كود:
i = 1 ; k = 2 * i++ ; // at completion , k = 2 and I = 2 i = 1 ; k = 2 * ++i ; //at completion , k = 4 , I = 2
فى الحالة الأولى , يتم تزايد "i" بعد حل التعبير (k=2*i) وبالتالى لا تدخل الزيادة فى تعبير الضرب .
فى الحالة الثانية , "i" تزايدت قبل حل التعبير وبالتالى دخلت الزيادة فى تعبير الضرب .

عوامل التناقص Decrement Operators :
عوامل التناقص تعمل بشكل مماثل , وتتسبب فى طرح واحد عند التناقص "المسبق" أو التناقص "اللاحق" كما يلى :

كود:
j-- ;     //j = j-1 
--j ;     // j = j-1 


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 19-02-2013, 01:23 AM المشاركة 21   
افتراضي


عوامل التخصيص المركبة Compound Assignment Operators :
عوامل التخصيص المركب هى طريقة أخرى لتخفيض مقدار بناء الجمل المطلوب خلال بناء البرنامج . التخصيص المركب فى الحقيقة هو مجرد جمع بين عامل التخصيص ( = )مع عامل حسابى أو منطقى . يتم معالجة التعبير " من اليمين إلى اليسار" . إليك بعض الأمثلة :

كود:
a += 3 ; //a = a + 3 b -= 2 ; // b = b – 2 c *= 5 ; // c = c * 5 d /= a ; // d = d / a

هذا الجمع بين التخصيص مع عامل آخر يعمل بنفس الشكل مع عوامل البت المفردة :
( % , >> , << , & , | , ^ ) بالإضافة إلى العوامل الحسابية ( + , - , * , / ) كما هو موضح بالأمثلة التالية :



كود:
a |= 3 ;                         // a = a OR 3
b &= 2 ;                      // b = b AND 2 
c ^= 5 ;                       //c = c Exclusive ORed with 5 

PORTC &= 3 ;          // write the current value on PORTC
// ANDed with 3 back to PORTC .Forcing
//all of bits except the lower 2 to 0 
//and leaving the lower 2 bits unaffected .


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 19-02-2013, 01:26 AM المشاركة 22   
افتراضي



1-6-4 تعبير الشرط The Condition Expression :
تعبير الشرط قد يكون هو أكثر العوامل إبهاما ونادر الاستخدام . هو بالقطع أخترع لتوفير زمن الكتابة , لكنه عامة , ليس من السهل تتبعه بالنسبة للمبرمجين المبتدئين . يتم تغطية تعبير الشرط هنا فى قسم "العوامل والتعبيرات" نتيجة لطبيعة بنائه , لكنه فى الحقيقة وثيق الصلة مع "عبارات التحكم" التى سوف يتم تغطيتها لاحقا تحت عنوان "تعبيرات التحكم" .
إذا كان لدينا عبارات تتابع التحكم التالية :

كود:
if (expression_A) expression_B; else expression_C;

كما يمكن كتابتها كما يلى :

كود:
expression_A ? expression_B : expewssion_C

فى أى من الشكلين , "التعبير المنطقى" expression_A يتم تقيمه : إذا كانت النتيجة "صواب" TRUE , عندئذ يتم تنفيذ التعبير expression_B , وإلا يتم تنفيذ التعبير expression_C .
فى البرنامج , قد يكتب تعبير الشرط كما يلى :

كود:
(x < 5) ? y = 1 : y = 0 ; // if x is less than 5 , then // y = 1 , else y = 0

1-6-5 أسبقية (أولوية) العامل Operator Precedence :
عندما يكون هناك تعبيرات متعددة فى عبارة واحدة , فإنه يتم أخذ أسبقية ترتيب العامل فى الحسبان عن تقييم التعبير عن طريق المترجم .
أمثلة :
  • نتيجة y = 3 + 2 * 4 تكون y = 11 لأن عملية الضرب (*) تسبق عملية الجمع .
  • نتيجة y = ( 3 + 2 ) * 4 تكون y = 20 لأن عملية الأقواس ( ) تسبق عملية الضرب * .
  • نتيجة y = 4 >> 2 * 3 تكون y = 4 >> 6 لأن عملية الضرب (*) تسبق عملية الإزاحة .
  • نتيجة y = 2 * 3 >> 4 تكون y = 6 >> 4 لأن عملية الضرب (*) تسبق عملية الإزاحة .

1-7 تعبيرات التحكم Control Statements :


ameen_555
:: مهندس ::
تاريخ التسجيل: Feb 2013
المشاركات: 18
نشاط [ ameen_555 ]
قوة السمعة:
قديم 19-02-2013, 07:40 PM المشاركة 23   
افتراضي


جزاك الله خيرا على هذا المجهود الرائع_ يا ريت لو هذا الشرح يكون فيديو يكون مفيد اكثر


امل ميمو
:: مهندس متميز ::
تاريخ التسجيل: Mar 2007
المشاركات: 466
نشاط [ امل ميمو ]
قوة السمعة:
قديم 20-02-2013, 09:15 PM المشاركة 24   
افتراضي


بارك الله فيك اخي على هذا الكتاب المبسط المفصل وجعله في ميزان حسناتك وجزاك الله عنا خير الجزاء



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