استخدام الجبر البولياني في علوم الحاسب || The Use of Boolean Algebra in Computer Science

كتبت بواسطة Hasan Ghosoun | بتاريخ الأربعاء 21 تشرين الأول 2020

 

 

جدول المحتويات


المقدمة

المنطق || المنطق في كل مكان

الجبر البولياني || Boolean algebra.

علاقة الحاسوب بالجبر البولياني.

من الجداول الحقيقة إلى الدوائر الإلكترونية

المنطق في الأجهزة

الحساب الثنائي.

القلاب.

الترانزستور كمحول.

دارة الجامع الثنائية البسيطة.

المنطق البولياني في البرمجة.

البوابة العالمية

اقترح للقراءة

الخاتمة

الملاحق.

الرياضيات المستخدمة في علوم الحاسوب

علاقة الحاسب الالي بجميع العلوم الاخرى.

المنطق البوليني.

المنطق البوليني وأنظمة الترميز.

References



المقدمة

 

لنبدأ كلامنا عن المنطق الرقمي بهذه الحقيقة العلمية: الصناعة التقنية الحالية، والأجهزة الحاسوبية التي نستخدمها اليوم – على مختلف أنواعها – وكافة التقنيات المعقدة التي يستخدمها العلماء في أبحاثهم ودراساتهم، تعتمد جميعها على مبدأ بسيط واحد، وهو تمثيل المعلومات باستخدام عددين، هما الصفر (0) والواحد (1). هذين العددين، هما الأساس في كل ما يتعلق بالحواسيب، والدارات المتكاملة، وكل أشكال المعلومات، من صورٍ لفيديوهات لنصوص لبرامج وتطبيقات وغيرها، ليست سوى أشكال متنوعة لسلاسل طويلة من الأصفار والواحدات.

الكلام السابق يتطلب التوضيح، وهو ما نود القيام به عبر هذا المقال، الذي سنخصصه للحديث عن أسس المنطق الرقمي، وعلاقته بالإلكترونيات الرقمية، والدارات المتكاملة، والمعالجات الحاسوبية، وكافة المظاهر التقنية الحديثة التي نستخدمها بحياتنا اليومية، ربما بدون أن نعرف كيف تعمل بشكلٍ فعليّ.


المنطق || المنطق في كل مكان

 

أجهزة الكمبيوتر والمنطق لا ينفصلان - أليس كذلك؟ هم الآن ولكن في البداية كانت الأمور أكثر ضبابية.

تم تصميم أجهزة الكمبيوتر الأولى كمحركات حسابية تلقائية ، بينما كان منشئوها يدركون أن المنطق له علاقة بكل شيء، إلا أنه لم يكن واضحًا بنسبة 100٪ فيما يتعلق بالكيفية أو السبب.

حتى اليوم ، نحن نميل إلى المبالغة في تبسيط المنطق ودوره في حساب وفهم العالم ، وكان جورج بول الرجل الذي بدأ كل شيء على القمة مع عناوين كتبه حول هذا الموضوع - التحليل الرياضي للفكر والتحقيق في قوانين الفكر .

وضع عمل بول المنطق الحديث على الطريق الصحيح بالتأكيد، لكنه أيضاً بالتأكيد لم يكن له أي علاقة بـ "قوانين الفكر ."حقيقة الأمر هي أنه حتى اليوم ليس لدينا فكرة واضحة عن القوانين التي تحكم الفكر وإذا فعلنا موضوع الذكاء الاصطناعي بأكمله فسيكون موضوعًا مغلقًا.

ما فعله جورج بول ليتم الاعتراف به كأب لتكنولوجيا المعلومات الحديثة هو التوصل إلى فكرة كانت في الوقت نفسه ثورية وبسيطة.

يشير هذا الفيديو ، وهو مقطع دعائي لفيلم وثائقي يحتفل بالذكرى المئوية الثانية لميلاده في الثاني من نوفمبر عام 1815 ، إلى كيف يدعم اكتشافه الجذري العصر الرقمي:



الجبر البولياني || Boolean algebra

 

قبل الحديث عن العناصر الإلكترونية الرقمية وكيفية عملها، وكيفية قيامها بمعالجة المعلومات والبيانات، علينا أن نسلط الضوء على أحد الفروع الهامة في الرياضيات، وهي “الجبر البولياني Boolean Algebra”.

تاريخياً، فإن الجبر البولياني قد تم ابتكاره عبر عالم الرياضيات البريطاني

جورج بول|| George Frederik Boole”

(November 2, 1815 - December 8, 1864

الذي كان معاصر لتشارلز باباج ، حيث التقى به لفترة وجيزة ، وبول هو في هذه الأيام يعتبر "جد عصر المعلومات". في عام 1849 أصبح أول أستاذ للرياضيات في كلية كوينز الجديدة في أيرلندا (أصبحت الآن كلية جامعية) كورك. توفي عن عمر يناهز 49 عامًا عام 1864 ، وربما لم يكن لأعماله تأثير على علوم الكمبيوتر دون كلود شانون ، الذي أدرك بعد 70 عامًا أهمية هندسة المنطق الرمزي لبول. ونتيجة لذلك ، أصبح تفكير بول الأساس العملي لتصميم الدوائر الرقمية والأسس النظرية للعصر الرقمي.

يعود لبول الفضل في وضع الأسس الرياضية للمنطق المستخدم في توصيف أنظمة العد الثنائية وعمل البوابات المنطقية الأساسية، وبالتالي أساس المنطق الحاسوبي الحديث حيث استخدم رموز الجبر للدلالة على العلاقات المنطقية فكان له الفضل في الفهم الحديث للعلاقات بين الموضوعات على أسس القوانين الجبرية. بمعنى، أن الشيء إما أن يكون موجودا أو غير موجود، أو أن الشيء إما أنه حاضر أو غائب، أو أن الشيء دائر أو عاطل، الخ.

 وقد قدمه للمرة الأولى في كتابه  “التحليل الرياضي للمنطق The Mathematical Analysis of Logic ” والذي صدر عام 1847. وفي عام 1854، قام جورج بول بتقديم أسس الجبر البولياني بشكلٍ واسع في كتابه الأشهر  “دراسة في قوانين التفكير An Investigation of the Laws of Thought[1].

ومن الاسم، فإن الجبر البولياني هو أحد فروع علم الجبر في الرياضيات، ولكنه بخلاف الجبر الاعتيادي، فإنه يفترض تواجد المتحولات الرياضية ضمن ما يعرف بـ “ قيم الحقيقة Truth Values ” وهي: القيمة الحقيقية True، القيمة الخاطئة False. بالتالي، فإن كل الأرقام والأعداد التي يتم التعامل معها في الجبر العادي، تتحول في الجبر البولياني لتركيباتٍ من الحالات الحقيقية Truth والخاطئة False . لسهولة التعامل، تم إسناد قيمة “1” للحالة الصحيحة، وقيمة “0” للحالة الخاطئة . وبالتالي، فإن أساس الجبر البولياني هو التعامل مع كافة المعطيات استناداً لقيمتين مرجعيتين: 0 و 1.

الاختلاف الآخر الذي يميز الجبر البولياني عن الجبر العادي هو العمليات الرياضية، ففي حين أن الجبر العادي يعتبر أن العمليات الأساسية فيه هي الجمع والطرح والضرب والقسمة، تعتبر العمليات الأساسية في الجبر البولياني هي: عملية الاقتران Conjunction ، وعملية الفصل-اللااقتران Disjunction ، وعملية النفي Negation .

 إذاً، فإن أساس الجبر البولياني هو قيمتين تدعيان بقيم الحقيقة، وثلاثة عمليات رياضية أخرى ، حيث يهيء إجراءا رياضيا لتداول العلاقات المنطقية في شكل رمزي. فالمتغيرات البوليانية تخضع لحالتين أو قيمتين لا غير، فالقيم الزوجية المحتملة هي (نعم ،لا) أو (فَتْح ،قَفْل) أو (صواب، خطأ). ومن الشائع في مجال الأعمال الهندسية استخدام الواحد والصفر (1, 0) كرموز للمتغيرات البوليانية. وتستخدم الكمبيوترات إشارات لها حالتان أو قيمتان احتماليتان. فالجبر البولياني يجعل في إمكان مصممي الكمبيوترات تجميع تلك المتغيرات رياضيا وتداولها بطريقة تسمح بتكوين أبسط التصميمات التي تهيء الوظيفة المنطقية المطلوبة. ففي الجبر البولياني، يمكن التعبير عن بعض الافتراضات مثل:

C = A AND B

التي تعني أن C تكون صحيحة إذا كانت A صحيحة، كما يتحتم كذلك أن تكون B هي الأخرى صحيحة. كما يستخدم أيضا الجبر البولياني في البوابات في دوائر الكمبيوتر الإلكترونية. فكما أن الصفر والواحد يعبران عن القيم المنطقية، فيمكن استخدام مقارنة الحالات الفيزيائية للدائرة، كما في الفولط، وكما في البوابات المنطقية logical gates، فهي تتحكم في سريان التيار الكهربائي (بتات البيانات) وذلك لتمثيل AND, OR, NOT والمعاملات البوليانية الأخرى.

وفي الكمبيوتر تنضم تلك البوابات المنطقية حيث تكون مخرجات إحدى البوابات هي مدخلات بوابة أخرى، بحيث تكون النتيجة (وهي تتألف من الآحاد والأصفار) ذات مغزى.


[1] An investigation of the laws of thought, on which are founded the mathematical theories of logic and probabilities.” "بحث في قواعد التفكير كأساس للنظريات الرياضية عن المنطق والاحتمالات"

 

علاقة الحاسوب بالجبر البولياني



الحاسوب Computer هو مثل باقي الآلات التي اخترعها دماغ الإنسان لكي تساعده في أداء مهامه وإنجاز أعماله، كما اخترع السيارة لتقريب المسافات.

 هذه الآلة قطعت أشواطا كبيرة منذ أن تم اختراع أول حاسوب سنة 1948 حيث كان في البداية كبير الحجم و معقد الاستعمال ، يتطلب كفاءة علمية دقيقة، إلى إن أصبح في متناول الأشخاص العاديين دون الحاجة إلى التخصص في الرياضيات أو الإلكترونيات .

 

 تعريف الحاسوب:

يرتكز الحاسوب على أساسين: الأساس الرياضي الذي يعتمد على الحساب أو النظام الثنائي (code binary ) يتكون من رمزين : الصفر(0) أو الواحد (1) و هو بمثابة لغة الحاسوب التي يتواصل بها و هو الذي يسمح بمعالجة الحروف الهجائية و الأرقام... أما الأساس الإلكتروني فيشتمل على "الترانزيستور || transistor" ، عبارة عن دارة إلكترونية تتخذ حالتين مستقرتين وهما وجود التيار الكهربائي (1) أو غيابه (0).

 

 اشتغال الحاسوب :

 إن الحاسوب هو مجرد آلة لتنفيذ الأوامر المتتابعة التي يتلقاها من برنامج معلوماتي computer program.مستعملا " الحساب الثنائي" و" الجبر البولي" كمبدأ اشتغال و الإلكترونيات كتقنية .

علوم الحاسب الالي[2] كما ذكرت علوم مستحدثة ظهرت مؤخرا من زمن ليس ببعيد واكثر العلوم تطورا والحاسب الالي أيضاً مبني علي مجموعة من العلوم السابقة كما نشاهد ولكن الان جميع العلوم في مختلف المجالات تستعمل الحاسب الالي وهو يبين لنا مدي التطور الهائل لهذا العلم ومدي تطور التكنولوجيا ...

تطبيقات الحاسب الالي موجودة في جميع العلوم

طبعا كلنا نعلم دخول الحاسب الالي كل المجالات والعلوم والابحاث وسوف اذكر على سبيل الذكر:

 

علاقة الحاسب الالي وعلم الرياضيات:[3]



طبعا كلمة حاسب مأخوذة من الحسابات او الارقام وعلم الرياضيات فنلاحظ في الحاسب الالي يوجد المنطق الرياضي والاستنتاج والمصفوفات والمتسلسلات والمحددات وهذا هو علم الجبر فرع من علم الرياضيات، ونلاحظ ايضا تطبيقات الاحتمالات في البرامج وايضا مبادئ التحليل العددي وحلول التفاضل والتكامل والمعادلات التفاضلية كل هذا نستخدمه في البرامج في الحاسب الالي ونلاحظ ايضا نظرية الخوارزميات وكيفية تحليل المشكلة البرمجيه وكثير وكثير.... فالبرمجة كما ستلاحظون بها اشياء كثيرة رياضيه ولكن سهلة جدا ليس كما تتصورون...


[2] علوم الحاسوب (اركز هنا على كلمة علوم) وليس هندسة البرامج او البرمجة(  ربما تشرحها كلمة واحد من اشهر العلماء في علوم الحاسوب حول الخلط بين هذه المفاهيم:
"computer science is no more about computers than astronomy is about telescopes

 

[3] وللمزيد انظر ملحق علاقة الحاسب الآلي بجموع العلوم الآخرى


من الجداول الحقيقة[4] إلى الدوائر الإلكترونية


لا يوضح هذا العرض التوضيحي الصغير فقط لماذا يكون منطق Boolean مفيدًا في تصميم مثل هذه الأنظمة ، ولكنه يفسر أيضًا سبب كون دوائر الإلكترونيات لأداء منطق Boolean شائعة. يمكنك شراء دوائر متكاملة تؤدي And و Or و Not والعديد من المجموعات الأخرى من هذه العمليات في حزمة واحدة سهلة الاستخدام.

أين هي "الحقيقة" في هذا؟

من الواضح أن المنطق البولياني يعمل مع "صواب" و "خطأ" وهذا هو بالضبط ما فكر به بول نفسه ، ومع ذلك يمكنك العمل مع نفس نظام العاملين والنتائج بغض النظر عن ما تسميه الحالتان - لأعلى / لأسفل ، on/off أو صفر / واحد.

في حالة الإلكترونيات ، من الطبيعي أن تفكر في الجهد العالي والمنخفض على أنه يمثل الحالات الطبيعية التي نعمل معها .غالبًا ما يكون التفسير الذي يتضمن المنطق البولياني أكثر ملاءمة عندما يتم التعبير عنه بمصطلحات تنتمي إلى الموضوع الأساسي ، ولكنه لا يزال هو نفس المنطق البولياني.

ما علاقة كل هذا بالكمبيوتر؟

الجواب ذو شقين. الصلة الأولى هو أن أجهزة الكمبيوتر تحتوي على دوائر إلكترونية تتصرف بنفس طريقة إنذار السارق .بشكل عام ، يساعد منطق Boolean عندما تحتاج إلى تصميم دائرة يجب أن تعطي ناتجًا فقط عند وجود مجموعات معينة من المدخلات.

تسمى هذه الدائرة "المنطق التوافقي" ويوجد الكثير منها داخل الكمبيوتر. يمكنك تحديد سلوك أي جزء من المنطق التوافقي باستخدام جدول الحقيقة. الفرق الوحيد هو أنه في معظم الحالات تكون الجداول كبيرة جدًا ويعد تحويلها إلى أجهزة فعالة مهمة صعبة للغاية.

 
 

[4] انظر ملحق المنطق البولياني



المنطق في الأجهزة


ما يجعل منطق Boolean أساسيًا جدًا لأجهزة الكمبيوتر ومجموعة واسعة من الأجهزة الإلكترونية هو أن هذا المنطق سهل التنفيذ. المنطق "gate" عبارة عن قطعة إلكترونيات تأخذ بعض المدخلات وتنتج ناتجًا وفقًا لأحد الجداول المنطقية. عادة ما تكون المدخلات مرتفعة أو منخفضة ويتم تفسير ذلك على أنه 1 و 0 أو صحيح وخطأ.

على سبيل المثال ، تحتوي البوابة Not على مدخل واحد ويكون ناتجها مرتفعًا عندما تكون المدخلات منخفضة والعكس صحيح. يمكنك إنشاء دوائر منطق أكثر تعقيدًا عن طريق توصيل البوابات.

الرموز الأساسية للبوابات المنطقية الثلاثة الأساسية Not, And بالإضافة إلى exclusive Or هي:

  

لاحظ أن الرموز القياسية الأوروبية مختلفة ولكن بشكل رئيسي لم يتم التعرف عليها.

بشكل عام ، تشير دائرة صغيرة متصلة إلى نفي أو لا - راجع بوابة " Not  ."

على سبيل المثال ، رموز NAND و NOR و Not EOR أو XNOR هي:

في نواح كثيرة هذه الالكترونيات تركب بشكل سهل. لا تحتاج إلى معرفة أي شيء عن الترانزستورات أو المكونات الأخرى لبناء دائرة المنطق. كل ما عليك هو معرفة التعبير المنطقي والبوابات السلكية لتنفيذه.

على سبيل المثال ، مثال الإنذار ضد السرقة لديه التعبير المنطقي:

R = Not(P) And Q

لتنفيذ ذلك في الأجهزة ، نحتاج إلى بوابة Not وبوابة: AND

دوائر المنطق الحقيقي أكثر تعقيدًا بكثير من هذا ويمكن أن تستخدم مئات أو حتى الآلاف من البوابات.

 

الحساب الثنائي

 

الصلة الثانية هي في الواقع مجرد حالة خاصة من الأولى لكنها مهمة للغاية، وغالبا ما يربك الناس أنه يمكن استخدام المنطق البولياني لتنفيذ الحساب الثنائي.

لاحظ أنه لا يوجد ما يشير إلى أن المنطق الثنائي والحساب المنطقي هما نفس الشيء - ليسوا كذلك. الحساب الثنائي هو مجرد مثال لنظام القيمة الموضعية لتمثيل القيم. بمعنى ، نحن البشر يعملون بقاعدة العشر أصابع وتجد أجهزة الكمبيوتر أنه من الأسهل العمل في القاعدة الثانية لأنهم لا يمتلكون عشرة أصابع.

ومع ذلك ، عند قيامك بحساب ثنائي ، تتبع القواعد القياسية التي تحدد كيفية دمج البتات معًا لإنتاج البتات الناتجة. يمكن التعبير عن هذه القاعدة كمنطق اندماجي - بمعنى آخر ، جدول الحقيقة.

يمكنك بسهولة إنشاء جدول يوضح كيفية إضافة وحدتين معًا لإعطاء نتيجة وحمل إلى المكان التالي: 

 

A B Result Carry

0 0 0 0

0 1 1 0

1 0 1 0

1 1 0 1

 

اذا كنت لا تعرف كيفية إضافة وحدتين معًا ، فقم ببساطة بقبول الجدول كإرشادات لكيفية القيام بذلك.

يمكنك أن ترى أن هذا مجرد جدول حقيقة آخر ، ويمكن إنتاج المنطق التوافقي اللازم لذلك بالطريقة المعتادة. في الواقع ، هذا ليس سوى نصف الجامع - نعم هذا هو المصطلح الفني الحقيقي - لأنه لا يضيف قيمة حمل قد يكون تم إنشاؤها بواسطة زوج من وحدات البت السابقة.

جدول "الجامع الكامل" ، هذا هو أيضًا المصطلح التقني الصحيح: 


A B C Result Carry

0 0 0 0 0

0 0 1 1 0

0 1 0 1 0

0 1 1 0 1

1 0 0 1 0

1 0 1 0 1

1 1 0 0 1

1 1 1 1 1


تعد الدارات التوافقية هي الرابط الرئيسي بين منطق Boolean وأجهزة الكمبيوتر ، ولكن يوجد ما هو أكثر من أجهزة الكمبيوتر من المنطق التوافقي.

في بعض الأحيان سوف تسمع أجهزة الكمبيوتر المشار إليها قطعة واحدة فقط من منطق بوليان ولكن هذه هي المبالغة. قطع كبيرة هي مجرد بوابات And ، Or ، Not ولكن هناك أيضًا قطع ضخمة لا يمكن وصفها من حيث المنطق البولياني البحت.


القلاب[5]


تتضمن أجهزة الكمبيوتر أيضًا المنطق "المتسلسل" ، والذي يتضمن عنصر الوقت.

على سبيل المثال ، فإن flip-flop ، المصطلح الجيد تمامًا مرة أخرى ، عبارة عن دائرة تتغير حالة مثل رقاص الساعة يتقلب من جانب إلى آخر.

الشيء الغريب هو أنه يمكنك إنشاء قلاب من بوابتين وليس بوابات ، وصحيح أن معظم المنطق المتسلسل يمكن فهمه من حيث مجموعات البوابات المنطقية. ومع ذلك ، هذا تفسير غير كامل ويتطلب شيئًا يتجاوز المنطق البولياني.

على سبيل المثال ، لا يستطيع منطق Boolean التعامل مع العبارة:

 A = NOT A

إذا كانت الإجابة "A" صحيحة ، فإن "A" ليست "خاطئة" و "A" يجب أن تكون خاطئة ، لكن هذا يعني أن "A" غير صحيح ، مما يعني أن "A" يجب أن يكون صحيحًا ، يعني ، وهكذا ...

لذلك من وجهة نظر المنطق البولياني هذا هراء. 😶

الآن تخيل أنك على جانب واحد من السبورة تكتب "A صحيح" وعلى الجانب الآخر تكتب "Not A is true". الآن عندما تقرأ "A صحيح" ، فأنت سعيد بهذا. عندما تقوم بإدارة السبورة ترى "ليس A صحيحاً" وهكذا تستنتج A غير صحيحة. بينما تستمر في قلب اللوحة فوق قيمة A من تتقلب من صح إلى خطأ والعودة مرة أخرى.

هذا التحول في السبورة هو الجزء الإضافي من النظرية اللازمة للتعامل مع المنطق المتسلسل - فهو يوضح كيف يغير الوقت الأشياء. لذا فإن أجهزة الكمبيوتر ليست مجرد عبارة واحدة كبيرة في منطق Boolean ، والتي تصادف أنها صحيحة أو خاطئة.

تتغير حالتها مع كل علامة من ساعة نظامها.

 

بالإضافة إلى جبر Boolean أعلاه ، تم تطوير بوابات المنطق الرقمي لتمثيل تعبيرات Exclusive OR و Exclusive NOR لتوسيع النطاق الأصلي لقوانين Boolean. راجع تعبيرات OR Exclusive .

وقد تحتوي البوابات المنطقية على اثنين أو أكثر من المدخلات ، وباستثناء بعض الحالات الخاصة، يكون لها خرج واحد. لا يمكن أن تكون حالة طرفي الدخل والخرج إلا في أحد الشرطين الثنائيين ، إما منخفض (0) أو مرتفع (1) ، ويمثله مستويان مختلفان للجهد ، عادةً 0 فولت للمنطق 0 وحوالي 3 إلى 5 فولت للمنطق 1 ، اعتمادا على تكنولوجيا أشباه الموصلات المستخدمة. البوابات المنطقية تتطلب أيضًا مصدر طاقة.


[5] ( Introduction to Boolean Logic , n.d.)

الترانزستور كمحول[6]

 

تصنع البوابات الإلكترونية عمومًا من دارات الترانزستور التي تعتمد على تشغيلها على استخدام الترانزستور كمفتاح ، بدلاً من كونها مضخم صوت تم اختراعه في الأصل .مع عدم وجود جهد على القاعدة ، لا يوجد تيار من خلال الترانزستور الذي يتم إيقاف تشغيله وبالتالي سيكون جهد الخرج (جامع) عاليًا. عندما يتم تطبيق الجهد "العالي" على القاعدة ، يتم تشغيل الترانزستور ويكون جهد الخرج (جامع) "منخفضًا". انظر المزيد على الصفحة حول أشباه الموصلات .

كانت النسخة المبكرة من دائرة التبديل ثنائية الاستقرار هي 1919 Eccles and Jordan   flip-flop استنادًا إلى الصمامات (الأنابيب المفرغة). كانت نسخة الترانزستور اللاحقة واحدة من أولى الدوائر الإلكترونية التي طبقتها روبرت نويس كحلقة متكاملة في عام 1959.

تعتمد عمليات التقليب على مفهوم التغذية المرتدة التي يتم فيها إعادة إخراج الدائرة مرة أخرى إلى المدخلات ، بحيث يكون الناتج منخفضًا والعكس صحيح عندما يكون الدخل مرتفعًا.

انظر الارتباط التشعبي على مثال مفاتيح الترانزستور المستخدمة في الدائرة الإلكترونية المستخدمة لتنفيذ بوابة NOR ثلاثية الدخل .


[6] (Boolean Logic and Digital Circuits, n.d.) 



دارة الجامع الثنائية البسيطة[7]

 

ومثال آخر دارة الجامع الثنائية البسيطة التي تظهر كيف يمكنك إضافة أرقام ثنائية مع البوابات. إذا كان يمكنك إضافة ، فهذا يعني أنه يمكنك طرح أيضا. إذا استطعت طرحها ، يمكنك إجراء مقارنة أيضًا (مما يعني أنه يمكنك القيام بذلك إذا / ثم ، حلقات ، وما إلى ذلك.) لذلك يصبح هذا جزءًا رئيسيًا من أي برنامج تقريبًا.

يمكنك أيضًا الانتقال من هناك إلى الأجهزة الحكومية لإظهار كيف يمكنك إنشاء آلات في العالم الحقيقي مثل إشارات المرور والمصاعد وما إلى ذلك ، عبر أجهزة Moore / Mealy state باستخدام البوابات المنطقية بدلاً من البرامج التقليدية. في هذه الحالة ، يعمل) Flip / Flops الذي تم إنشاؤه أيضًا من بوابات المنطق الأساسية) كذاكرة 1 بت لتذكر "الحالة" الحالية كرقم ثنائي. ثم على نبض الساعة ، تجمع مجموعة من المنطق التوافقي بين مدخلات النظام ، مثل أزرار الضغط أو أجهزة الاستشعار الأخرى ، مع القيمة الحالية للحالة ، والتي تنتج كلا من مخرجات المنطق (مثل تشغيل الضوء الأحمر) ، وتقرر ما الحالة التالية للانتقال إلى ستكون (أو ربما تبقى في نفس الحالة). ثم ينتظر النظام نبض الساعة التالي.

مثال على الرسم البياني للجامع ، والذي يأخذ اثنتين من البتات لإضافته إلى وحدة بت اختيارية للحمل ، وينتج مجموع ومخرجًا للحمل الخاص لبتة الجامع التالية ، باستخدام منطق XOR و AND و OR:

"الرسم التخطيطي لمنطق الجامع الكامل" بواسطة inductiveload - الرسم الخاص ، Inkscape 0.43. مرخصة بموجب المجال العام عبر العموم

مثال عن الحالة ماكينة الباب الدوار:


[7] (By Chetvorno (Own work) [CC0], n.d.)

 


المنطق البولياني في البرمجة


مثال آخر وعلى نطاق الحب والغزل ... يصلح للرجل ان يقوم بحمل فتاته الجمليه واركابها على حصانه ومن ثم قضاء نزهه جميله وان يقوم بشي اللحم وتقديمه لها ... والان قل لي هل يصلح العكس اي ...

ان تقوم المرأه بحمل <<< الرجل وتركيبه على حصانها وشي اللحم وتقديمه اليه . 

واتمنى ان تفهم ما من وراء ذلك !! 🙂🙂

الا يندرج ما نتحدث عنه تحت المنطق ؟؟

بل هناك مثال ابسط من هذا لك :

ماذا لو قلت لك اصنع برنامج ياخذ اسم شخص كاملا وياخذ تاريخ ميلاده وتاريخ ميلاد والده واجداده

ألا تستطيع ان تضع في البرنامج الكود الكافي لرفض تواريخ ميلاد غير منطقيه ؟؟؟؟؟

الشروط بسيطه...

الأب اكبر من الإبن على الأقل بمرحلة البلوغ هذه هي القاعده , الا تستطيع استخدامها في برنامجك ؟؟؟؟؟؟

الا تستطيع وضع اي شروط منطقيه طالما معك قواعد هذا المنطق ؟؟؟؟؟

منطق بوليان [8] أمر أساسي لتصميم أجهزة الكمبيوتر حتى لو لم يكن القصة كلها. الشيء نفسه ينطبق على البرمجة.

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

على سبيل المثال ، مهمة شائعة هي اتخاذ قرار باستخدام عبارة IF:

	 IF (A>0 AND A<10) نفذ شيئًا 

القوس الذي يلي IF هو منطق بولياني تقريبًا ، ويتم تنفيذ الشيء فقط إذا كان هذا صحيحًا.

حتى الآن بسيط جدًا، البسيط جدًا في الواقع أن العديد من المبرمجين يقررون أنهم لا يحتاجون إلى معرفة أي شيء عن المنطق البولياني على الإطلاق ؛ وهذا خطأ خطير.

فكر في كيفية تغيير هذا المثال حتى يتم تنفيذ "شيء ما" عندما يكون الشرط خاطئًا. أبسط طريقة هي الكتابة:

	 IF NOT(A>0 AND A<10) نفذ شيء 

لكن هذا يسيء إلى بعض المبرمجين الذين يرغبون في إعادة كتابة الشرط الذي لا يستخدم NOT.

جربه وانظر ما توصلت إليه.

الخطأ الشائع هو استخدام:

	 IF (A<=0 AND A>=10) نفذ شيء 

هذا غير صحيح ، وإذا كنت لا تصدق ذلك ، فاكتب ببساطة جدول الحقيقة لكليهما. الصحيح نفي الشرط بـ Not :

	IF (A<=0 OR A>10) فعل شيء 

يعمل التبديل من AND إلى OR على صدم العديد من المبرمجين ذوي الخبرة وهو مصدر لأخطاء البرمجة العديدة.

نصيحتي هي أنه إذا كان بإمكانك كتابة شرط منطقي في شكل طبيعي ولكنك تحتاج حقًا إلى "NOT" ، ثم اكتب " NOT " أمامه!

خلاف ذلك تعلم قوانين دي مورغان:

	NOT (A AND B) = NOT(A) OR NOT(B)

و

	NOT (A OR B) = NOT(A) AND NOT(B)

 

المنطق البولياني مهم كوسيلة أساسية للتفكير في المواقف البسيطة للغاية التي تتضمن مجموعات من حالتين.

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

إذا كنت جاداً بشأن الحوسبة ، فأنت بحاجة إلى أن تحكم استخدام المنطق البولياني بنفس الطريقة التي تحكم بها الحساب - الحساب الثنائي بالطبع.

إذاً يستخدم المنطق البولياني[9] في كل لغة برمجة تقريبًا. برمجة الكمبيوتر هي استخدام رئيسي للمنطق البولياني. لأنها تتيح لنا ترجمة مشاكل العالم الحقيقي إلى رمز الكمبيوتر.

C و C ++ و C # هي ثلاث لغات برمجة كمبيوتر مختلفة تستخدم بناء جملة متشابه للغاية. يمكننا أن ننظر في كيفية استخدام منطق Boolean في هذه اللغات ، مع ذلك ، يتم تمثيل العوامل and, or, and not بواسطة رموز مختلفة لتلك المستخدمة في الرياضيات.

العوامل

العوامل المنطقية

  logical and     & (also bitwise), && (short-circuit) 
  logical or      | (also bitwise), || (short-circuit) 
  logical negation  ! 

  
  

عوامل المقارنة

العوامل التي تسير على ما يرام مع العوامل المنطقية هي:

  يساوي               == 
  أقل من              < 
  اقل او يساوي       <= 
  أكثر من             > 
  أكبر من أو يساوي   >= 
  لا يساوي             != 

 

العوامل الآخرى

  الثلاثي الشرطي     ? : 

 

عبارة إذا

يتم استخدام عوامل التشغيل المنطقية هذه لإنشاء عبارات منطقية من خلال بدء العبارة بـ if .

لاختبار القيم التي يتم تخزينها في متغيرين يدعيان A و B ثم:

	If (A > 5 && B < 20) 

إذا كان البيان صحيحًا ، فسيستمر رمز البرنامج في العبارة التالية. إذا كانت العبارة المنطقية خاطئة ، فإن الرمز يتخطى العبارة التالية.

تتم قراءة هذا البيان كـ: إذا كانت A أكبر من 5 و B أقل من 20 ، فقم بمعالجة السطر التالي.

في الواقع الفعلي ، إذا كانت البيانات يمكن أن تتعامل فقط مع القيم المنطقية ؛ إما صحيحة أو خاطئة

حيث s عبارة عن سلسلة (أي ليس متغير منطقي)

s == "example" على الرغم من أن s و "example" عبارة عن سلاسل وليس متغيرات منطقية ، s == "example" هي معادلة لذلك تنتج قيمة منطقية ، ولهذا السبب يمكنك استخدامها في عبارة if .

حتى بعد برمجة المساواة أو علامة المساواة في هذه المسألة ، هو في حد ذاته نوع من المشغل ، فهو ليس عامل حسابي مثل الجمع أو الضرب ، بل عامل منطقي.

 x و y في التكافؤ x == y يمكن أن يكون أي شيء (ضمن البرمجة ؛ مقيدًا بأنواع البيانات أو أنواع الكائنات الممكنة) ولكن نتيجة x == y) حيث يُعتقد == كمشغل) هي منطقية ؛ إما صحيحة أو خاطئة.

باستخدام الجبر المنطقي لتبسيط التعليمات البرمجية

تذكر أنه في الحساب، تستوعب العوامل الثنائية + و × ومقلوبيهما− و ÷ اثنين من المدخلات وتخرج قيمة.

في الجبر البولياني، علامة التساوي نفسها هي أيضًا عوامل تشغيل . خذ هذه المعادلة البسيطة

	x=10

أيا من هذه القيم المنطقية بأي حال من الأحوال ، فإن LHS[10] و RHS[11] عبارة عن تعبيرات ، لا تكون هذه صحيحة أو خاطئة ، ولكن مع علامة المساواة ، ستنتج المعادلة (التعبير المنطقي) القيمة المنطقية ، إذا كان الإدخال x هو يساوي 10 ، ثم الناتج سيكون "صوابًا" ، إذا كانت x ليست 10 ، فسوف يخرج قيمة false. لا يمكنك إشراك الأرقام مباشرةً في الجبر المنطقي ولكن يمكنك إشراك المعادلات.

في ما يلي ، يجب أن تساوي x 10 و y يجب أن تكون 15 للتعبير عن القيمة الحقيقية.

	(x=10) ∧ (y=15)

يتم كتابة التالي في [12]Pseudocode حيث "==" يمكن أن تعني مساوية = ، أي ما يعادل ⇔ or identical to ≡ أو مطابقة. في الكثير من اللغات ، يعني x = 255 من تلقاء نفسه أنك تقوم بإسناد القيمة 255 للمتغير x ، وأحيانًا ستستخدم ": =" للتخصيص لتوضيح ذلك.

حيث يكون x هو متغير منطقي و f إجراء.

	If (x==true) { 
	 f () ؛
	} 
	 If (x) {في معظم لغات البرمجة ، من الممكن إزالة "== true" لأن x بحد ذاته عبارة.
	 f () ؛
	} 

المعادلات مثل "==" هي الأكثر استخدامًا ولكن مع معرفة الجبر المنطقي ، لا يلزمك استخدامها في كل وقت. وبسبب هذا يمكنك تبسيط

 If (x == true and y== true) { 
	 f () ؛
	} 
	مثل 
	If (x and y) { 
	 f () ؛
	} 

لأن "x و y" نفسها تنتج قيمة منطقية.

يمكنك أيضًا استخدام ما يلي بدلاً من التكافؤ:

أكبر من:>

أقل من: <

أكبر من أو يساوي:> = أو => حسب اللغة.

أقل من أو يساوي: <= أو = <حسب اللغة.

لا يساوي:!

قد لا يكون المشغل علامة التعجب "!" أو كلمة "لا" ، ولهذا السبب ، لا تحتاج إلى الكتابة

	If (x! = true) {
	 f () ؛
	} 
	 (! x) {يمكنك تقصير ذلك واكتب فقط إذا
	 f () ؛
	} </code>
	 If (Not x) {أو
	 f () ؛
	} 

تعيين المتغيرات البوليانية

مثال برمجي مكتوب بلغة جافا: كتابة جميع القواعد التي تحكم العمليات المنطقية: جداول الحقيقة، قانون دمورغان[13].