تعلم لغة البرمجة C للمبتدئين 6 الجزء الثالث : مكتبة الحسابات الرياضية mathematical library

Header Ads

تعلم لغة البرمجة C للمبتدئين 6 الجزء الثالث : مكتبة الحسابات الرياضية mathematical library

في الاجزاء السابقة تعرفنا على العمليات الحسابية الاساسية التي يستعملها الكمبيوتر , من بعدها تعلمنا العمل بها داخل برنامج و اظهارها على الشاشة ما سمح لنا بفتح افق جديدة في عالم البرمجة بلغة C .
في هذا الجزء الثالث و الاخير من الدرس السادس لن نخرج من الحسابات الرياضية و سوف نتعرف عن مكتبة مميزة .
تعلم لغة البرمجة c للمبتدئين 6 الجزء الثالث  مكتبة الحسابات الرياضية mathematical library

في لغة البرمجة C توجد ما نسميه بالمكتبات ( libraries ) لقد تطرقنا اليها سريعا في احد الدروس من الدورة و الان اتى الوقت لكي نتعرف عليها اكثر ( لا تخشى من شئ لن نتعمق كثيرا 😁 ) , و من ضمن هذه المكتبات توجد منها ما نطلق عليها اسم اساسية ( standard libraries ) , بعني المكتبات التي هي دائما صالح للإستعمال و  نستعملها كثيرا .

هذه المكتبات هي في الاصل مجموعة من الدوال ( functions ) الجاهزة , مثل هذه الدوال تم كتابتها و تجهيزها من طرف مبرمجين قبلك , ما سوف يوفر عليك الكثير من العناء و التعب في كتابة او انشاء اكواد function في كل مرة تريد انشاء برنامج يعتمد عليها , خصوصا المتعلقة بالرياضيات هي صعبة جدا لقد تم كتابتها و تجهيزها من طرف اساتذة جامعين متمكنين جدا في المادة احمد الله على العمل الذي قاموا به من قبلك و الا سوف تعاني ... كثيرا 😖 .

لقد استعملنا من قبل دوال printf و scanf من على مكتبة stdio.h .
اليوم سوف نتعرف على مكتبة اخرى اسمها math.h التي تحتوي على الكثير من الدوال الجاهزة في مادة الرياضيات .

طبعا العمليات الحسابية الخمسة التي تعرفنا عليها غير كافية لبرمجة كل شئ في المطلق , لكن في نفس الوقت يمكن ان لا تحتاج ابدا الى بعض العمليات الحسابية المعقدة جدا ( مثل الدالة الأسية بالإنجليزية : Exponential function ) على العموم المكتبة math.h تحتوي على الكثير من الدوال التي سوف تحتاج اليها .

اول اشكالية في لغة البرمجة C هي : لا يمكننا استعمال القوى (الأس)  !
ادا كيف يمكننا حساب المربع ؟

لا تحاول حسابها على هذا الشكل 5^2 في كود برنامجك , الكمبيوتر لن يفهمها ابدا لانه لا يعرفها اصلا , الا فيحال ما قمت بشرحها له عبر اضافة مكتبة الرياضيات .

لكي تستطيع استعمال دوال  مكتبة الرياضيات يجب عليك وضع توجيهة المعالج ( the preprocessor directive ) التالية في الاعلى او بالاصح في الاسطر الاولة من كود البرنامج


بعدها يمكنك استعمال جميع اال functions المخزنة بداخلها .

 في هذا الجزء من الدورة سوف اعرض عليكم القليل من ما تحتويه مكتبة math.h و ليس كلها ... لعدت اسباب منها :
السبب الاول انها تحتوي على الكثير الكثير ... الكثير من الدوال ما قد يخلط عليكم الامور ويمنعكم من استيعاب الدرس .
السبب الثاني و هو السبب الحقيقي الكسل يمنعني من كتابتها جميعا 😑 , مجرد كتابة و شرح كل هذه الدروس عمل يستغرق مني الكثير من الوقت ... نحتاج دعمكم المعنوي في التعليقات يا شباب 😄 .

ملاحظة : ربما ليس جميع من يقراء هذا الجزء لديه المستوى الكافي في مادة الرياضيات ليفهم ما سوف نطرحه عليكم الان , ان كان هذا هو حالك فلاعليك اقراء فقط ما سوف يلي دون خوف , لن ياثر عليك في بقية دروس الدورة , ان كنت لا تفهمها فمن المحتوم انك لن تستعملها اصلا , هي تستعمل في البرامج التي مبنية للحساب او في حالات خاصة مثل انشاء برنامج تشفير معقد و ما شبه , مثل ما اشرت اليه في مقدمة الدورة في النهاية كل واحد سوف يُبرمج على حسب مستواه  .

fabs 

هذه الدالة تقوم بارجاع القيمة المطلقة لاي عدد , القيمة المطلقة لاي عدد هي قيمته موجبة |x| 
لو انك تعطي العدد 43 كقيمة لمتغير و تستعمل الدالة fabs سوف ترجع لك القيمة المطلقة اي 43 .
لو انك تعطي العدد -43 ( هذه المرة عدد سالب) كقيمة لمتغير و تستعمل الدالة fabs سوف ترجع لك القيمة المطلقة اي 43 .
ببساطة هي تعطيك العدد الموجب دائما لاي عدد مهما كان .


هذه الدالة تقوم بارجاع double ادا المتغير absolute يجب ان يكون من نوع double 

ملاحظة : توجد function اخرى تشبهها اسمها abs , في مكتبة stdlib.h , الدالة abs تقوم بنفس الشئ لكنها تستعمل int و ليس double مثل fabs .

ceil 

هذه الدالة تقوم بإرجاع العدد الصحيح الأول بعد الرقم العشري الممنوح لها , هي تعمل على نزع الاعداد بعد الفاصلة لتجعل منه عدد كامل اكبر من الذي معنا و تتخلص من العدد العشري .
مثال : لو نعطيها قيمة 35.21 الدالة ترجع لنا ب 36 , لو نعطيها 12.41 الدالة ترجع لنا ب 13 وهكذا .
ايضا الدالة ceil ترجع ب double


floor

تقوم بنفس عمل الدالة ceil لكن هذه المرة ترجع بعدد كامل اقل لتتخلص من ما بعد الفاصلة .
لو انك تعطيها 13.28 , floor ترجع لك ب 13 .

pow

هذه الدالة تسمح بحساب الأُس   , يجب ان تحدد لها قيمتين اولا العدد ثم القوة التي تريد ترقيتها اليها و تستعمل بالطريقة التالية : 


مثال : 2 اس 3 ( التي عادتا ما نكتبها ب 2^3 على الكمبيوتر ) هي العملية الحسابية ل 2*2*2 التي تساوي 8 .


sqrt

هذه الدالة تقوم بحساب الجذر التربيعي , و ترجع ب double .


sin, cos, tan

هذه الدوال الثالثة تستعمل في حساب مثلثات ( Trigonometry )
لديهم نفس طريقة العمل وكل واحدة منهم ترجع ب double , و يصلون الى قيم الراديان أو التقدير الدائري ( Radian )

asin, acos, atan

تستعمل في مطابقات المثلثية , يرجعون ب double .

exp

هده الدالة تستعمل في حساب الدالة اسية , و هي ايضا ترجع ب double ( نعم اعلم انت ترى بان كل الحسابات المعقدة ترجع ب double و انت اصلا تكرهه 😂 )

log

هذه الدالة تقوم بحساب لوغارتم عشري ( Common logarithm )

خلاصة الدرس السادس 

- الكمبيوتر ما هو الى الة حاسبة كبيرة , كل ما يستطيع فعله هو عمليات حسابية .
- العمليات الحسابية التي يعرفها الكمبيوتر هي العمليت الحسابية الاساسية , الجمع الطرح الضرب القسمة و ال modulo .
- يمكنك القيام بعمليات حسابية بين المتغيرات , وهذا اكثر شئ نستعمله في البرمجة و ايضا احسن شئ يقوم به الكمبيوتر , لانه يحسابها بسرعة البرق .
- ال Increment هي عملية اضافة 1 الى قيمة متغير و تكتب كالتالي اسم المتغير ++
- ال decrement هي عملية انقاص 1 من قيمة متغير  و تكتب كالتالي اسم المتغير --
- لكي تجعل الكمبيوتر يفهم باقي العمليات الرياضية الاكثر تعقيد يجب ان تضيف له مكتبة الرياضيات التي توضع في اول الاسر من برنامجك و تكتب كالتالي : <include <math.h#
- مكتبة الرياضيات math.h تحتوي على الكثير من ال functions المخصصة للعمليات الحسابية مثل الجدر التربيعي و الاس ... الخ .

الى هنا نكون قد انتهينا من الدرس السادس كليا و سوف نبداء في ما يسمى بالشروط في البرمجة , تابعونا .

هناك تعليقان (2):

  1. في انتظار باقي الكورس .. شكرا لحضرتك جداا

    ردحذف
  2. صراحة مستوى عال في الشرح لكم جزيل الشكر و التقدير
    في انتظار باقي الاجزاء

    ردحذف