التقريب والقيم المطلقة
استخدم floor وceil وround وfabs
التقريب والقيم المطلقة درس مجاني في C Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في C Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة C Academy 4 دروس في المجموع.
التقريب والقيم المطلقة
يتناول هذا الدرس دوالًا تعدّل الأعداد: floor وceil وround وtrunc للتقريب، بالإضافة إلى fabs للقيمة المطلقة.
توجد جميع هذه الدوال في math.h وتعمل مع قيم double.
الدالة floor
تقرّب floor(x) العدد إلى الأسفل نحو أقرب عدد صحيح، أي باتجاه ما لا نهاية السالبة.
لذلك تكون floor(3.9) هي 3.0، وتكون floor(-1.2) هي -2.0.
#include <stdio.h>
#include <math.h>
int main(void) {
printf("%.1f\n", floor(3.9));
printf("%.1f\n", floor(-1.2));
return 0;
}الدالة ceil
تقرّب ceil(x) العدد إلى الأعلى نحو أقرب عدد صحيح، أي باتجاه ما لا نهاية الموجبة.
لذلك تكون ceil(3.1) هي 4.0، وتكون ceil(-1.8) هي -1.0.
#include <stdio.h>
#include <math.h>
int main(void) {
printf("%.1f\n", ceil(3.1));
printf("%.1f\n", ceil(-1.8));
return 0;
}الدالة round
تقرّب round(x) العدد إلى أقرب عدد صحيح. وتُقرَّب القيم الواقعة في المنتصف بعيدًا عن الصفر.
لذلك تكون round(2.5) هي 3.0، وتكون round(2.4) هي 2.0.
#include <stdio.h>
#include <math.h>
int main(void) {
printf("%.1f\n", round(2.5));
printf("%.1f\n", round(2.4));
return 0;
}الدالة trunc
تزيل trunc(x) الجزء العشري ببساطة، وتتحرك دائمًا باتجاه الصفر.
لذلك تكون trunc(3.9) هي 3.0، وتكون trunc(-3.9) هي -3.0.
#include <stdio.h>
#include <math.h>
int main(void) {
printf("%.1f\n", trunc(3.9));
printf("%.1f\n", trunc(-3.9));
return 0;
}مقارنة الدوال الأربع
تختلف النتائج عند استخدام القيمة 2.7:
floor(2.7)= 2.0 (إلى الأسفل)ceil(2.7)= 3.0 (إلى الأعلى)round(2.7)= 3.0 (إلى الأقرب)trunc(2.7)= 2.0 (باتجاه الصفر)
اختاروا الدالة التي تتوافق مع الغرض المطلوب.
القيمة المطلقة باستخدام fabs
تعيد fabs(x) القيمة المطلقة لعدد عشري، أي المسافة من الصفر، وتكون غير سالبة دائمًا.
لذلك تكون fabs(-7.5) هي 7.5.
#include <stdio.h>
#include <math.h>
int main(void) {
printf("%.1f\n", fabs(-7.5));
printf("%.1f\n", fabs(7.5));
return 0;
}fabs مقارنةً بـ abs
انتبهوا: تعمل abs (من stdlib.h) على الأعداد الصحيحة، بينما تعمل fabs (من math.h) على قيم double.
يؤدي استخدام abs مع قيمة double إلى حذف الكسور العشرية أولًا. لذلك استخدموا fabs دائمًا مع الأعداد العشرية.
التحويل إلى int
تعيد هذه الدوال قيمة من النوع double. ولتخزين عدد صحيح في int، حوّلوا نوع النتيجة صراحةً.
من الأفضل استخدام round أولًا ثم إجراء التحويل، حتى لا تتحول قيم مثل 2.999 إلى 2 بالخطأ.
#include <stdio.h>
#include <math.h>
int main(void) {
double x = 4.6;
int whole = (int)round(x);
printf("whole = %d\n", whole);
return 0;
}مثال على المسافة
تُفيد fabs في قياس الفرق بين قيمتين، بغض النظر عن أيهما أكبر.
نحسب هنا الفرق بين درجتي حرارتين.
#include <stdio.h>
#include <math.h>
int main(void) {
double a = 5.0, b = 12.5;
printf("gap = %.1f\n", fabs(a - b));
return 0;
}التقريب إلى منازل عشرية
للتقريب إلى منزلتين عشريتين، اضربوا في 100، ثم قرّبوا، ثم اقسموا على 100.
تستخدم هذه الحيلة round للحفاظ على ترتيب القيم المالية.
#include <stdio.h>
#include <math.h>
int main(void) {
double price = 3.14159;
double r = round(price * 100.0) / 100.0;
printf("%.2f\n", r);
return 0;
}تحقق سريع
تذكروا كيفية عمل كل دالة من دوال التقريب.
مراجعة
تعلمتم أن floor تقرّب إلى الأسفل، وceil إلى الأعلى، وround إلى الأقرب، وtrunc باتجاه الصفر، بالإضافة إلى fabs لحساب القيمة المطلقة لقيم double.
تذكروا استخدام fabs بدلًا من abs مع الأعداد العشرية، وإجراء التحويل إلى int عند الحاجة إلى عدد صحيح. أحسنتم بإكمال دورة math.h!
الأسئلة الشائعة
هل درس «التقريب والقيم المطلقة» مجاني؟
نعم — نص درس «التقريب والقيم المطلقة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة C Academy، انتقل إلى CoddyKit PRO. تتضمن دورة C Academy 4 دروس في المجموع.
ماذا ستتعلم في «التقريب والقيم المطلقة»؟
استخدم floor وceil وround وfabs تتمرن على C Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ C Academy؟
لا تُشترط خبرة سابقة. C Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «التقريب والقيم المطلقة»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس C Academy هذا؟
نعم. كل درس في C Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- تضمين math.h
- القوى والجذور
- حساب المثلثات واللوغاريتمات
- التقريب والقيم المطلقة