المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : الوظائف , تعريفها وإستخداماتها


أبو عبدالعزيز
09-18-2006, 09:10 PM
تدعم جميع لغات البرمجة إستدعاء الوظائف Function call ، والوظائف هي مجموعة من الجمل يطلق عليها إسم ويشار إليها به ونتفذ كوحدة واحدة ، والبيانات اللازمة لتنفيذ وظيفة ما قد يتم تمريرها إليها كمعاملات على سطر الأمر . وقد تنتج الوظائف قيمة ما ، إذا تنشيط الوظيفة يعتبر عادة جزءاً من تعبير ما . فمثلا الجمله التاليه تستدعي وتنشط الوظيفه addone مع تمرير القيمة 6 إليها :





value=addone(6)




إذا في المثال السابق يفترض أن تعيد الوظيفة قيمة تسند الى المتغير value ولكن ، قد لاتعيد الوظيفة قيمة ، بل تقوم بطباعة شيء على الشاشة أو أي تنفيذ آخر ، حينها يتم إستدعاء الوظيفة بالطريقة التاليه :



showit("hi there")





في المثال السابق تم تمرير القيمة Hi There الى الوظيفة showit ، ولم ينتج عن الوظيفة أية قيمة ، إذا ، كان الإستدعاء بدون إسناد القيمة الى متغير آخر .

تعريف الوظائف وتحديدها

لابد من تعريف الوظائف قبل إستخدامها ، وتوضع تعريفات الوظائف عادة في مقدمة وثائق لغة الترميز النصية ، بالرغم من أن هذا المكان ليس إلزاميا ، ولكن ذلك يضمن التعريف قبل الإستخدام . والصيغة العامة لتعريف الوظائف هي كمايلي :



function FuncitonName(v1,v2,v3....){


الأوامر هنا


}




إسم الوظيفه FunctionName هو الإسم الذي يستخدم للإشارة الى الوظيفة أثناء إستدعائها ، والمعاملات v1,v2.... هي أسماء المتغيرات التي تمرر الى الوظيفة عند إستدعائها ، وهذه المتغيرات تسمى Arguments وأخيرا ، يتم تنفيذ الجمل المحصورة داخل الأقواس {} نتيجة لإستدعاء أي وظيفة .


إذا ، دعنا نعرف الآن الوظيفة addone التي تطرقنا إليها في الأعلى .

function addone(value){

newvalue = value + 1

return newvalue

}



إذا ، تم إستدعاء الوظيفة addone في المثال بالاعلى بتمرير القيمة 6 إليها ، وأعادت الوظيفة القيمة 7 الى المتغير value بواسطة الأمر return


والآن دعنا نعرف الوظيفة الأخرى ، التي لاتعيد أية قيم وإنما تقوم بعمل ما ، في المثال بالأعلى إفترضنا showit



function showit(what){

***** (what)

}




ينبغى ملاحظة العديد من الأشياء هنا ، من بينها أن القيم التي تعرف بداخل الداله لاتحمل قيمتها في خارج الداله . والعكس غير صحيح . بالإضافة الى أن القيم ستسند الى المتغير الجديد في سطر تعريف الداله ، في الحالة السابقة تم إسناد القيمة Hi There الى المتغير what في داخل الدالة فقط ، ولن يتم التعامل مع المتغير بنفس القيمة في الخارج إلا إذا تم إسناد القيمة إليه من الخارج ، وأيضا في حالة تعريف المتغير في وسط الوظيفة كمتغير محلى ، ولو كان المتغير معرف خارج الوظيفة فسيتم التعامل معه من داخل الوظيفة وخارجها . وستتغير قيمته من داخل الوظيفة وخارجها .


بالإضافة لما سبق ، قد يكون للمتغيرات المحلية نفس أسماء المتغيرات العامة . بالإعلان عنها داخل وخارج الوظيفة ( يتم الإعلان عن المتغيرات كما ذكرنا سابقا في درس آخر بإستخدام الأمر var ) ، إذا يمكن الإعلان عنها بالداخل والخارج ، وستكون كل الإشارات الى المتغيره وتغيير قيمها بداخل الوظيفه لايغير قيمتها خارج الوظيفة .


وأخيرا ، يمكن تضمين الوظائف العديد من الأوامر ، ويتم إستدعائها متى إحتجت إليها .

ابوفراس
09-19-2006, 06:41 PM
مشكور اخوي

تسلم يمينك

أبو عبدالعزيز
09-20-2006, 05:45 PM
الله يسلمك اخوي ابو فراس

ومشكور على مروروك

دمع العين
10-04-2006, 10:48 AM
مشكور احلامي الورديه والله يعطيك الف عافيه

أبو عبدالعزيز
10-06-2006, 01:10 AM
الله يعافيك دمع العين

ومشكور على مرورك

superguy2003
01-12-2007, 02:04 AM
مشكور اخوي


تحياتي لك

أبو عبدالعزيز
01-18-2007, 02:40 AM
يا هلا بيك اخي سوبر


واشكرك على المرور

غرررااام
08-22-2007, 11:42 AM
مشكووور يعطيك العافيه

abu saad_111
09-01-2007, 07:25 AM
مشكووور وما قصرت والله يسلمك

تحياتي

أبو عبدالعزيز
09-02-2007, 04:06 PM
الله يعافيكم جميعاً

واشكركم على المرور

تحياتي

نوجي
10-31-2007, 06:29 PM
احلامى الوردية

الف شكر على الطرح الرائع

لك منى ارق المنى

***

ملكة الأحلام
12-13-2007, 12:03 PM
الله يعطيك العافيه أحلامي الورديه على الدروس ,,

احمد احمد
09-26-2008, 09:30 PM
جزيل الشكر

اخي الكريم
احلامي الوردية

عطاء ليس له حدود

بوركت