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

البوابات في القرارات: NAND وNOR وXOR

الأسبوع 14 · الوحدة ٢ الموضوع العاشر: توظيف البوابات المنطقية في اتخاذ القرارات الحياتية، خاتمة الكتاب، وبوابات NAND وNOR وXOR المذكورة في مقدمة الوحدة · 3 دروس
3

ما بعد الأساسيات: NAND وNOR وXOR

ICT Secondary 3 Term 1, Unit 2, Topic 10: pp. 82–86
الهدفعرّف NAND وNOR وXOR انطلاقًا من AND وOR وNOT، واقرأ جداول حقيقتها.
كلمات جديدة
NAND · ⁦NOT AND⁩: المخرج 0 فقط حين تكون كل المداخل 1NOR · ⁦NOT OR⁩: المخرج 1 فقط حين تكون كل المداخل 0XOR · OR الحصري: المخرج 1 حين يختلف المدخلانXNOR · ⁦NOT XOR⁩: ذكرها الكتاب ولا ندرسها هنا
الشرح

يذكر الكتاب ثلاث بوابات أخرى ويرسم رموزها دون جدول. ونستطيع أن نبنيها من البوابات الثلاث التي نعرفها. NAND هي AND يتبعها NOT: خذ عمود AND واعكسه. وللصفوف 00 و01 و10 و11 تعطي 1 و1 و1 و0، فهي 0 فقط للصف 11. وNOR هي OR يتبعها NOT: تعطي 1 و0 و0 و0، فهي 1 فقط للصف 00. وXOR هي ⁦«OR⁩ الحصري». تشبه OR إلا أنها 0 حين يكون المدخلان 1 معًا: فهي 1 تمامًا حين يختلف المدخلان، وتعطي 0 و1 و1 و0. وتذكّر «شاي أو قهوة» في الأسبوع الحادي عشر: هذه «أو» اليومية هي XOR. أما في رموزها فNAND وNOR شكلا AND وOR مع الدائرة الصغيرة العاكسة التي في بوابة NOT، وXOR شكل OR مع خط منحنٍ إضافي. وXNOR هي ⁦NOT XOR⁩، مخرجها 1 حين يتساوى المدخلان؛ ونكتفي هنا بذكرها. وفي PHP الأعمدة الثلاثة هي ⁦(int)!($a && $b)⁩ و⁦(int)!($a || $b)⁩ و⁦$a ^ $b⁩. وفي ⁦VB.NET⁩ هي ⁦Not (a And b)⁩ و⁦Not (a Or b)⁩ و⁦a Xor b⁩.

AB⁦¬(A∧B)⁩⁦¬(A∨B)⁩⁦A⊕B⁩
00110
01101
10101
11000
أمثلة محلولة
Php
1for ($a = 0; $a <= 1; $a++) {
2    for ($b = 0; $b <= 1; $b++) {
3        echo $a, " ", $b, "   ", (int)!($a && $b), " ", (int)!($a || $b), " ", $a ^ $b, "\n";
4    }
5}
Output
0 0   1 1 0
0 1   1 0 1
1 0   1 0 1
1 1   0 0 0
الأعمدة الثلاثة مطبوعة بـ PHP. وأسطر الناتج من تشغيله فعلًا.
Vb
1For Each a As Boolean In {False, True}
2    For Each b As Boolean In {False, True}
3        Console.WriteLine(a & " " & b & "   " & (Not (a And b)) & " " & (Not (a Or b)) & " " & (a Xor b))
4    Next
5Next
Output
False False   True True False
False True   True False True
True False   True False True
True True   False False False
الأعمدة الثلاثة نفسها في ⁦VB.NET⁩ داخل برنامج كونسول صغير. وتُطبع قيم Boolean بالشكل True وFalse.
AB⁦A∨B⁩⁦¬(A∧B)⁩⁦(A∨B)∧¬(A∧B)⁩
00010
01111
10111
11100
XOR مبنية من البوابات الأساسية: ⁦(A OR B) AND NOT (A AND B)⁩. والعمود الأخير يساوي XOR.
القاعدةالبوابة
يضيء مصباح الدرج حين يكون مفتاحا الجدار في وضعين مختلفين.XOR
يضيء ضوء التحذير إلا إذا أُغلق القفلان معًا.NAND
تضيء لافتة «هدوء» حين لا يعمل المذياع ولا التلفاز.NOR
ثلاث قواعد من تأليفنا وبواباتها.
نشاط الفصل

املأ جدولًا أعمدته A وB و⁦A OR B⁩ و⁦A AND B⁩ و⁦NOT (A AND B)⁩ و⁦(A OR B) AND NOT (A AND B)⁩. وتحقق أن العمود الأخير هو XOR، وقل أي قاعدة يومية يصف.

تدرّب
1
مع أي صف من صفي مدخلين تعطي NAND القيمة 0؟
2
مع أي صف من صفي مدخلين تعطي NOR القيمة 1؟
3
كم صفًا من XOR ذات المدخلين مخرجه 1؟
4
كم يعطي ⁦6 ^ 3⁩ في PHP؟