☰ خطة العام · تكنولوجيا المعلومات والاتصالات (بالعربية)

مراجعة ومشروعك الصغير

الأسبوع 15 · مراجعة الفصل الدراسي الأول (الوحدتان ١ و٢) ومشروع صغير من تصميمك · 3 دروس
2

مراجعة: البوابات وجداول الحقيقة والمحاكيات

ICT Secondary 3 Term 1, Review: pp. 5–86
الهدفراجع البوابات وجداول الحقيقة والمحاكيات وعوامل PHP و⁦VB.NET⁩ بمهام جديدة مختلطة.
كلمات جديدة
عدد الصفوف ⁦(row count)⁩ · ٢ أس n صفًا لبوابة ذات n من المداخلالعامل (operator) · علامة أو كلمة تعمل على قيم مثل && و|| وNotالتتبع (trace) · متابعة الكود أو النقرات وكتابة الحالة بعد كل خطوةصيد الأخطاء ⁦(fault finding)⁩ · قراءة الكود لإيجاد السطر الذي يكسر القاعدة
الشرح

الوحدة الثانية في صفحة واحدة. للبوابة مداخل ومخرج واحد بالضبط؛ ومع n من المداخل يكون في جدول حقيقتها ٢ أس n صفًا. تعطي AND القيمة 1 فقط حين تكون كل المداخل 1؛ وتعطيها OR حين يكون مدخل واحد على الأقل 1؛ وتعكس NOT مدخلها الواحد؛ وNAND وNOR وXOR هي ⁦NOT AND⁩ و⁦NOT OR⁩ و«واحد بالضبط». وتحتفظ المحاكيات بحالة هي نصا المفتاحين والمصباح، وتغيّرها في كود النقر. والفرق في If الداخلية: ففي AND تفحص المفتاح الآخر حين يُشغَّل مفتاح، وفي OR حين يُطفأ مفتاح، وNOT لا تحتاج إليها. وفي صفحة الويب تُكتب القواعد نفسها بـ && و|| و!، بعد أن يقول isset إن Apply ضُغط، وتقبل الصفحة القيمتين on وoff فقط. وتذكّر المزالق. في OR علامة الجمع ليست جمعًا عاديًا، و⁦1 + 1⁩ تعطي 1. وفي PHP تخزّن = وتقارن ==، ويعمل | على البتات بينما تربط || الشروط، ولا يطبع ⁦echo !1⁩ شيئًا. وفي ⁦VB.NET⁩ يساوي ⁦Not 1⁩ على عدد صحيح ⁦-2⁩. ولإيجاد خطأ اقرأ الكود وتنبّأ بالناتج وقارنه بالقاعدة.

البوابةالمخرج للصفوف 00 و01 و10 و11شرط PHP⁦VB.NET⁩
AND⁦0, 0, 0, 1⁩⁦$a && $b⁩⁦a And b⁩
OR⁦0, 1, 1, 1⁩⁦$a || $b⁩⁦a Or b⁩
NAND⁦1, 1, 1, 0⁩⁦!($a && $b)⁩⁦Not (a And b)⁩
NOR⁦1, 0, 0, 0⁩⁦!($a || $b)⁩⁦Not (a Or b)⁩
XOR⁦0, 1, 1, 0⁩⁦$a != $b⁩⁦a Xor b⁩
NOT (مدخل واحد)⁦1, 0⁩ لـ ⁦A = 0, 1⁩⁦!$a⁩⁦Not a⁩
أمثلة محلولة
Php
1$a = 1;
2$b = 0;
3echo $a & $b, " ", $a | $b, " ", (int)!$a, " ", $a ^ $b;
Output
0 1 0 1
تنبّأ بالناتج قبل أن تقرأ الجواب. مع ⁦a = 1⁩ و⁦b = 0⁩ يطبع السطر AND ثم OR ثم NOT لـ a ثم XOR بهذا الترتيب.
الخطوةالنقرةABالمصباح
0(البداية)OffOffمطفأ
1BOffOnمطفأ
2AOnOnمضاء
3BOnOffمطفأ
أي محاكٍ صنع هذا التتبع؟ قارن المصباح بالنصين: لا يكون مضاءً إلا في الخطوة ٢ حيث النصان On، فهذا محاكي AND.
Php
1echo "NOT 1 is [", !1, "]";
Output
NOT 1 is []
صيد خطأ. يريد تلميذ أن يطبع NOT للبت 1 فيكتب سطر PHP هذا وكود ⁦VB.NET⁩ الآتي. ولا يطبع أي منهما 0. والإصلاحان هما ⁦(int)!1⁩ في PHP فتطبع 0، و⁦1 - bit⁩ في ⁦VB.NET⁩ فتعطي 0.
Vb
1Dim bit As Integer = 1
2Console.WriteLine("NOT 1 is " & Not bit)
Output
NOT 1 is -2
نسخة ⁦VB.NET⁩ من الخطأ نفسه.
البوابةالمداخلالصفوفالصفوف التي مخرجها 1
AND6641
OR66463
NOR4161
NOT121
كم صفًا، وكم صفًا مخرجه 1، لبوابات ذات مداخل أكثر.
نشاط الفصل

اكتب أربع مهام عن البوابات لزميل: قاعدة عليه أن يختار لها البوابة، وجدول حقيقة ينقصه عمود، وتتبعًا لنقرات، وسطر كود عليه أن يتنبأ بناتجه. واكتب الأجوبة في سطر منفصل.

تدرّب
1
كم صفًا من بوابة NOR ذات خمسة مداخل مخرجه 1؟
2
في أي محاكٍ تضيء نقرة واحدة المصباح من الحالة الابتدائية والمفتاحان Off؟
3
كم يعطي ⁦6 & 3⁩ في PHP؟
4
أي عاملين في PHP يعنيان AND وOR للشروط؟