الوحدة 2: البيانات والعمليات · الموضوع 5 من 13
الموضوع 5

الدوال الجاهزة الرقمية والنصية

أدوات جاهزة في جافا نستدعيها لإنجاز مهمّة بسرعة دون أن نكتبها بأنفسنا.

Math.max.length() Math.pow.charAt()
بعد هذا الدرس ستستطيع أن:
  • استدعاء دوال Math: max و min و round و pow و random و sqrt و abs.
  • تحويل نصّ رقمي إلى عدد بـ Integer.parseInt.
  • استخدام دوال النصوص: length و charAt و substring وغيرها.
  • تذكّر أن ترقيم الأحرف يبدأ من صفر.
  • مقارنة النصوص بـ equals وليس ==

١الدوال الرقمية: كلاس Math

تُستدعى باسم الكلاس مباشرة: Math.اسم_الدالة(...)

الدالةالوظيفةمثال ← الناتج
Math.max(a, b)الأكبر بين رقمينMath.max(5, 9) → 9
Math.min(a, b)الأصغر بين رقمينMath.min(5, 9) → 5
Math.round(x)التقريب لأقرب عدد صحيحMath.round(3.6) → 4
Math.pow(a, b)الأُسّ: a أُس bMath.pow(2, 3) → 8.0
Math.random()عدد عشوائي من 0 إلى أقل من 1Math.random() → 0.42…
Math.sqrt(x)الجذر التربيعيMath.sqrt(25) → 5.0
Math.abs(x)القيمة المطلقة (بلا إشارة سالبة)Math.abs(-7) → 7
مختبر Math
,,;

تحويل نصّ إلى رقم: Integer.parseInt

إذا كان الرقم مخزّنًا نصًّا مثل "25" فلا يمكن جمعه حسابيًّا؛ نحوّله أولًا بـ Integer.parseInt (ولعشري: Double.parseDouble).

Main.java
int n = Integer.parseInt("25");   // من نصّ إلى عدد صحيحSystem.out.println(n + 5);            // 30 (جمع حسابي)System.out.println(Math.sqrt(n));     // 5.0System.out.println(Math.abs(-7));     // 7
Output – JavaApplication (run)×
run:
30
5.0
7
BUILD SUCCESSFUL (total time: 0 seconds)

٢الدوال النصية: String

تُستدعى على المتغيّر النصّي نفسه: s.اسم_الدالة(...)

مستكشف النصوص

اكتب أي نصّ، وحرّك المؤشّرات. المربّع المحاط هو charAt، والمظلَّل هو substring.

String";
charAtsubstring منإلى (لا يشمله)

٣مثال شامل

Functions.java
public class Functions{    public static void main(String[] args)    {        // دوال رقمية        System.out.println(Math.max(5, 9));         // 9        System.out.println(Math.random() * 100);    // عشوائي        System.out.println(Math.pow(2, 3));         // 8.0         // دوال نصية        String s = "Hello Java";        System.out.println(s.length());             // 10        System.out.println(s.toUpperCase());        // HELLO JAVA        System.out.println(s.substring(0, 5));      // Hello        System.out.println(s.contains("Java"));     // true    }}
Output – JavaApplication (run)×
run:
9
42.17093318705812
8.0
10
HELLO JAVA
Hello
true
BUILD SUCCESSFUL (total time: 0 seconds)

السطر الثاني في الناتج يتغيّر في كل تشغيل لأنه عشوائي (عدد من 0 إلى أقل من 100).

توقّع وتحقّق

أجب قبل أن تنظر إلى الشرح. التصحيح فوري، وإجاباتك تُحفظ.

ما ناتج "Java".charAt(1)؟

الترقيم يبدأ من 0: J=0, a=1.

ما ناتج "Programming".substring(0, 3)؟

من 0 حتى 3 دون أن يشمل 3: المواضع 0 و1 و2.

ما ناتج Math.round(2.4)؟

لمقارنة محتوى نصّين نستخدم:

الخلاصة

تحدٍّ برمجي: محلّل النصوص

متوسط

حلّل النص "Java Programming" باستخدام الدوال الجاهزة، واحسب جذرًا تربيعيًّا.

المطلوب:
  • اطبع طول النص، ثم النص بأحرف كبيرة.
  • اطبع أوّل حرف وآخر حرف (استخدم length() لمعرفة موضع الآخر).
  • اطبع الجذر التربيعي لـ 144.

ابدأ من هذا الكود، واضغط ▶ شغّل هنا لتكتب حلّك وتجرّبه مباشرة:

Analyzer.java
public class Analyzer{    public static void main(String[] args)    {        String s = "Java Programming";         // اكتب أوامر التحليل هنا     }}
Output – المطلوب×
الطول: 16
JAVA PROGRAMMING
أول حرف: J
آخر حرف: g
الجذر: 12.0
💡 تلميح 1
آخر حرف موضعه s.length() - 1 لأن الترقيم يبدأ من 0.
💡 تلميح 2
Math.sqrt تعيد عددًا عشريًّا (double).

حاول بنفسك أولًا؛ للمسألة أكثر من حلّ صحيح.

Analyzer.java
public class Analyzer{    public static void main(String[] args)    {        String s = "Java Programming";         System.out.println("الطول: " + s.length());        System.out.println(s.toUpperCase());        System.out.println("أول حرف: " + s.charAt(0));        System.out.println("آخر حرف: " + s.charAt(s.length() - 1));        System.out.println("الجذر: " + Math.sqrt(144));    }}

أسئلة التقييم

ورقة العمل: الدوال الجاهزة الرقمية والنصية. إجاباتك تُحفظ تلقائيًّا على هذا الجهاز؛ أجب ثم اضغط «صحّح ورقتي».

1السؤال الأول: اختر الإجابة الصحيحة

1) ناتج Math.max(5, 9) هو:

2) ناتج Math.sqrt(25) هو:

3) طول النص "Java" باستخدام length() هو:

4) لمقارنة نصّين نستخدم:

2السؤال الثاني: صح أم خطأ

1) دوال Math تُستدعى باسم الفئة Math.
الصواب: صح
2) ترقيم أحرف النص يبدأ من 1.
الصواب: خطأ
3) toUpperCase تحوّل النص إلى أحرف كبيرة.
الصواب: صح
4) Integer.parseInt تحوّل نصًّا إلى عدد صحيح.
الصواب: صح
5) == أفضل من equals لمقارنة النصوص.
الصواب: خطأ

3السؤال الثالث: أكمل الفراغات

1) الدالة تعطي القيمة المطلقة للعدد.

💡 من كلاس Math، واسمها اختصار absolute.

الإجابة: Math.abs

2) الدالة تعطي طول النص.

💡 تُكتب بعد اسم المتغيّر النصّي.

الإجابة: length()

3) الدالة substring تُستخدم لـ من النص.

💡 substring تأخذ … من النصّ.

الإجابة: اقتطاع جزء

4) الدالة تتحقّق هل النص يحتوي كلمة.

💡 معناها بالإنجليزية «يحتوي».

الإجابة: contains

5) ترقيم أحرف النص يبدأ من .

💡 أوّل حرف موضعه …

الإجابة: 0

4السؤال الرابع: التوصيل

طابِق كل عنصر في العمود (أ) بما يناسبه في العمود (ب):

  1. 1) Math.pow
  2. 2) Math.round
  3. 3) toLowerCase
  4. 4) indexOf
  5. 5) replace
  1. أ. موضع نصّ داخل النص.
  2. ب. الأُسّ (رفع للقوة).
  3. ج. التقريب لأقرب صحيح.
  4. د. تحويل لأحرف صغيرة.
  5. هـ. استبدال جزء بآخر.
المفتاح: (1) ب (2) ج (3) د (4) أ (5) هـ

5السؤال الخامس: أسئلة عملية

1) تتبّع الناتج:

snippet
System.out.println(Math.max(3, 8));
الناتج الصحيح:
Output×
8

2) تتبّع الناتج:

snippet
String s = "Hi";System.out.println(s.toUpperCase());
الناتج الصحيح:
Output×
HI

3) اكتب أمرًا يطبع طول النص المخزّن في المتغيّر name:

إجابة نموذجية:
snippet
System.out.println(name.length());
أجب عن الأسئلة ثم اضغط «صحّح ورقتي».