0Pricing
C Academy · درس

تضمين math.h

اربط مكتبة الرياضيات واستخدمها

تضمين math.h درس مجاني في C Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في C Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة C Academy 4 دروس في المجموع.

لماذا يوجد math.h

تحافظ C على صغر لغتها الأساسية. فعمليات مثل الجذور التربيعية والأسس وحساب المثلثات ليست مدمجة في اللغة نفسها.

بل توجد هذه العمليات في ملف ترويسة لمكتبة قياسية يُسمى math.h. ولاستخدام هذه الدوال، يجب أن تدرج ملف الترويسة في أعلى برنامجك.

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

أضف هذا السطر بالقرب من أعلى ملفك، إلى جانب stdio.h:

  • #include <stdio.h> للإدخال والإخراج
  • #include <math.h> للدوال الرياضية

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

#include <stdio.h>
#include <math.h>

int main(void) {
    printf("math.h is ready\n");
    return 0;
}

أول استدعاء لـ math.h

بعد إدراج math.h، يمكنك استدعاء دوال مثل sqrt (الجذر التربيعي).

تأخذ معظم الدوال الرياضية قيمًا من النوع double وتعيدها، لذلك نطبع النتائج باستخدام محدد التنسيق %f.

#include <stdio.h>
#include <math.h>

int main(void) {
    double r = sqrt(16.0);
    printf("sqrt(16) = %f\n", r);
    return 0;
}

ربط مكتبة الرياضيات

توجد الدوال الرياضية في بعض الأنظمة، وخصوصًا Linux مع gcc، في ملف مكتبة منفصل.

إذا حصلت على خطأ undefined reference، فأضف الراية -lm عند الترجمة:

  • gcc program.c -lm

تعني -lm «ربط مكتبة الرياضيات».

كل شيء من النوع double

تعمل دوال math.h افتراضيًا مع النوع double. فهي تقبل معاملات من النوع double وتعيد نتائج من النوع double.

يمكنك أيضًا تمرير قيمة من النوع int؛ إذ تحولها C تلقائيًا إلى double قبل الاستدعاء.

#include <stdio.h>
#include <math.h>

int main(void) {
    int n = 25;
    double root = sqrt(n);
    printf("root = %f\n", root);
    return 0;
}

طباعة النتائج الرياضية

استخدم %f لطباعة قيمة من النوع double. ويمكنك التحكم في عدد المنازل العشرية باستخدام %.2f (منزلتين عشريتين).

يساعد ذلك على إبقاء القيم العشرية الطويلة مرتبة وسهلة القراءة.

#include <stdio.h>
#include <math.h>

int main(void) {
    double r = sqrt(2.0);
    printf("%f\n", r);
    printf("%.2f\n", r);
    return 0;
}

ثوابت مفيدة

تعرّف كثير من الأنظمة ثوابت مفيدة في math.h، مثل M_PI للعدد π.

هذه الثوابت ليست جزءًا من المعيار الصارم، لكنها شائعة جدًا. وإذا لم يكن M_PI موجودًا، يمكنك تعريف ثابتك الخاص.

#include <stdio.h>
#include <math.h>

int main(void) {
    printf("pi is about %.5f\n", M_PI);
    return 0;
}

جولة داخل محتوياته

يوفر ملف الترويسة math.h أدوات كثيرة، مجمعة حسب الغرض:

  • الأسس والجذور: pow وsqrt
  • حساب المثلثات: sin وcos وtan
  • اللوغاريتمات: log وlog10
  • التقريب: floor وceil وround

سنستكشف كل مجموعة في الدروس التالية.

دمج الرياضيات مع المنطق

نتائج math.h هي أعداد عادية يمكنك مقارنتها واستخدامها في عبارات if.

نتحقق هنا مما إذا كان العدد مربعًا كاملًا، وذلك بمقارنة جذره بعدد صحيح.

#include <stdio.h>
#include <math.h>

int main(void) {
    double root = sqrt(49.0);
    if (root == 7.0) {
        printf("49 is a perfect square\n");
    }
    return 0;
}

أخطاء شائعة

انتبه إلى أخطاء المبتدئين التالية:

  • نسيان #include <math.h>
  • نسيان -lm عند الربط على Linux
  • طباعة قيمة double باستخدام %d بدلًا من %f

ينتج عن كل خطأ من هذه الأخطاء رسالة مربكة أو مخرجات غير صحيحة.

جمع العناصر معًا

إليك برنامجًا صغيرًا مكتملًا يستخدم دالتين رياضيتين معًا.

لاحظ عبارات الإدراج في الأعلى، ومتغيرات double التي تخزن النتائج.

#include <stdio.h>
#include <math.h>

int main(void) {
    double a = sqrt(81.0);
    double b = pow(2.0, 5.0);
    printf("sqrt=%.1f pow=%.1f\n", a, b);
    return 0;
}

تحقق سريع

ما ملف الترويسة الذي يجب إدراجه لاستخدام دوال مثل sqrt وpow؟

مراجعة

تعلمت أن الدوال الرياضية موجودة في math.h، الذي تدرجه باستخدام #include <math.h>.

تستخدم هذه الدوال النوع double، وتُطبع باستخدام %f، وقد تحتاج على Linux إلى راية الربط -lm. سنستكشف بعد ذلك الأسس والجذور بالتفصيل.

الأسئلة الشائعة

هل درس «تضمين math.h» مجاني؟

نعم — نص درس «تضمين math.h» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة C Academy، انتقل إلى CoddyKit PRO. تتضمن دورة C Academy 4 دروس في المجموع.

ماذا ستتعلم في «تضمين math.h»؟

اربط مكتبة الرياضيات واستخدمها تتمرن على C Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ C Academy؟

لا تُشترط خبرة سابقة. C Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «تضمين math.h»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس C Academy هذا؟

نعم. كل درس في C Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. تضمين math.h
  2. القوى والجذور
  3. حساب المثلثات واللوغاريتمات
  4. التقريب والقيم المطلقة
← العودة إلى C Academy