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

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

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

الدرس: الطابور في لغة البايثون

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

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

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

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

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

📝 ملخص الصفحة

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

يتم عرض جدولين توضيحيين: جدول 1.3 يصف طرائق الطابور مثل `listName.append(x)` لإضافة العنصر `x` و`listName.pop(0)` لحذف العنصر الأول، بينما جدول 1.4 يقارن بين `listName.pop()` للمكدس (يحذف العنصر الأخير) و`listName.pop(0)` للطابور (يحذف العنصر الأول).

يقدم المحتوى مثالاً تطبيقياً لإنشاء طابور يحتوي على الأرقام 45، 32، 21، 1، ثم حذف العنصرين الأولين باستخدام `pop(0)` مرتين، وإضافة عنصر جديد باستخدام `append`. كما يوضح شكل 1.25 هذا المثال بصرياً لتعزيز الفهم.

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

الـطـابـور في لغة البايثون Queue in Pythonيمكن تمثيل الطابور بعدة طرائق متنوعة في لغة البايثون منها القوائم (Lists). ويرجع ذلك إلى حقيقة أن القائمة تمثل مجموعة من العناصر الخطية، كما يمكن إضافة عنصر في نهاية القائمة وحذف عنصر من بداية القائمة. سنتعلم فيما يلي الصيغ العامة لبعض العمليات التي يمكن تنفيذها على الطابور:--- SECTION: جدول 1.3: طرائق الطابور --- جدول 1.3: طرائق الطابور تُستخدم طريقة ()listName.pop لكل من هياكل بيانات المكدس والطابور. عندما تُستخدم مع المكدس، لا تتطلب الطريقة أي مُعامل. بينما تتطلب الطريقة إضافة صفر إلى المُعامل عندما تُستخدم مع الطابور: (0)listName.pop. الفرق بين الدالتين موضح في الجدول 1.4 أدناه.--- SECTION: جدول 1.4: طريقة ()listName.pop مقابل طريقة (0)listName.pop --- جدول 1.4: طريقة ()listName.pop مقابل طريقة (0)listName.popسنستعرض لك مثالاً على تطبيق الطابور في لغة البايثون: • أنشئ طابورًا لتخزين مجموعة من الأرقام (45 ،32 ،21 ،1). • استخدم عملية حذف عنصر من الطابور مرتين لحذف العنصرين الأولين منه. • استخدم عملية إضافة عنصر إلى الطابور لإضافة عنصر جديد إليه.--- SECTION: شكل 1.25: مثال توضيحي لمفهوم الطابور --- شكل 1.25: مثال توضيحي لمفهوم الطابور2025 - 1447--- VISUAL CONTEXT --- **TABLE**: جدول 1.3: طرائق الطابور Description: Table describing methods for queue operations in Python. Table Structure: Headers: الطريقة | الوصف Rows: Row 1: listName.append(x) | تضيف العنصر x إلى القائمة التي تمثل الطابور. Row 2: listName.pop(0) | تحذف العنصر الأول من القائمة. Calculation needed: N/A Context: Illustrates basic Python list methods used to implement queue operations (enqueue and dequeue from front).**TABLE**: جدول 1.4: طريقة ()listName.pop مقابل طريقة (0)listName.pop Description: Table comparing two list.pop methods and their effects on data structures. Table Structure: Headers: الطريقة | الوصف Rows: Row 1: listName.pop() | إذا كان مُعامل الدالة فارغًا، يُحذف العنصر الأخير من نهاية القائمة التي تمثل المكدس. Row 2: listName.pop(0) | إذا كان مُعامل الدالة صفرًا، يُحذف العنصر الأول من القائمة التي تمثل الطابور. Calculation needed: N/A Context: Clarifies the difference between pop() (used for stacks, removes last element) and pop(0) (used for queues, removes first element).**DIAGRAM**: شكل 1.25: مثال توضيحي لمفهوم الطابور Description: A series of five diagrams illustrating the operations of a queue (enqueue and dequeue) using a visual representation of list elements and pointers. Key Values: Initial elements: 1, 21, 32, 45, Deleted elements: 1, 21, Added element: 78, Final elements: 32, 45, 78 Context: Visually demonstrates the step-by-step process of queue operations: initialization, two dequeue operations from the front, and one enqueue operation to the rear.

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

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

كيف يمكن تمثيل هيكل بيانات الطابور (Queue) في لغة بايثون باستخدام القوائم (Lists)؟

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

الشرح: القوائم في بايثون تدعم عمليات مثل append (إضافة في النهاية) و pop(0) (حذف من البداية)، وهي العمليات الأساسية المطلوبة لتمثيل الطابور.

تلميح: فكر في الخصائص الأساسية التي تجعل القائمة مناسبة لمحاكاة الطابور.

ما هي العملية الأساسية في بايثون التي تُستخدم لإضافة عنصر إلى الطابور عند تمثيله بقائمة؟

الإجابة: تُستخدم طريقة `listName.append(x)` لإضافة العنصر `x` إلى نهاية القائمة التي تمثل الطابور.

الشرح: عملية الإضافة إلى الطابور (Enqueue) تتم بإضافة العنصر الجديد إلى نهاية الطابور. في تمثيل القائمة، يتم ذلك باستخدام `.append()`.

تلميح: تذكر العملية التي تضيف شيئاً في نهاية تسلسل.

ما هي الطريقة المستخدمة لحذف العنصر الأول من الطابور عند تمثيله بقائمة في بايثون، وما الفرق بينها وبين طريقة `pop()` بدون معامل؟

الإجابة: تُستخدم طريقة `listName.pop(0)` لحذف العنصر الأول من القائمة التي تمثل الطابور. بينما طريقة `listName.pop()` بدون معامل تحذف العنصر الأخير من القائمة (وهي تستخدم للمكدس).

الشرح: الطابور يعمل بمبدأ "الأول يدخل، الأول يخرج" (FIFO). لذلك، يجب حذف العنصر الأول. `pop(0)` يحقق ذلك، بينما `pop()` بدون معامل يحذف العنصر الأخير (مستخدم للمكدس FIFO).

تلميح: فكر في الترتيب الذي يتم به سحب العناصر من الطابور، وكيف يؤثر المعامل في الدالة `pop()`.

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

الإجابة: 1. إنشاء طابور (قائمة) بالأرقام (45، 32، 21، 1). 2. استخدام `pop(0)` مرتين لحذف العنصرين الأولين (1 ثم 21). 3. استخدام `append(x)` لإضافة عنصر جديد (مثلاً 78).

الشرح: يبدأ الطابور بـ [45, 32, 21, 1]. بعد حذف 1، يصبح [45, 32, 21]. بعد حذف 21، يصبح [45, 32]. ثم إضافة 78، يصبح [45, 32, 78]. (ملاحظة: المثال في شكل 1.25 استخدم القيم 1، 21، 32، 45 كأمثلة للعناصر، وعمليات الحذف والإضافة أسفرت عن العناصر المذكورة).

تلميح: تتبع تسلسل العمليات الموضحة في المثال: الإنشاء، ثم الإزالة، ثم الإضافة.