في هذا الدرس سنتناول بالتفصيل الدوال المختصة بإجراء العمليات الحسابية من جمع وطرح وضرب وقسمة مع إيراد الأمثلة للتفصيل والإيضاح.
مكونات الدرس:
أولا: أنواع الأعداد أو البيانات الرقمية في لغة LISP.
ثانيا: كيفية التعامل مع هذه الأنواع، ونوع الرقم الناتج من إجراء عملية حسابية بين نوعين مختلفين.
ثالثا: سلسلة الدوال الخاصة بإجراء العمليات الحسابية.
1- دالة الجمع
2- دالة الطرح
3- دالة الضرب
4- دالة القسمة
رابعا: دوال استرجاع الرقم السابق successor أو اللاحق predecessor
والآن سنتناول هذه النقاط واحدة تلو الأخرى على بركة الله.
أولا: أهم أنواع الأعداد في لغة LISP..
1- الأعداد الصحيحة Integer Numbers
وهي الأعداد التي لا تحتوي على أي أجزاء عشرية، وتكون موجبة أو سالبة أو صفرا.
بعض الأمثلة على الأعداد الصحيحة:

2- الأعداد الكسرية Numbers Rational
وهي الأعداد التي تتكون من بسط Numerator ومقام Denominator. لغة LISP لغة ذكية وهي تتعامل مع المبرمج بذكاء؛ وخاصية كتابة الأعداد بصورة كسرية فيها تمثل جزء من ذكاء هذه اللغة..
بعض الأمثلة على الأعداد الكسرية:

3- الأعداد الحقيقة Numbers Real وNumbers Floating-Point
وهي الأعداد التي تتضمن العلامة العشرية.. يختلف النوع Real Numbers عن النوع Floating-Point Numbers في الدقة الموضوعة لكل منهما.
بعض الأمثلة على الأعداد الحقيقية:

4- الأعداد المركبة Numbers Complex
وهي الأعداد التي تكون من جزأين: جزء حقيقي Real Part، وجزء تخيلي Imagine Part، وتكتب في لغة LISP مسبوقة بالعلامة C# كما في الأمثلة التالية:

ثانيا: كيف يتم التعامل مع هذه الأنواع عند إجراء العمليات الحسابية عليها؟
-
إذا تم إجراء عملية حسابية بين أعداد صحيحة فستظهر النتيجة كعدد صحيح أيضا. وبالمثل لو قمنا بإجراء عملية حسابية بين أعداد كسرية فقط فستظهر النتيجة كعدد كسري ولو أجرينا العملية الحسابية على أعداد حقيقية (تحتوي فاصلة عشرية) فستظهر النتيجة كعدد حقيقي أيضا.
-
إذا تم إجراء عملية حسابية بين أعداد صحيحة وكسرية فستظهر النتيجة على هيئة كسر.
-
إذا تم إجراء عملية حسابية بين مجموعة من الأعداد أحدها على الأقل حقيقي فستظهر النتيجة كعدد حقيقي أيضا..
هكذا نستنتج أن:
شكل ظهور النتيجة يعتمد على نوع الأعداد، والأولوية فيها تكون للأعداد الحقيقية ثم الكسرية ثم العشرية.
ثالثا: الآن سنتناول الـــدوال الخاصة بإجراء العمليات الحسابية..
1- دالة الجمع +
الوظيفة:
تقوم هذه الدالة بإجراء عملية الجمع على عددين أو أكثر، مع إجراء عمليات التحويل للنوع المناسب من الأعداد.
الشكل:
(+ [number[s]])
أمثلة:
لاحظ نوع الرقم الناتج في كل حالة.
2- دالة الطرح –
الوظيفة:
تقوم هذه الدالة بإجراء عملية الطرح بين عددين أو أكثر، مع إجراء عمليات التحويل للنوع المناسب من الأعداد.
الشكل:
(- number[s])
أمثلة:
لاحظ نوع الرقم الناتج في كل حالة.
3- دالة الضرب *
الوظيفة:
تقوم هذه الدالة بضرب عددين أو أكثر، مع إجراء عمليات التحويل للنوع المناسب من الأعداد.
الشكل:
(* [number[s]])
أمثلة:
لاحظ نوع الرقم الناتج في كل حالة.

4- دالة القسمة /
الوظيفة:
تقوم هذه الدالة بإجراء عملية القسمة بين عددين أو أكثر، مع إجراء عمليات التحويل للنوع المناسب من الأعداد.
الشكل:
(/ number[s])
أمثلة:
لاحظ نوع الرقم الناتج في كل حالة.


رابعا: دوال استرجاع الرقم السابق successor أو اللاحق predecessor
1- الدالة 1+
الوظيفة:
تقوم هذه الدالة بإعادة الرقم الذي يزيد عن الرقم المعطى لها بمقدار واحد.
الشكل:
(1+ number)
أمثلة:

2- الدالة 1-
الوظيفة:
تقوم هذه الدالة بإعادة الرقم الذي يقل عن الرقم المعطى لها بمقدار واحد.
الشكل:
(1- number)
أمثلة:
