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

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



PaPEr Cut
22-07-2002, 01:04 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){

alert (what)

}




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


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


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