1- يجب أن يكون هناك توافق في نوع البيانات للمعاملات في جملة الإعلان وجملة الاستدعاء للإجراء الفرعي أو الدالة. شرح السؤال عندما تستدعي دالة تتوقع منك أن تعطيها "رقماً"، هل يمكنك أن تعطيها "نصاً" بدلاً من ذلك؟ فكر في أهمية تطابق أنواع البيانات لضمان عمل البرنامج بشكل صحيح. صح خطأ الإجابة الصحيحة هي (صح)هذه قاعدة أساسية عند التعامل مع الإجراءات والدوال. يجب أن يكون هناك تطابق تام بين المعاملات (Parameters) في جملة الإعلان (تعريف الدالة) والوسائط (Arguments) في جملة الاستدعاء، وذلك من حيث العدد، والترتيب، ونوع البيانات لكل معامل. أي اختلاف سيؤدي إلى خطأ في البرنامج (Type Mismatch Error).تدريب:إذا كان لديك دالة `Function Calc(x As Integer, y As String)`، أي من الاستدعاءات التالية صحيح وأيها خاطئ ولماذا؟`Calc(10, "Hello")``Calc("10", "Hello")``Calc(10)`(الفصل السادس: البرامج الفرعية والدوال، ملاحظات على عملية الاستدعاء، صفحة 100)
2- تقسيم أي مشروع إلى مجموعة من الأجزاء ينتج عنه ضياع للوقت وصعوبة في التعديل. شرح السؤال عندما تواجه مشكلة كبيرة ومعقدة، هل من الأسهل حلها كقطعة واحدة، أم تقسيمها إلى مشاكل أصغر وأبسط وحل كل منها على حدة؟ صح خطأ الإجابة الصحيحة هي (خطأ)الصحيح هو العكس. تقسيم المشروع الكبير إلى أجزاء أصغر ومستقلة (برامج فرعية ودوال) هو من أفضل الممارسات في هندسة البرمجيات. هذا الأسلوب، المعروف بـ "البرمجة التركيبية" (Modular Programming)، يؤدي إلى:توفير الوقت:عن طريق إعادة استخدام الأجزاء المكتوبة مسبقاً.سهولة التعديل والصيانة:يمكن تعديل جزء دون التأثير على بقية أجزاء البرنامج.سهولة الفهم والتطوير:يصبح الكود أكثر تنظيماً ووضوحاً.مفهوم:ابحث عن مبدأ "فرق تسد" (Divide and Conquer) في علوم الحاسوب. كيف ينطبق هذا المبدأ على تصميم البرمجيات؟(الفصل السادس: البرامج الفرعية والدوال، 6-1: المقدمة، صفحة 91)
3- تعد الدالة الجاهزة (Val) من الدوال شرح السؤال الدالة `Val` تأخذ "نصاً" (String) وتحاول تحويله إلى "رقم". هل هي تتعامل مع عمليات حسابية معقدة، أم أنها تتعامل بشكل أساسي مع الحروف والنصوص؟ الوظيفية الرياضية الحرفية التاريخ / الوقت الإجابة الصحيحة هي (الحرفية)على الرغم من أن الدالة `Val` تُرجع قيمة عددية، إلا أنها تصنف ضمن الدوال الحرفية لأن وظيفتها الأساسية هي معالجة سلسلة حرفية (String) واستخلاص الجزء الرقمي منها. هي لا تقوم بعملية رياضية بحتة مثل `Sqr` أو `Sin`، بل تتعامل مع بنية النص.للتوضيح:دالة رياضية: `Sqr(9)` تعطي 3.دالة حرفية: `Val("123 apples")` تعطي 123.سؤال:ماذا ستكون نتيجة تنفيذ الأمر `Print Val("No. 55")` في بيسك مرئي؟ ولماذا؟(الفصل السادس: البرامج الفرعية والدوال، 6-4: الدوال الجاهزة، 6-4-2: الدوال والجمل الحرفية، صفحة 104)
4- القيمة المعادة الوحيدة من الدالة تكون في: شرح السؤال عندما تكتب دالة (Function) في بيسك مرئي، كيف تحدد القيمة التي ستعود بها الدالة إلى البرنامج الرئيسي؟ هل تضعها في أحد المعاملات، أم في مكان آخر مخصص لذلك؟ معاملات الدالة جملة الإعلان عن الدالة اسم الدالة نوع الدالة الإجابة الصحيحة هي (اسم الدالة) من الفروق الجوهرية بين الدالة (Function) والإجراء الفرعي (Sub) هو أن الدالة تعيد قيمة واحدة، ويتم إسناد هذه القيمة إلى اسم الدالة نفسها داخل جسم الدالة. مثال: Private Function Sum(x As Integer, y As Integer) As Integer Sum = x + y '-- إسناد القيمة المعادة إلى اسم الدالة End Function (الفصل السادس: البرامج الفرعية والدوال، 6-3: الدوال الوظيفية (دوال المستخدم)، صفحة 96)