اجعل رورو44 صفحتك الرئيسية | احفظ رورو44 في مفضلتك | ارسل رورو44 إلى صديقك | أعلن على رورو44 | English Interface

 

 

 

شات خدمات مسجات جوال بطاقات رسائل حب دليل مواقع شات خليجي  دردشة منتديات حسناء الفارس عالم الرومانسية

مواقع سعودية | مواقع كويتية | مواقع بحرينية | مواقع قطرية | مواقع عمانية | مواقع يمنية | مواقع عراقية | مواقع اماراتية

 
    دروس في الذكاء الاصطناعي  الليسب Lisp
 

 

دوال التعامل مع الأرقام في LISP مع الأمثلة (2)



سنتابع في هذا الدرس الدوال الخاصة بالتعامل مع الأرقام.

وإليكم تعدادا ثم تفصيلا للدوال التي سنتناولها في هذا الدرس:


10- الدالة ABS
11- الدالة EVENP
12- الدالة ODDP
13- الدالة EXP
14- الدالة EXPT
15- الدالة LOG
16- الدالة GCD
17- الدالة GCD
18- الدالة INCF
19- الدالة DECF


والآن سنفصل في الحديث عن وظيفة وماهية كل دالة وطريقة كتابتها مع التزويد بأمثلة وأكواد متعددة للتوضيح والترسيخ..


10- الدالة ABS

الوظيفة:

تقوم هذه الدالة بإعادة القيمة المطلقة Absolute Value للرقم المعطى لها أيا كان نوعه.

الشكل:

(abs number)

أمثلة:

 

11- الدالة EVENP

الوظيفة:

تقوم هذه الدالة باختبار الرقم الصحيح المعطى لها وتعود بالقيمة True (T) إذا كان الرقم زوجي، وتعود بالقيمة False خلاف ذلك.

الشكل:

(evenp integer)

أمثلة:

 

12- الدالة ODDP

الوظيفة:

تقوم هذه الدالة باختبار الرقم الصحيح المعطى لها وتعود بالقيمة True (T) إذا كان الرقم فردي، وتعود بالقيمة False خلاف ذلك.

الشكل:

(oddp integer)

أمثلة:

 

13- الدالة EXP

الوظيفة:

تقوم هذه الدالة بإعادة الدالة الأسية e وقيمتها تساوي 2.718281828459045 مرفوعةً إلى الرقم الذي أرسلناه للدالة (أيا كان نوعه).

الشكل:

(exp number)

أمثلة:

 

14- الدالة EXPT

الوظيفة:

تختلف هذه الدالة عن سابقتها في أنها تستقبل رقمين: الأول يعبر عن الأساس والثاني يعبر عن الأس أو القوة التي سيرفع لها الرقم، وستقوم بإعادة نتيجة رفع الرقم للقوة المعطاة أيا كان نوع الرقم (الأساس) وأيا كان نوع القوة (الأس).

الشكل:

(expt base-number power-number)

أمثلة:

 

15- الدالة LOG

الوظيفة:

تعود هذه الدالة بلوغاريتم العدد المعطى لها مع افتراض أن الأساس هو العدد الطبيعي e إذا لم نحدد لها الأساس، أما إذا قمنا بتحديد الأساس فإنها ستعود بلوغاريتم العدد لنفس الأساس المعطى. شاهد الشكل والأمثلة ليتضح ذلك أكثر.

الشكل:

(expt number [optional base])

أمثلة:

شاهد الكود التالي لتتأكد مما ذكرته في الصورة السابقة بنفسك:

 

16- الدالة GCD

الوظيفة:

اختصار لـgreatest-common-denominator .
تعود هذه الدالة بالقاسم المشترك الأكبر لمجموعة الأعداد الصحيحة المعطاة لها.

حالات خاصة:

  • عندما نعطي لهذه الدالة عدد واحد فإنها ستعود بالقيمة المطلقة لهذا العدد.

  • أما عندما لا نرسل لها أي عدد فإنها ستعود بالرقم صفر حيث يعتبر العنصر المحايد في هذه العملية.

الشكل:

(gcd [integer[s]])

أمثلة:

 

17- الدالة GCD

الوظيفة:

اختصار لـleast-common-multiple.
تعود هذه الدالة بالمضاعف المشترك الأصغر لمجموعة الأعداد المعطاة لها من أي نوع.

حالات خاصة:

  • عندما نعطي لهذه الدالة عدد واحد فإنها ستعود بالقيمة المطلقة لهذا العدد.

  • عندما لا نرسل لها أي عدد فإنها ستعود بالرقم واحد حيث يعتبر العنصر المحايد في هذه العملية.

  • عندما نرسل لها الدالة عددين كلاهما لا يساوي الصفر، فإن:

(lcm a b) == (/ (abs (* a b)) (gcd a b))
 

  • عندما يكون كلا المتغيرين أو أحدهما يساوي الصفر، فإن:

(lcm a 0) == (lcm 0 a) == 0

  • أما إذا أرسلنا أكثر من عددين فإنه سيتم حساب المضاعف المشترك الأصفر لهذه الأعداد كالآتي:

(lcm a b c ... z) == (lcm (lcm a b) c ... z)

الشكل:

(lcm [integer[s]])

أمثلة:

 

18- الدالة INCF

الوظيفة:

اختصار لـIncrement Function.
ونرسل لهذه الدالة متغير يخزن فيه الرقم الأصلي، ورقم يعبر عن مقدار الزيادة.. وتعود هذه الدالة بالرقم المخزن في المتغير مضافا إليه مقدار الزيادة المطلوبة.

الشكل:

(incf place [delta-form])

أمثلة:

في البداية سنستخدم الدالة setq لإسناد قيمة عددية ولتكن 5 إلى متغير اسمه x كالتالي:

ولتتأكد أنه تم تخزين القيمة العددية 5 في المتغير الذي أسميناه x اكتب x فقط ثم اضغط على enter:

والآن ستستطيع تطبيق الدالة incf بأشكال مختلفة على المتغير x ، مع ملاحظة أنه يجب أن يكون المتغير x معرف في نفس الـ Listener أو أن يتم عمل Evaluation له إذا كان مكتوبا في الـ Text Editor .

تابع معي هذه الأمثلة:

في المثال السابق نلاحظ أن قيمة x زادت بمقدار واحد.

في المثال السابق نلاحظ أن قيمة x زادت بمقدار 3.

في المثال السابق نلاحظ أن قيمة x زادت بمقدار 0.5 .

في المثال السابق نلاحظ أن قيمة x زادت بمقدار -0.5 .

 

ملاحظة هامة:

لاحظنا أنه عندما نرسل للدالة incf المتغير فقط، فان مقدار الزيادة الافتراضي هو واحد، أي أن الرقم سيزيد في هذه الحالة بمقدار واحد.

وبالتالي ستقوم الدالة incf بنفس وظيفة الدالة 1+ ، فما الفرق بينهما إذن؟

الفرق هو أننا عندما نرسل متغير للدالة 1+ فان الدالة ستعود بالمتغير مضافا إليه واحد دون أن تخزن القيمة الجديدة في المتغير. أي أن المتغير سيبقى بنفس قيمته القديمة دون تغيير.

أما عندما نرسل متغير للدالة incf فان الدالة ستعود بالرقم مضافا إليه مقدار الزيادة المطلوبة وكذا فإن القيمة الجديدة سيتم تخزينها مكان القيمة القديمة لذلك المتغير. ولتوضيح ذلك سنضرب المثال التالي:

قم بتخزين العدد 3 في المتغير K:

استخدم الدالة 1+ وسترى بأنها ستعود بالرقم 4:

ومع هذا لم تخزن القيمة الجديدة 4 في المتغير k:

أما لو استخدما الدالة incf مع المتغير k كالتالي:

فان القيمة الجديدة أربعة سيتم تخزينها في المتغير k:

 

19- الدالة DECF

الوظيفة:

اختصار لـDecrement Function.
تقوم هذه الدالة بالوظيفة العكسية لسابقتها، ونرسل لها متغير يخزن فيه الرقم الأصلي، ورقم يعبر عن مقدار النقصان.. وتعود هذه الدالة بالرقم المخزن في المتغير مطروحا منه المقدار المطلوب.

الشكل:

(decf place [delta-form])

أمثلة:

في البداية سنستخدم الدالة setq لإسناد قيمة عددية ولتكن 5 إلى متغير اسمه x كالتالي:

 

بالمثل تستطيع تطبيق الدالة decf بأشكال مختلفة على المتغير x ، مع ملاحظة أنه يجب أن يكون المتغير x معرف في نفس الـ Listener أو أن يتم عمل Evaluation له إذا كان مكتوبا في الـ Text Editor .

تابع معي هذه الأمثلة:

نلاحظ أن قيمة x نقصت بمقدار واحد.

نلاحظ أن قيمة x نقصت بمقدار 2.

نلاحظ أن قيمة x نقصت بمقدار -2 أي أنها زادت بمقدار 2.

نلاحظ أن قيمة x نقصت بمقدار 0.5 .

نلاحظ أن قيمة x نقصت بمقدار -0.5 أي أنها زادت بمقدار 0.5 .


 

وبالمثل سنلاحظ القيمة الجديدة ستُخزن في المتغير عند استخدام الدالة decf:

بينما عندما نرسل متغير للدالة 1+ فان الدالة ستعود بالمتغير منقوصا منه واحد دون أن تخزن القيمة الجديدة في المتغير. أي أن المتغير سيبقى بنفس قيمته القديمة دون تغيير:

 



المزيد من المواضيع

مقدمة في العمليات على القوائم [(List Processing)]
بيئة LispWorks والأدوات المتوفرة في هذا البرنامج!
دوال التعامل مع الأرقام في LISP مع الأمثلة (3)
طباعة المخرجات !
الشروط والإجراءات التابعة لها في LISP
الدوال المنطقية في LISP
دوال التعامل مع الرموز Characters في LISP
دوال المقارنة بين السلاسل الرمزية Strings في LISP
دوال التعامل مع سلاسل الرموز Strings في LISP
دوال المقارنة بين الرموز Characters في LISP
دوال التعامل مع الأرقام في LISP مع الأمثلة (4)
دوال التعامل مع الأرقام في LISP مع الأمثلة (1)
دوال إجراء العمليات الحسابية في لغة LISP
التعابير الرمزية، والقواعد اللغوية في لغة Common Lisp
دوال المقارنة في لغة LISP !
تعرف على أداة الـ Listener في برنامج LispWorks!
تعرف على أداة الـText Editor في برنامج LispWorks!
تنصيب LispWorks على جهاز يعمل بنظام التشغيل ويندوز
تحميل LispWorks لأي نظام تشغيل تعمل عليه (ويندوز / لينكس / يونكس)
مقدمة للغة Common Lisp

1

 

الاقسام الرئيسية

دروس للمبتدئين

--

دروس في أنظمة التشغيل

--

دروس في الانترنت

--

دروس في لغات البرمجة

--

دروس في برمجة المواقع

--

دروس في الأوفيس

--

دروس في الرسوم و التصميم

--

دروس في قواعد البيانات

--

دروس في الألعاب والبرامج

--

دروس في المكونات الصلبة

--

دروس في الشبكات

--

دروس في أمن المعلومات

--

دروس في الذكاء الاصطناعي

--

القائمة البريدية

  فضائح | ماسنجر | تداول | الحياة الزوجية | عجائب وغرائب| دروس تعليمية | عالم حواء | فضائح الفن | ستار اكاديمي | نكت | برامج | صور | | شات سعودي | شات عربي | ماسينجر | مسجات | دليل مواقع | دليلك | مواقع سعودية | مواقع كويتية | مواقع بحرينية | مواقع قطرية | مواقع عمانية | مواقع يمنية | مواقع عراقية | مواقع اماراتية | دردشة خليجية | دردشة سعودية | دردشة عربية | شات صوتي | دردشة صوتية | دردشة كويتية | دردشة اماراتية | دردشة عمانية | دردشة قطرية | دردشة بحرينية | دردشة عراقية | دردشة يمنية | سكس | طريق الاسلام, انا مسلم , طريق الهدايه , مسلمون , منوعات اسلاميه | اسلاميات , برامج اسلامية , منوعات اسلامية | جنس | الاسرة المسلمة , الاسرة العربية , اسرتي , عائلتي | برامج الاسره , نصائح معلومات , اسرة عربية سعودية خليجية | دروس تعليمية , مكتبة الدروس التعليمية | شروح برامج , شرح برامج , دورات تعليميه | طب وصحه - المركز الطبي | طبيبك على الانترنت , معلومات طبية , معلومات صحيه

Roro44.com xml :                            

شات سعودي | شات عربي | شات خليجي | العاب | دردشات | العاب بنات

 |  اشهر موقعك | احصائيات الموقع | اسعار الاعلانات |  لمراسلة الإدارة  |

:: ©2007-2003 www.roro44.com All rights reserved ::