1- تتكون دوال المستخدم من مجموعة من الجمل المكتوبة بلغة البيسك المرئي وتؤدي وظيفة محددة. شرح السؤال هذا سؤال تعريفي مباشر. ما هي البنية الأساسية للدوال التي يقوم المبرمج بكتابتها بنفسه؟ صح خطأ الإجابة الصحيحة هي (صح)هذا هو التعريف الدقيق لدوال المستخدم (User-defined Functions). هي عبارة عن كتل برمجية يكتبها المبرمج بنفسه لتنفيذ مهمة معينة، ويمكن استدعاؤها من أماكن مختلفة في البرنامج. هذا يساعد على تنظيم الكود وتجنب التكرار.للمقارنة:ما الفرق بين "دوال المستخدم" و "الدوال الجاهزة" (Built-in Functions) في لغة البيسك المرئي؟(الفصل السادس: البرامج الفرعية والدوال، 6-3: الدوال الوظيفية (دوال المستخدم)، صفحة 95)
2- جميع معاملات الدالة هي مدخلات فقط. شرح السؤال الدالة (Function) مصممة لإرجاع قيمة واحدة عبر اسمها. ماذا يعني هذا بالنسبة لوظيفة معاملاتها؟ هل هي لاستقبال البيانات أم لإخراجها؟ صح خطأ الإجابة الصحيحة هي (صح)هذا هو المفهوم الأساسي للدالة الوظيفيةFunction. هي تأخذ مجموعة من القيم كمدخلات عبر معاملاتها، وتقوم بمعالجتها، ثم تعيد نتيجة واحدة فقط عبر اسم الدالة نفسها. على عكس الإجراء الفرعيSub، لا تستخدم معاملاتها لإرجاع قيم.مفهوم:في البرمجة، يفضل أن تكون الدوال "نقية" (Pure Functions)، أي أنها لا تغير أي شيء خارجها وتعتمد فقط على مدخلاتها لإنتاج مخرجاتها. كيف يتوافق هذا المبدأ مع كون معاملات الدالة مدخلات فقط؟(الفصل السادس: البرامج الفرعية والدوال، 6-3: الدوال الوظيفية (دوال المستخدم)، صفحة 96)
3- تقوم الدالة الوظيفيةFunctionبإعادة قيمة واحدة من خلال اسم الدالة. شرح السؤال ما هو الفرق الجوهري في "المخرجات" بين الدالة (Function) والإجراء الفرعي (Sub)؟ صح خطأ الإجابة الصحيحة هي (صح)هذا هو الفرق الأساسي الذي يميز الدالة الوظيفيةFunction. فهي مصممة لتقوم بعملية حسابية أو منطقية وتعيد نتيجة واحدة فقط، ويتم ذلك عن طريق إسناد القيمة إلى اسم الدالة نفسها.للتفكير:كيف يمكن لإجراء فرعيSubأن يعيد أكثر من قيمة؟(الفصل السادس: البرامج الفرعية والدوال، 6-3: الدوال الوظيفية (دوال المستخدم)، صفحة 96)
4- يمكن استدعاء الدالة بجملة الاستدعاء (Call). شرح السؤال مفتاح الحل: الدالة (Function) تعيد قيمة ويجب وضعها في متغير أو جملة طباعة. الإجراء الفرعي (Sub) ينفذ أمراً ولا يعيد قيمة باسمه. أي منهما يُستدعى بكلمة Call؟ صح خطأ الإجابة الصحيحة: (خطأ)جملة Call تُستخدم حصراً لاستدعاء الإجراءات الفرعية (Subroutines). أما الدالة (Function) فلا تُستدعى باستخدام Call، بل يتم استدعاؤها بوضع اسمها في الطرف الأيمن من معادلة مساواة لتخزين قيمتها المعادة في متغير (مثل: x = MyFunction())، أو تضمينها في جملة طباعة أو شرط.مفهوم: لماذا هذا الاختلاف؟ لأن استدعاء الدالة بـ Call سيهدر القيمة التي أرجعتها الدالة في الفراغ!(الفصل السادس: البرامج الفرعية والدوال، 6-3: الدوال الوظيفية، صفحة 104)