هذا الدرس سنوضح العمليات الحسابية المستخدمة في لغة #C ومقارنتها بالجبر ، وبعض المختصرات لهذه العمليات :
والآن بسم الله نبدأ :
* العمليات الحسابية :
بعض العمليات الحسابية في البرمجة تختلف برمزها عن الجبر وهذا الجدول يوضح الفرق بين الرموز :
التعابير الحسابية يجب أن تكتب بخط مستقيم أي على نفس الخط . وهي أيضا ً لا تحتوي على أسس.
مثلا ً العبارة التالية :
في الجبر تكتب هكذا : 5 ÷ )m = )a+b+c+d+e
في C# تكتب هكذا : m = )a+b+c+d+e( / 5
في عملية القسمة يعتمد الناتج على نوع القيمة المدخلة فإذا كانت من نوع integer فإن النتيجة ستتحول تلقائيا ً إلى أقرب عدد صحيح . مثلا ً :
إذا أدخلنا قيمة صحيحة 9 وقسمناها على قيمة صحيحة أخرى 2 في الأصل الناتج يكون 4.5 لكن النتيجة ستكون 4 فقط .
* ترتيب العمليات ) الأسبقية ( :
أثناء التنفيذ لجملة معينة تعددت فيها العمليات الحسابية يجب أن يعرف الCompiler بأيها يبدأ وقد تم ترتيب هذه العمليات حسب الأولوية في الجدول التالي :
مثلا ً لو طلبنا من الحاسوب أن ينفذ الجملة الحسابية التالية :
Z = pr % q + )w– y( ÷ x
حتى يستطيع فهمها يجب أن ندخلها بالشكل التالي :
Z = p * r % q + )w – y( / x
والآن سنتخيل ما سيقوم به المترجم)Compiler( وقد تم تنفيذ البرنامج وقام المستخدم بإعطاء القيم التالية :
P = 5 , r = 6 , q = 3 , w = 7, y = 3 , x = 2
أولا ً سيرتب القيم في الجملة الحسابية كالتالي :
Z = 5 * 6 % 3 + ) 7 – 3( / 2
وهذه الخطة التي سيتبعها في عملية الحساب :
وهذه الخطوات التي يقوم بها تفصيليا ً أثناء عملية الحساب :
* بعض المختصرات للعمليات الحسابية :
بعض التعابير للعمليات الحسابية يمكن اختصارها للسهولة وعادة ً تستخدم للعدادات فمثلا ً :
c = c + 3 ;
وتعني إضافة قيمة 3 لنفس قيمة المتغير c . ويمكن كتابتها بطريقة أخرى :
c += 3 ;
والجدول التالي يبين اختصارات العمليات الحسابية :
* عمليات التزايد والتناقص المختصرة :
وتستخدم للعدادات المتزايدة بمقدار1 أو المتناقصة بمقدار واحد فقط . فبدلاً من استخدام التعبير c = c + 1 ، أو c += 1 . استخدام التعبير c++ ، والجدول التالي يوضح هذه العمليات :
فلو تتبعنا البرنامج التالي :
C#
c = 5;
Console.WriteLine)c(; // يطبع 5Console.WriteLine)c++(; // يطبع 5 ثم يزيد 1
Console.WriteLine)c(; // يطبع 6
c = 5;
Console.WriteLine)c(; // يطبع 5
Console.WriteLine)++c(; // يزيد 1 ثم يطبع 6
Console.WriteLine)c(;// يطبع 6