1- تستخدم البرامج الفرعية لعرض تقسيم المشروع إلى مجموعة من البرامج الفرعية أو دوال يتم استدعاؤها وقت الحاجة لها. شرح السؤال عندما تواجه مهمة برمجية كبيرة، هل من الأفضل كتابة كل الكود في مكان واحد، أم تقسيمه إلى وحدات أصغر ومتخصصة يمكن إعادة استخدامها؟ صح خطأ الإجابة الصحيحة هي (صح)العبارة صحيحة في جوهرها وإن كانت الصياغة مربكة قليلاً. الفكرة الأساسية هي أن البرامج الفرعية (Subroutines) والدوال (Functions) هي الوسيلة التي نستخدمها لتقسيم المشروع إلى أجزاء أصغر وأكثر تنظيماً. هذا المبدأ (البرمجة التركيبية) يسهل فهم الكود وتصحيحه وإعادة استخدامه.مفهوم:ما هي الفائدة الرئيسية من تقسيم المشروع إلى برامج فرعية بدلاً من كتابة كود طويل ومتصل؟(الفصل السادس: البرامج الفرعية والدوال، 6-1: المقدمة، صفحة 91)
2- لا يمكن الاستغناء عن جملة (Call) عند استدعاء الإجراء الفرعي. شرح السؤال هل هناك طريقة واحدة فقط لاستدعاء إجراء فرعي في بيسك، أم أن اللغة توفر مرونة في ذلك؟ صح خطأ الإجابة الصحيحة هي (خطأ)يذكر الكتاب المدرسي طريقتين لاستدعاء الإجراء الفرعي:باستخدام جملةCall: مثلCall MySub(arg1)بكتابة اسم الإجراء مباشرة: مثلMySub arg1بما أن هناك طريقة أخرى لا تستخدمCall، فإنه "يمكن الاستغناء عنها".سؤال:ما هو الفرق في الصيغة عند استدعاء إجراء بمعاملات باستخدامCallوبدونها؟ (تلميح: انظر إلى الأقواس).(الفصل السادس: البرامج الفرعية والدوال، 6-2: الاجراءات الفرعية (الروتينات)، صفحة 92-93)
3- جميع معاملات الدالة هي مدخلات فقط. شرح السؤال الدالة (Function) مصممة لإرجاع قيمة واحدة عبر اسمها. ماذا يعني هذا بالنسبة لوظيفة معاملاتها؟ هل هي لاستقبال البيانات أم لإخراجها؟ صح خطأ الإجابة الصحيحة هي (صح)هذا هو المفهوم الأساسي للدالة الوظيفيةFunction. هي تأخذ مجموعة من القيم كمدخلات عبر معاملاتها، وتقوم بمعالجتها، ثم تعيد نتيجة واحدة فقط عبر اسم الدالة نفسها. على عكس الإجراء الفرعيSub، لا تستخدم معاملاتها لإرجاع قيم.مفهوم:في البرمجة، يفضل أن تكون الدوال "نقية" (Pure Functions)، أي أنها لا تغير أي شيء خارجها وتعتمد فقط على مدخلاتها لإنتاج مخرجاتها. كيف يتوافق هذا المبدأ مع كون معاملات الدالة مدخلات فقط؟(الفصل السادس: البرامج الفرعية والدوال، 6-3: الدوال الوظيفية (دوال المستخدم)، صفحة 96)
4- الإجراء الفرعي يقوم بإعادة: شرح السؤال فكر في الفرق بينSubوFunction. إذا كانتFunctionتعيد قيمة واحدة عبر اسمها، فكيف يمكن لـSubأن يعيد نتائج؟ قيمة واحدة فقط قيمة واحدة تعود في اسم الإجراء قيمة أو أكثر قيمة واحدة من خلال اسم المتغير الإجابة الصحيحة هي (قيمة أو أكثر)الإجراء الفرعي (Sub) لا يعيد قيمة من خلال اسمه، ولكنه يستطيع إرجاع قيمة أو أكثر عن طريق تعديل قيمة المعاملات التي يتم تمريرها إليه "بالمرجع" (ByRef). كما أنه يمكن ألا يعيد أي قيمة على الإطلاق. لذلك، فإن الخيار "قيمة أو أكثر" هو الأكثر دقة لوصف قدراته.للتفكير:اكتب رأس إجراء فرعي (Sub) يستقبل رقمين ويعيد حاصل جمعهما وطرحهما.(الفصل السادس: البرامج الفرعية والدوال، 6-2: الاجراءات الفرعية (الروتينات)، صفحة 95)