0Pricing
Java Academy · درس

أساسيات الفئة Math

استخدم Math.abs وMath.pow وMath.sqrt وMath.random وغيرها من أساليب Math الشائعة

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

الصنف Math

يوفّر الصنف java.lang.Math أساليب أدوات ثابتة للعمليات الرياضية الشائعة. وهو متاح دائمًا، ولا حاجة إلى إجراء import.

القيمة المطلقة والإشارة

تُرجع Math.abs() القيمة المطلقة، أي القيمة غير السالبة. وتُرجع Math.signum() القيمة ‎-1.0 أو 0.0 أو 1.0 وفقًا للإشارة.

System.out.println(Math.abs(-42));      // 42
System.out.println(Math.abs(3.14));     // 3.14
System.out.println(Math.signum(-5.0));  // -1.0
System.out.println(Math.signum(0.0));   //  0.0
System.out.println(Math.signum(7.0));   //  1.0

القوة والجذر التربيعي والجذر التكعيبي

استخدم Math.pow(base, exp) لحساب القوى، وMath.sqrt() لحساب الجذور التربيعية، وMath.cbrt() لحساب الجذور التكعيبية.

System.out.println(Math.pow(2, 10));  // 1024.0
System.out.println(Math.sqrt(144));   // 12.0
System.out.println(Math.cbrt(27));    // 3.0

// Hypotenuse of a right triangle (a=3, b=4)
double hyp = Math.sqrt(Math.pow(3, 2) + Math.pow(4, 2));
System.out.println(hyp); // 5.0

الحد الأدنى والحد الأقصى والتقييد

تُرجع Math.min() وMath.max() القيمة الأصغر أو الأكبر من قيمتين. ويمكن دمجهما لتنفيذ تقييد يحافظ على قيمة ضمن مجال محدد.

int a = 10, b = 20;
System.out.println(Math.min(a, b)); // 10
System.out.println(Math.max(a, b)); // 20

// Clamp value between 0 and 100
int clamp(int value, int min, int max) {
    return Math.max(min, Math.min(value, max));
}
System.out.println(clamp(150, 0, 100)); // 100
System.out.println(clamp(-5,  0, 100)); // 0
System.out.println(clamp(75,  0, 100)); // 75

التقريب إلى الأسفل والأعلى والتقريب

تقرّب Math.floor() إلى الأسفل، وتقرّب Math.ceil() إلى الأعلى، وتقرّب Math.round() إلى أقرب عدد صحيح، مع تقريب النصف إلى الأعلى.

double price = 9.3;
System.out.println(Math.floor(price));  // 9.0
System.out.println(Math.ceil(price));   // 10.0
System.out.println(Math.round(price));  // 9

double shipping = 3.5;
System.out.println(Math.round(shipping)); // 4 (half-up)

// Round to 2 decimal places
double tax = 7.5678;
double rounded = Math.round(tax * 100.0) / 100.0;
System.out.println(rounded); // 7.57

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

تحسب Math.log() اللوغاريتم الطبيعي، أي اللوغاريتم بالأساس e، وتحسب Math.log10() اللوغاريتم بالأساس 10، بينما تحسب Math.exp() القيمة e^x.

System.out.println(Math.log(Math.E));   // 1.0
System.out.println(Math.log10(1000));   // 3.0
System.out.println(Math.exp(1));        // 2.718281828...

// Change of base: log2(8)
double log2 = Math.log(8) / Math.log(2);
System.out.println(log2); // 3.0

// Compound interest: P * e^(r*t)
double principal = 1000, rate = 0.05, years = 10;
double amount = principal * Math.exp(rate * years);
System.out.printf("Amount: %.2f%n", amount); // 1648.72

الأساليب المثلثية

توفر Math دوال مثلثية تستقبل الزوايا بوحدة الراديان. استخدم Math.toRadians() لتحويل الدرجات إلى راديان.

double angle = Math.toRadians(45);
System.out.printf("sin(45): %.4f%n", Math.sin(angle)); // 0.7071
System.out.printf("cos(45): %.4f%n", Math.cos(angle)); // 0.7071
System.out.printf("tan(45): %.4f%n", Math.tan(angle)); // 1.0000

// Distance between two GPS coordinates (simplified)
double lat1 = Math.toRadians(40.7128);
double lat2 = Math.toRadians(34.0522);
double deltaLat = lat2 - lat1;
System.out.printf("Delta lat (rad): %.4f%n", deltaLat);

الأعداد العشوائية

تُرجع Math.random() قيمة double ضمن [0.0, 1.0). اضرب القيمة وأجرِ تحويلًا نوعيًا للحصول على أعداد صحيحة ضمن مجال محدد. ولعشوائية أفضل، يُفضّل استخدام java.util.Random.

// Random double [0.0, 1.0)
double rand = Math.random();

// Random int [min, max] inclusive
int min = 1, max = 6;
int dice = (int) (Math.random() * (max - min + 1)) + min;
System.out.println("Dice roll: " + dice); // 1–6

// Prefer java.util.Random for more features
import java.util.Random;
Random rng = new Random();
int secureRoll = rng.nextInt(6) + 1; // cleaner API
System.out.println("Secure roll: " + secureRoll);

الثوابت: PI وE

يمثل Math.PI وMath.E ثابتين من نوع double للقيمة π ولعدد أويلر e. استخدمهما في الحسابات الهندسية والمالية.

System.out.println(Math.PI); // 3.141592653589793
System.out.println(Math.E);  // 2.718281828459045

// Circle area and circumference
double radius = 7.0;
double area = Math.PI * Math.pow(radius, 2);
double circumference = 2 * Math.PI * radius;

System.out.printf("Area: %.2f%n", area);           // 153.94
System.out.printf("Circumference: %.2f%n", circumference); // 43.98

Math.floorDiv وMath.floorMod

يتعامل Math.floorDiv() وMath.floorMod() مع الأعداد السالبة باتساق، بخلاف عاملي / و% اللذين قد يعطيان نتائج غير متوقعة مع الأعداد السالبة.

// Regular % can be negative with negative dividend
System.out.println(-7 % 3);           // -1 (may surprise you)
System.out.println(Math.floorMod(-7, 3)); // 2  (always non-negative)

// Floor division rounds toward negative infinity
System.out.println(-7 / 3);              // -2 (truncates toward zero)
System.out.println(Math.floorDiv(-7, 3)); // -3 (floors down)

// Use floorMod for cyclic calculations like days of week
int day = Math.floorMod(-1, 7); // Sunday (6), not -1
System.out.println(day); // 6

تطبيقي: المسافة والفيزياء

تطبيق أساليب Math على مسألة فيزيائية: حساب مدى المقذوف باستخدام علم المثلثات والجذور التربيعية.

// Projectile range: R = v^2 * sin(2*angle) / g
double velocity = 50.0;   // m/s
double angleDeg = 45.0;   // degrees
double g = 9.81;          // m/s^2

double angleRad = Math.toRadians(angleDeg);
double range = Math.pow(velocity, 2) * Math.sin(2 * angleRad) / g;

System.out.printf("Projectile range: %.1f m%n", range); // 254.8 m

تحقق سريع

ما ناتج Math.floorMod(-7, 3)؟

مراجعة: الصنف Math

أهم النقاط:

  • ‏Math.abs وMath.min وMath.max للمقارنات الأساسية
  • ‏Math.pow وMath.sqrt وMath.cbrt للأسس والجذور
  • ‏Math.floor وMath.ceil وMath.round للتقريب
  • ‏Math.log وMath.log10 وMath.exp للوغاريتمات والأسس
  • ‏Math.sin وMath.cos وMath.tan تستخدم الراديان؛ حوّل إليها باستخدام Math.toRadians
  • يتعامل Math.floorMod بوضوح مع الأعداد السالبة في الحسابات الدورية
  • ‏Math.PI وMath.E ثابتان مضمّنان

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

هل درس «أساسيات الفئة Math» مجاني؟

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

ماذا ستتعلم في «أساسيات الفئة Math»؟

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

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

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

كم من الوقت يستغرق درس «أساسيات الفئة Math»؟

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

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

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

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

  1. أساسيات الفئة Math
  2. حساب الأعداد الصحيحة وتجاوز السعة
  3. استخدام BigDecimal في الحسابات المالية
  4. NumberFormat وprintf
← العودة إلى Java Academy