Week 12 · Unit 2 Topics 5–6: OR gate simulation with VB.NET and with PHP · 3 lessons
2
تتبع كود OR نقرة بعد نقرة
ICT Secondary 3 Term 1, Unit 2, Topics 5–6: pp. 48–64
الهدفتتبّع محاكي OR بجدول للنقرات، واعثر على الخطأ في نسخة نسيت If الداخلية.
كلمات جديدة
التتبع (trace) · متابعة الكود بنقرات معطاة وكتابة الحالة بعد كل نقرةحالة اختبار (test case) · تسلسل نقرات مخطط له مع الحالة التي تتوقعهاالخطأ البرمجي (bug) · غلطة في البرنامج تجعله يتصرف تصرفًا خاطئًاالحالة المتوقعة · الحالة التي تقول القاعدة إن البرنامج يجب أن يعرضها
الشرح
لتتبّع البرنامج اعمل جدولًا فيه صف لكل نقرة: أي مفتاح نُقر، ونص A، ونص B، والمصباح. والصف الأول هو الحالة الابتدائية. وفي محاكي OR فحص سريع لكل صف: يجب أن يكون المصباح مضاءً تمامًا حين يكون نص واحد على الأقل On. وفي التتبع أدناه لا يكون المصباح مطفأ إلا في الخطوة ٤، حيث النصان Off. والتتبع أفضل وسيلة لصيد الأخطاء. افترض أن المبرمج نسي If الداخلية وكتب ShowLamp(False) كلما أُطفئ A. لا يظهر الخطأ في الاختبارات القصيرة، لكن مع النقرات A وB وA تكون الحالة Off On، والقاعدة تقول إن المصباح يجب أن يكون مضاءً لأن B ما زال On، بينما يعرضه الكود الخاطئ مطفأ. ومن مجموعة حالات الاختبار الجيدة تسلسل نقرات ينتهي بإطفاء مفتاح بينما الآخر On.
نص A
نص B
يجب أن يكون المصباح
Off
Off
مطفأ
Off
On
مضاء
On
Off
مضاء
On
On
مضاء
أمثلة محلولة
الخطوة
النقرة
A
B
المصباح
0
(البداية)
Off
Off
مطفأ
1
B
Off
On
مضاء
2
A
On
On
مضاء
3
A
Off
On
مضاء
4
B
Off
Off
مطفأ
5
A
On
Off
مضاء
6
B
On
On
مضاء
تتبع لست نقرات يبدأ من الحالة الابتدائية. لا يكون المصباح مطفأ إلا بعد الخطوة ٤.
Vb
1Private Sub SwitchA_Click(sender As Object, e As EventArgs) Handles SwitchA.Click
2 If SwitchA.Text = "Off" Then
3 SwitchA.Text = "On"4 ShowLamp(True)
5 Else
6 SwitchA.Text = "Off"7 ShowLamp(False)
8 End If
9End Sub
Output
Off On -> unlit
صيد خطأ. في هذه النسخة من SwitchA_Click نُسيت If الداخلية. وسطر الناتج هو الحالة بعد النقرات A وB وA. وكان ينبغي أن يكون المصباح مضاءً لأن B هو On.
النقرات
الحالة المتوقعة
(لا شيء)
Off, Off: مطفأ
A
On, Off: مضاء
A, A
Off, Off: مطفأ
B
Off, On: مضاء
A, B, A
Off, On: مضاء
خطة اختبار صغيرة لمحاكي OR. والصف الأخير يصطاد الخطأ أعلاه.
نشاط الفصل
تتبّع محاكي OR للنقرات A وA وB وB وA بدءًا من الحالة الابتدائية. اكتب الجدول بالحالة بعد كل نقرة، ثم علّم الخطوات التي يكون فيها المصباح مطفأ.
تدرّب
1
بعد النقرتين B وA من الحالة الابتدائية، ماذا تعرض النصوص والمصباح؟
On وOn والمصباح مضاء.
2
في محاكي OR، هل يمكن أن يكون المصباح مضاءً والنصان Off؟
لا. لا يضيء المصباح إلا حين يكون نص واحد على الأقل On.