1

هل تختلف أولويات العمليات الحسابية في البرمجة؟

أودّ لو أعرف هل تختلف أولويات العمليات الحسابية في البرمجة أم أنّ الأولويات ثابتة في كل المجالات، وهل تختلف طريقة كتابة العمليات الحسابية في لغات البرمجة المختلفة؟

13:46 02 ديسمبر 2021 6501 مشاهدة

1

إجابات الخبراء (1)

1

إجابة معتمدة
أثير الخندق
أثير الخندق . تكنولوجيا المعلومات
تم تدقيق الإجابة بواسطة سناء عناني 13:46 02 ديسمبر 2021

عزيزي السّائل، نعم، إنّ أولويات العمليّات الحسابيّة تختلف في لغات البرمجة من لغةٍ إلى أخرى، وفيما يأتي توضيح لذلك:

في لغات البرمجة الأكثر شهرة مثل: (Java)، و(C++)، و (VB.net) تكون الأولويات بالتّرتيب؛ من الأولويّة الأعلى إلى الأقل كما يأتي:

  1. الأقواس.
  2. الأسس.
  3. القسمة والضرب، تتساويان في الأولوية.
  4. الجمع والطرح، تتساويان في الأولوية.

وعند تساوي الأولويات تنفذ العمليات الحسابية من اليسار إلى اليمين.

مثال: 2*3+(5*4)^2

الحل:

  1. في البداية نجد قيمة ما داخل الأقواس (4*5)=20
  2. ثم نجد حاصل 2 أس 20 =400
  3. بعدها نجد حاصل ضرب (3*2)= 6
  4. أصبح لدينا 400+6 نقوم بعملية الجمع ليكون الناتج= 406


أمّا في بعض لغات البرمجة الأخرى، فإنّه لا يوجد ترتيب محدّد لأولويّات العمليّات الحسابية، مثل اللغات الآتية:

  1. Smalltalk

إذ تُنفّذ العمليّات من اليسار إلى اليمين بالتّرتيب.

مثال: 4*5+3

الحل:

  1. تُنفّذ عمليّة الجمع أولاً، 5+3=8
  2. ثمّ تُنفّذ عملية الضرب، 4*8=32
  3. إذاً النّاتج 32 وليس 17 حسب أولويات لغات البرمجة الأخرى.
  4. لغة LISP

إذ تُنفّذ العمليّات من اليسار إلى اليمين بالتّرتيب كما في لغة (Smalltalk).


أمّا اللّغات التي تنفّذ العمليات الحسابية من اليمين إلى اليسار فهي كالآتي:

  1. لغة APL

مثال: 2-1*4

الحل:

  1. تُنفذ عملية الطرح بدايةً 2-1=1
  2. إيجاد حاصل الضّرب 1*4=4
  3. الناتج هو 4 وليس 7.


وكما تختلف لغات البرمجة في أولويات العمليات الحسابية، فهي تختلف أيضاً في طريقة كتابة بعض العمليات والتعابير الحسابية، وفيما يأتي جدول يبين اختلاف كتابة بعض الرموز الحسابية من لغة إلى أخرى:


الرمز الحسابي
Java
Smalltalk
APL
Python
القسمة
/
//
÷
/
باقي القسمة
%
Rem
|
%
الأس
^
raisedTo
*
**


تختلف أيضاً بعض رموز العمليات الحسابية في لغات البرمجة عن تلك المتعارف عليها في الجبر، وتكون الرموز كالآتي:

  1. الضرب يرمز له بالرمز *
  2. القسمة يرمز لها بالرمز / ، و القسمة بناتج صحيح يرمز لها بالرمز \
  3. باقي القسمة MOD يرمز له بالرمز %

1

لماذا كانت الإجابه غير مفيده
0/ 200
لقد تجاوزت الحد الأقصى من الحروف المسموحة
رجوع