طرائق الوحدة المستخدمة للمكدس ومثال الطباعة - كتاب الذكاء الإصطناعي - الصف 12 - الفصل 1 - المملكة العربية السعودية

الكتاب: كتاب الذكاء الإصطناعي - الصف 12 - الفصل 1 | المادة: الذكاء الإصطناعي | المرحلة: الصف 12 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

الدرس: طرائق الوحدة المستخدمة للمكدس / مثال: الطباعة Print

📚 معلومات الصفحة

الكتاب: كتاب الذكاء الإصطناعي - الصف 12 - الفصل 1 | المادة: الذكاء الإصطناعي | المرحلة: الصف 12 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

نوع المحتوى: درس تعليمي

مستوى الصعوبة: متوسط

📝 ملخص الصفحة

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

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

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

📄 النص الكامل للصفحة

كما ذكر من قبل فإن الوحدة النمطية للطابور تحتوي على بعض الوظائف الجاهزة للاستخدام مع المكدس أو الطابور. الجدول 1.6 يوضح وظائف الوحدة التي يمكن استخدامها مع هيكل بيانات المكدس.--- SECTION: جدول 1.6: طرائق الوحدة المستخدمة للمكدس --- جدول 1.6: طرائق الوحدة المستخدمة للمكدس--- SECTION: جدول 1.6: طرائق الوحدة المستخدمة للمكدس --- الطريقة stackName=queue.LifoQueue() stackName.get() الوصف تنشئ مكدسًا جديدًا اسمه stackName. تحذف العنصر الأخير من المكدس.ستستخدم وحدة الطابور لإنشاء مكدس فارغ.تذكر أن العمليات في المكدس تعمل وفقًا لقاعدة المضاف آخرًا يخرج أولاً (LIFO).عند استخدام دالة get مع الطابور، ستستند عمليات الاستدعاء والطباعة إلى قاعدة المضاف أولاً يخرج أولاً (FIFO).--- SECTION: Python Code Example --- from queue import * myStack = LifoQueue() myStack.put("a") myStack.put("b") myStack.put("c") myStack.put("d") myStack.put("e") for i in range(5): k = myStack.get() print(k) # empty the stack checkEmpty = myStack.empty() print("Is the stack empty?", checkEmpty)e d c b a Is the stack empty? True--- SECTION: مثال: الطباعة Print --- مثال: الطباعة Printيظهر أمامك في المثال التالي محاكاة لطابور الطباعة في الطابعة. عندما يرسل المستخدمون أوامر طباعة، تضاف إلى طابور الطباعة. تستخدم الطابعة هذا الطابور لتحديد الملف الذي سيطبع أولاً.--- SECTION: تمرين --- افترض أن سعة الطابعة هي فقط 7 ملفات، ولكن في الوقت نفسه، تحتاج إلى طباعة 10 ملفات من الملف A إلى الملف L. اكتب برنامجًا يمثل طابور الطباعة منذ بدء أمر الطباعة الأول A حتى الانتهاء من كل أوامر الطباعة. أضف اللبنة التي تؤكد أن طابور أوامر الطباعة فارغ.2025 - 1447--- VISUAL CONTEXT --- **TABLE**: جدول 1.6: طرائق الوحدة المستخدمة للمكدس Description: Table showing methods and their descriptions for a stack unit. Table Structure: Headers: الطريقة | الوصف Rows: Row 1: stackName=queue.LifoQueue() | تنشئ مكدسًا جديدًا اسمه stackName. Row 2: stackName.get() | تحذف العنصر الأخير من المكدس. Calculation needed: N/A Context: Illustrates basic operations for a stack data structure using Python-like syntax.**HIGHLIGHT_BOX**: تذكر Description: A pink highlight box containing a reminder about LIFO principle for stacks. Context: Emphasizes the Last-In, First-Out (LIFO) principle governing stack operations.**HIGHLIGHT_BOX**: ملاحظة Description: A pink highlight box containing a note about FIFO principle when using 'get' with a queue. Context: Clarifies that using 'get' with a queue (even if used for a stack implementation) follows the First-In, First-Out (FIFO) principle for retrieval and printing.

📝 أسئلة اختبارية

عدد الأسئلة: 1

سؤال 1: افترض أن سعة الطابعة هي فقط 7 ملفات، ولكن في الوقت نفسه، تحتاج إلى طباعة 10 ملفات من الملف A إلى الملف L. اكتب برنامجًا يمثل طابور الطباعة منذ بدء أمر الطباعة الأول A حتى الانتهاء من كل أوامر الطباعة. أضف اللبنة التي تؤكد أن طابور أوامر الطباعة فارغ.

  • أ) برنامج يستخدم قائمة عادية بدون مراعاة سعة الطابعة
  • ب) برنامج يستخدم stack بدلاً من queue لتمثيل طابور الطباعة
  • ج) برنامج يستخدم queue.Queue() بسعة 7، يضيف الملفات A-L ويعالجها حتى يصبح الطابور فارغًا
  • د) برنامج يطبع الملفات مرة واحدة دون استخدام طابور

الإجابة الصحيحة: برنامج Python يستخدم queue.Queue() لتمثيل طابور الطباعة، يضيف الملفات A إلى L (10 ملفات) مع سعة 7، ثم يعالج الطباعة حتى يصبح الطابور فارغًا، مع التحقق من حالة الطابور في النهاية.

الشرح: يجب إنشاء برنامج يستخدم وحدة queue في Python لإنشاء طابور بسعة 7. يتم إضافة الملفات من A إلى L (10 ملفات) إلى الطابور، مع مراعاة أن السعة 7 فقط، لذلك قد تحتاج إلى انتظار معالجة بعض الملفات قبل إضافة البقية. يجب أن يحتوي البرنامج على حلقة لمعالجة أوامر الطباعة (إخراج الملفات من الطابور) حتى يصبح فارغًا، وأخيرًا التحقق من أن الطابور أصبح فارغًا باستخدام الدالة empty().

تلميح: استخدم from queue import * و Queue() لإنشاء الطابور، وضع في الاعتبار سعة 7 ملفات فقط في أي وقت.

🎴 بطاقات تعليمية للمراجعة

عدد البطاقات: 4 بطاقة لهذه الصفحة

ما هي القاعدة التي تعمل بها عمليات المكدس (Stack)؟

الإجابة: تعمل عمليات المكدس وفقًا لقاعدة المضاف آخرًا يخرج أولاً (LIFO - Last-In, First-Out).

الشرح: في المكدس، العنصر الذي تم إضافته مؤخرًا هو أول عنصر تتم إزالته.

تلميح: فكر في ترتيب دخول وخروج العناصر من المكدس.

ما هو السلوك الذي تتبعه دالة 'get()' عند استخدامها مع هيكل بيانات الطابور (Queue)؟

الإجابة: عند استخدام دالة 'get()' مع الطابور، فإن العمليات تستند إلى قاعدة المضاف أولاً يخرج أولاً (FIFO - First-In, First-Out).

الشرح: حتى لو تم استخدام وحدة 'queue' لإنشاء مكدس، فإن دالة 'get()' المخصصة للطابور تتبع مبدأ FIFO. هذا يعني أن العنصر الأقدم في الطابور هو الذي يتم استرجاعه أولاً.

تلميح: تذكر كيف يتم التعامل مع العناصر في طابور الانتظار الحقيقي.

ما هي الوظيفة الأساسية التي توفرها الطريقة `queue.LifoQueue()` في سياق المكدس؟

الإجابة: تُستخدم الطريقة `queue.LifoQueue()` لإنشاء مكدس جديد فارغ.

الشرح: هذه الطريقة هي نقطة البداية لإنشاء تمثيل للمكدس باستخدام وحدة الطابور في بايثون، حيث تقوم بإنشاء بنية بيانات يمكن التعامل معها كـ LIFO.

تلميح: ابحث عن العبارة التي تشير إلى إنشاء كائن جديد.

اشرح باختصار كيف يتم تمثيل طابور الطباعة في الطابعة باستخدام هيكل بيانات الطابور؟

الإجابة: تُضاف أوامر الطباعة التي يرسلها المستخدمون إلى طابور الطباعة. تستخدم الطابعة هذا الطابور لتحديد ترتيب الملفات التي سيتم طباعتها، حيث تتم طباعة الملفات حسب ترتيب وصولها (FIFO).

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

تلميح: فكر في المبدأ الذي يحكم ترتيب أوامر الطباعة.