مفهوم الدوال
دالة تعني Function أو Method في اللغة الإنجليزية. و تسمى ميثود أيضاً في العربية.
ما هي فكرة الدوال؟
فكرة الدوال أنك إذا أردت أن تنفذ نفس الكود عدة مرات في البرنامج. تكتب هذا الكود مرة واحدة فقط و تنادي له فقط كلما أردت تنفيذه.
ماذا تعني كلمة دالة؟
الدالة في البرمجة عبارة عن كود جاهز يتنفذ فقط عندما تقوم بإستدعائه.
عندما تكتب إسم الدالة فهذا يعني أتك تطلب من البرنامج تنفيذ هذه الدالة.
ما هي فائدة الدوال في البرامج؟
للدوال فائدة مهمة جداً, لأنك في البرامج الفعلية مثلاً قد تستخدم نفس الكود ٢٠ مرة, فتخيل مثلاً لو أنك كلما ضغط على زر في برنامجك سيقوم البرنامج بتنفيذ نفس الكود الذي يتألف من ١٠ أسطر و برنامجك يحتوي على ٢٠ زر, فبدل أن تكتب نفس الـ ١٠ أسطر لكل زر من الـ ٢٠ زر, أكتبهم مرة واحدة بداخل دالة و إستدعي هذه الدالة مرة واحدة فقط لكل زر, هكذا تكون قد جعلت برنامجك أسرع و حجمه أصغر بكثير و هذا مهم جداً جداً في البرمجة.
تعرف على دالة الطباعة print()
print( ); ← تعتبر دالة جاهزة في الخوارزميات, و هي تعرض لنا أي شيء نكتبه بداخلها على الشاشة.
في لغة جافا نستخدم الدالة System.out.print( ); لطباعة أي شيء على الشاشة.
إنتبه
عندما تكتب أمر الطباعة بلغة جافا تأكد من أن تكتب System و ليس كلمة system بمعنى أن الحرف S في أول الكلمة يجب كتابته كحرف كبير و ليس صغير.
من فضلك, ركز جيداً على دالة الطباعة لأننا سنستخدمها في جميع البرامج التي سنكتبها لاحقاً لأننا سنقوم دائماً بطباعة النتيجة على الشاشة لمعرفة ما إذا كان الكود الذي قمنا بكتابته صحيح أم أن علينا تعديله.
النزول على سطر جديد باستخدام \n
في كل لغات البرمجة الـ \n لها نفس التأثير و هو النزول على سطر جديد.
و هي توضع بداخل دالة الطباعة حتى تجعل أي شيء نطبعه على الشاشة بعدها يظهر على سطر جديد. لا تقلق ستفهم المقصود من الأمثلة.
تمارين حول دالة الطباعة print()
دالة الطباعة Print في الخوارزميات - التمرين الأول
المطلوب
أكتب برنامج يطبع لك إسمك عندما تقوم بتشغيله.
شرح طريقة عمل الخوارزمية بدقة
كود الجافا
public class DisplayMyName {
public static void main (String[] args) {
System.out.print("Mhamad Harmush");
}
}
شرح الكود
قمنا بتسمية البرنامج
DisplayMyName.البرنامج يحتوي على أمر واحد و هو طباعة الإسم
Mhamad Harmush.لاحظ أن الإسم موضوع بين
" ".
بما أنك تستخدم برنامج الـ Netbeans لتجربة الكود, فأنت تلاحظ أنه يعرض لك الوقت الذي إستغرقه في تحليل الكود باللون الأخضر مباشرةً بعد أن يتوقف البرنامج كما في الصورة التالية.
كما ترى, هذا مزعج بعض الشيء لأنه يظهر ملاصقاً للنتيجة.
في المثال التالي ستتعلم كيف تبعد الوقت الذي إستغرقه الكمبيوتر في تنفيذ البرنامج عن نتيجة الكود بواسطة الـ \n.
دالة الطباعة Print في الخوارزميات - التمرين الثاني
المطلوب
أكتب برنامج يطبع لك إسمك و عمرك و مهنتك, و إجعل كل معلومة تظهر على سطر.
شرح طريقة عمل الخوارزمية بدقة
كود الجافا
public class Information {
public static void main (String[] args) {
System.out.print("Name: Mhamad Harmush \n");
System.out.print("Age: 20 \n");
System.out.print("Job: Programmer \n");
}
}
شرح الكود
قمت بتسمية البرنامج
Information.البرنامج يحتوي على ٣ أوامر للطباعة.
بعد كل أمر عليك وضع فاصلة منقوطة أي ضع هذا
;.إذاً عرفنا أن عندنا ٣ أوامر لأننا وضعنا ٣ فواصل منقوطة.
الشيىء الذي يجب أن تنتبه عليه هنا هو الـ
\nلأنك لو لم تضعها لظهر كل شيء على سطر واحد كما في هذه الصورة.إذاً الـ
\nتجعل أي شيء سيأتي بعدها ينزل على سطر جديد.كما أن
\nلا تظهر على الشاشة لأن الهدف منها النزول على سطر جديد.إذاً عندما نكتب
\nكأننا نقرنا على الزر Enter.
ركز جيداً, الآن أنت فهمت ماذا تفعل الـ \n.
ولكنك لم تستغلها كما يجب لأنك كتبت الكود في ثلاثة أوامر بينما كان بإمكانك أن تكتبه في أمر واحد فقط.
دالة الطباعة Print في الخوارزميات - التمرين الثالث
المطلوب
أكتب برنامج يطبع لك إسمك و عمرك و مهنتك, و إجعل كل معلومة تظهر على سطر بإستخدام الدالة print() مرة واحدة فقط.
شرح طريقة عمل الخوارزمية بدقة
كود الجافا
public class Information {
public static void main (String[] args) {
System.out.print("Name: Mhamad Harmush \nAge: 20 \nJob: programmer \n");
}
}
شرح الكود
هنا الكود يعتبر مكتوب بطريقة ممتازة لأنك قمت بتنفيذ كل المطلوب بأمر واحد فقط.
هذه الطريقة هي الأفضل لأنك نفذت المطلوب بأمر واحد و بسطر واحد.
لا تنسى الـ
" "أبداً لأنك تريد عرض نص و النص دائماً يوضع بين" "و إن لم تضعهم سيظهر لك خطأ عند التشغيل.الـ
\nلا تعمل إلا إذا وضعت بين" "و يمكنك تجربة ذلك بنفسك.
ملاحظة
هناك عدة طرق و أساليب تستخدم في الطباعة ستتعرف عليها في الدروس اللاحقة عندما تحتاجها.
كما أن هنالك عدة دوال أخرى تستخدم للطباعة في أي لغة برمجة و لكنك لا تحتاج أن تتعلم أي شيء آخر حالياً لأنك يجب أن تركز على الخوارزميات و ليس على دوال لغة جافا بحد ذاتها.
تعرف أكثر على طرق إستخدام دالة الطباعة
في الدرس السابق تعلمنا أنه باستخدام الدالة print() يمكننا طباعة أي شيء نضعه فيها بشرط أن نضعه بين " ".
في هذا الدرس ستعرف متى يجب أن تضع الشيء الذي تريد عرضه على الشاشة بين " " أو ( ) و متى لا.
نقاط مهمة حول الأشياء التي تضعها في دالة الطباعة:
أي شيء تضعه بداخل
" "يعتبر نص عادي, بالتالي يتم طباعته تماماً كما هو.أي شيء تضعه بدون
" "لا يعتبر نصاً.إذا أردت أن تطبع أكثر من شيء في دالة الطباعة مثل نص و بجانبه عملية جمع. في هذه الحالة قم بوضع أي عملية كانت سواء جمع, طرح, قسمة, ضرب بين قوسين
( )حتى يفهم الكمبيوتر أنك تريد طباعة ناتج هذه العملية.
لا تقلق ستفهم كل هذه التفاصيل من التمارين.
لا تنسى أيضاً أن الـ \n تعمل فقط عندما تضعها بين " " كما قلنا في الدرس السابق.
تأثير رموز التنصيص " " على الأرقام و العمليات الحسابية
كما قلنا في البداية, أي شيء تضعه بداخل " " يعتبر نص عادي, بالتالي يتم طباعته تماماً كما هو.
التمرين التالي يوضح تأثير الرموز " " على الأرقام و العمليات الحسابية.
الدمج أثناء الطباعة في الخوارزميات - التمرين الأول
المطلوب
أكتب برنامج يطبع النص 7 + 8 ثم يطبع ناتج جمعهم, و الذي يساوي 15.
شرح طريقة عمل الخوارزمية بدقة
كود الجافا
public class Sum {
public static void main (String[] args) {
System.out.print("7 + 8 \n");
System.out.print(7 + 8);
System.out.print("\n");
}
}
شرح الكود
قمنا بتسمية البرنامج
Sum.البرنامج يحتوي على ثلالث أوامر للطباعة.
لاحظ أن عملية الجمع الموضعة بين
" "ظهرت تماماً كما هي بدل أن يتم عرض ناتجها و السبب أن الكمبيوتر إعتبرها نصاً عادياً و ليس عملية جمع.في الدالة الثانية تم ظهور ناتج عملية الجمع لأن الكمبيوتر إعتبر الأرقام أرقاماً عادية و العامل
+هو عامل جمع كما في مادة الرياضيات.
لذلك تم حساب ناتج عملية الجمع, و بعدها تم عرض الناتج النهائي فقط.دالة الطباعة الأخيرة إستخدمناها فقط لنجعل المدة التي إستغرقها البرنامج في تنفيذ الكود تظهر على سطر جديد أي في آخر البرنامج.
الآن, أنت فهمت كيف يتأثر العامل + بالرموز " ".
في التمرين التالي سوف ستتعلم كيف تستخدم أمر الطباعة مرة واحدة فقط و الحصول على نفس النتيجة.
إستخدام العامل + كعامل دمج و إستخدام القوسين ( ) للحصول على ناتج العمليات الحسابية
يمكنك وضع عدة أشياء بداخل دالة الطباعة باستخدام العامل + بين كل شيئين تريد وضعهما في دالة الطباعة.
هذه العملية تسمى Concatenation و هي تعني أنك ستعرض سلسلة من الأشياء.
نقاط مهمة حول وضع العامل + في دالة الطباعة:
إذا وضعته بين رقمين, يعتبر عامل جمع. و بالتالي يعرض ناتج الرقمين.
إذا قمت بوضعه بين
" "يعتبر حرفاً عادياً, و بالتالي يُعرض كما هو.إذا وضعته بين شيئين منفصلين سواء نصين أو نص و رقم, فإنه يعتبر عامل دمج.
نصيحة
إنتبه جيداً لأسلوب الـ Concatenation الذي ستتعلمه من التمرين التالي, و قم بإعادة التمرين عدة مرات حتى تفهمه بشكل ممتاز لأنه رغم بساطته إلا أنك ستستخدمه كثيراً عند بناء تطبيقاتك الخاصة في المستقبل.
الدمج أثناء الطباعة في الخوارزميات - التمرين الثاني
المطلوب
أكتب برنامج يطبع النص 7 + 8 ثم يطبع ناتج جمعهم, و الذي يساوي 15 باستخدام أمر الطباعة مرة احدة فقط.
شرح طريقة عمل الخوارزمية بدقة
كود الجافا
public class Sum {
public static void main (String[] args) {
System.out.print("7 + 8 \n" + (7 + 8) + "\n");
}
}
شرح الكود
قمنا بتسمية البرنامج
Sum.هنا دمجنا أوامر الطباعة الثلاثة التي وضعناها في التمرين السابق في أمر طباعة واحد فقط.
شرح كل جزء في دالة الطباعة بشكل مفصل:
إستدعينا دالة الطباعة مرة واحدة و وضعنا كل شيء سيتم طباعته بداخلها.
النص
7 + 8سيظهر كما هو لأنه موضوع بين" ", و أي شيء يأتي بعده سوف ينزل على سطر جديد بسبب الـ\n.مكان عملية الجمع
(7 + 8)سيتم وضع الناتج لأن العملية موضوعة بين قوسين, و لو لم نقم بوضع القوسين لظن الكمبيوتر أنك تقصد عرض الرقم 7 و عرض الرقم 8 بعده.الـ
\nالأخيرة إستخدمناها فقط لنجعل المدة التي إستغرقها البرنامج في تنفيذ الكود تظهر على سطر جديد أي في آخر البرنامج.الذي يجب أن تركز عليه هنا هو الـ
+, هنا إستخدمنا الـ+لإضافة أي شيء بداخل الدالة و ليس بقصد أن نقوم بعملية جمع, إذاً هنا كأننا قلنا: إعرض النص الأول إضافةً إلى مجموع العددين 7 و 8 و أضفنا له أننا نريده أن ينزل سطراً واحدً بعد عرض كل شيئ.
خلاصة
لطباعة أكثر من شيء في دالة print() واحدة, يجب وضع + كعامل دمج بين كل شيئين سيتم عرضها.
لاحظ أيضاً أن عدد الـ + التي نستخدمها للـ Concatenation يكون أنقص من عدد الأشياء التي سنعرضها بواحد و هذه قاعدة عامة.
الدمج أثناء الطباعة في الخوارزميات - التمرين الثالث
المطلوب
أكتب برنامج يطبع النص 7 + 8 ثم يطبع ناتج جمعهم على نفس السطر, و الذي يساوي 15 باستخدام أمر الطباعة مرة احدة فقط.
الفكرة هنا فقط أن تجعل برنامجك مفهوماً بالنسبة لجميع المستخدمين.
لذلك سنعرض العملية الحسابية على سطر واحد كما في مادة الرياضيات و في التطبيقات التي تتميز بتصميمها الجميل.
شرح طريقة عمل الخوارزمية بدقة
كود الجافا
public class Sum {
public static void main (String[] args) {
System.out.print("7 + 8 = " + (7 + 8) + "\n");
}
}
شرح الكود
هنا عرضنا كل شيء على سطر واحد, بعدها وضعنا
\nلجعل المدة التي إستغرقها البرنامج في تنفيذ الكود تظهر على سطر جديد.

