C++ Academy · درس

الترويسة cmath: ‏pow وsqrt وabs وround

استخدم مكتبة الرياضيات القياسية لتنفيذ العمليات الرياضية الشائعة.

الدرس 2 من 413 خطوة

الترويسة cmath: ‏pow وsqrt وabs وround درس مجاني في C++ Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في C++ Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة C++ Academy 4 دروس في المجموع.

ترويسة <cmath>

توجد الدوال الرياضية القياسية في <cmath>. تقبل معظمها قيمة من النوع double وتعيدها؛ كما تتوفر نسخ محمّلة للنوعين float وlong double.

الأسس: pow

ترفع std::pow(base, exp) الأساس إلى القوة exp. وتعيد قيمة من النوع double.

#include <cmath>
double x = std::pow(2.0, 10);   // 1024.0
double y = std::pow(9.0, 0.5);  // 3.0

الجذور التربيعية: sqrt وcbrt

تعيد sqrt الجذر التربيعي، بينما تعيد cbrt الجذر التكعيبي.

double s = std::sqrt(2.0);   // 1.414...
double c = std::cbrt(27.0);  // 3.0

القيمة المطلقة: abs

تعمل std::abs مع الأنواع الصحيحة وأنواع الفاصلة العائمة. بالنسبة إلى الأعداد الصحيحة، استخدم <cstdlib> أو استخدم std::abs مباشرةً.

#include <cmath>
#include <cstdlib>
int    i = std::abs(-5);     // 5
double d = std::abs(-3.14);  // 3.14

التقريب: floor وceil وround وtrunc

أوضاع التقريب الأربعة:

  • floor — باتجاه اللانهاية السالبة
  • ceil — باتجاه اللانهاية الموجبة
  • round — إلى أقرب عدد، مع تقريب أنصاف القيم بعيدًا عن الصفر
  • trunc — باتجاه الصفر

أمثلة على التقريب

شاهد كيف تختلف هذه الدوال عند التعامل مع الأعداد الموجبة والسالبة.

std::cout << std::floor(3.7) << "\n";  // 3
std::cout << std::ceil(3.2)  << "\n";  // 4
std::cout << std::round(3.5) << "\n";  // 4
std::cout << std::trunc(-3.7) << "\n"; // -3
std::cout << std::floor(-3.7) << "\n"; // -4

باقي القسمة على أعداد الفاصلة العائمة: fmod

يعمل العامل % مع الأعداد الصحيحة فقط. استخدم std::fmod مع أعداد الفاصلة العائمة.

double r = std::fmod(10.5, 3.0); // 1.5

اللوغاريتمات

ثلاثة أنواع من اللوغاريتمات:

  • std::log — اللوغاريتم الطبيعي (أساسه e)
  • std::log10 — اللوغاريتم ذو الأساس 10
  • std::log2 — اللوغاريتم ذو الأساس 2 (في C++11)

الدالة الأسية: exp

تحسب std::exp(x) القيمة e^x، وهي الدالة العكسية للوغاريتم الطبيعي.

double e = std::exp(1.0);     // 2.718...
double x = std::log(e);       // 1.0

حساب المثلثات

تشمل الدوال sin وcos وtan ودوالها العكسية (asin وacos وatan). تتعامل جميعها مع الزوايا بوحدة الراديان.

double y = std::sin(M_PI / 2);  // 1.0
// Convert degrees to radians: deg * M_PI / 180

ثوابت مفيدة (C++20)

أضاف C++20 ثوابت رياضية مسماة في <numbers>، منها std::numbers::pi وe وsqrt2 وغيرها.

#include <numbers>
std::cout << std::numbers::pi;     // 3.14159...
std::cout << std::numbers::e;      // 2.71828...

اختبار سريع

ما الدالة التي تقرّب -3.7 إلى -4؟

مراجعة

تغطي <cmath> الأسس والجذور والقيمة المطلقة والتقريب وباقي القسمة واللوغاريتمات والدوال الأسية والمثلثية. وتعمل الدوال المثلثية بوحدة الراديان. أضاف C++20 الترويسة <numbers> للثوابت المسماة مثل std::numbers::pi.

البدء مجانًا

تعلم C++ مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
51
الدروس
203

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

هل درس «الترويسة cmath: ‏pow وsqrt وabs وround» مجاني؟

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

ماذا ستتعلم في «الترويسة cmath: ‏pow وsqrt وabs وround»؟

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

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

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

كم من الوقت يستغرق درس «الترويسة cmath: ‏pow وsqrt وabs وround»؟

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

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

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

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

  1. الأنواع الصحيحة مقابل أنواع الفاصلة العائمة
  2. الترويسة cmath: ‏pow وsqrt وabs وround
  3. الأعداد العشوائية باستخدام الترويسة random
  4. الحدود الرقمية وسلوك تجاوز السعة
← العودة إلى C++ Academy