مفكرة جوبيتر: عمليات المكدس والأخطاء - كتاب الذكاء الإصطناعي - الصف 12 - الفصل 1 - المملكة العربية السعودية

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

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

الدرس: عمليات المكدس والأخطاء في مفكرة جوبيتر

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

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

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

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

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

📝 ملخص الصفحة

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

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

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

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

لتشاهد المثال في الشكل 1.15 في مفكرة جوبيتر: 1. أنشئ المكدس لتخزين مجموعة من الأرقام (45 ،32 ،21 ،1). 2. استخدم عملية حذف عنصر (Pop) من المكدس مرتين لحذف العنصرين الأخيرين منه. 3. استخدم عملية إضافة عنصر (Push) إلى المكدس لإضافة عنصر جديد إليه. myStack=[1,21,32,45] print("Initial stack: ", myStack) print(myStack.pop()) print(myStack.pop()) print("The new stack after pop: ", myStack) myStack.append(78) print("The new stack after push: ", myStack) نستخدم الدالة print(myStack.pop()) لعرض القيم المسترجعة من دالة myStack.Pop(). Initial stack: [1, 21, 32, 45] 45 32 The new stack after pop: [1, 21] The new stack after push: [1, 21, 78] myStack=[1,21,32,45] print("Initial stack: ", myStack) a=len(myStack) print("size of stack",a) # empty the stack for i in range(a): myStack.pop() print(myStack) myStack.pop() تستخدم الدالة len لعرض طول المكدس. يستخدم هذا الأمر لحذف كل العناصر من المكدس. Initial stack: [1, 21, 32, 45] size of stack 4 [] --------------------------------------------------------------------------- IndexError Input In [3], in <cell line: 9>() 7 myStack.pop() 8 print(myStack) ----> 9 myStack.pop() IndexError: pop from empty list يظهر الخطأ؛ لأن المكدس فارغ وأنت كتبت أمر حذف عنصر منه. --- SECTION: خطأ الفهرس IndexError --- ستلاحظ ظهور خطأ عندما كتبت أمر حذف عنصر من المكدس الفارغ وتسبب هذا في فيض المكدس (Stack Underflow). عليك دوما التحقق من وجود عناصر في المكدس قبل محاولة حذف عنصر منه. وزارة التعليم Ministry of Education 2023 - 1447 30 --- VISUAL CONTEXT --- **IMAGE**: شعار وزارة التعليم Description: شعار وزارة التعليم السعودية يتضمن اسم الوزارة باللغتين العربية والإنجليزية وتاريخ 2023 - 1447. Context: شعار الجهة الناشرة للكتاب.

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

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

ماذا تمثل عملية `pop()` في سياق هياكل البيانات مثل المكدس؟

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

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

تلميح: فكر في وظيفة هذه العملية عندما تريد إزالة أحدث عنصر تم إضافته.

ماذا تمثل عملية `append()` (أو `push()`) عند استخدامها مع المكدس؟

الإجابة: عملية `append()` (أو `push()`) تُستخدم لإضافة عنصر جديد إلى نهاية (أعلى) المكدس.

الشرح: في المكدس، `append()` أو `push()` هي العملية التي تضيف عنصرًا جديدًا إلى قمة المكدس، مما يغير حجمه وطوله.

تلميح: عندما تريد وضع شيء جديد في قمة شيء موجود، ماذا تفعل؟

ما هو خطأ `IndexError: pop from empty list` الذي يمكن أن يحدث عند التعامل مع المكدس؟

الإجابة: يحدث هذا الخطأ عندما تحاول استدعاء عملية `pop()` على مكدس لا يحتوي على أي عناصر (فارغ).

الشرح: المكدس الفارغ لا يحتوي على عناصر ليتم حذفها، لذا فإن محاولة استخدام `pop()` عليها يؤدي إلى هذا الخطأ، ويُعرف هذا الفيض السفلي للمكدس (Stack Underflow).

تلميح: تخيل أنك تحاول أخذ شيء من صندوق فارغ، ماذا سيكون رد فعل الصندوق؟

ما هي الوظيفة التي تستخدم لقياس عدد العناصر الموجودة حاليًا في المكدس؟

الإجابة: تُستخدم الدالة `len()` لقياس وعرض طول المكدس، أي عدد العناصر التي يحتوي عليها.

الشرح: الدالة `len()` هي دالة قياسية في العديد من لغات البرمجة تُستخدم لمعرفة عدد العناصر في تسلسل أو مجموعة، بما في ذلك القوائم التي تمثل المكدس.

تلميح: إذا كنت تريد معرفة كم عدد الأشياء في سلة، فما الأداة التي قد تستخدمها؟

كيف يمكن التحقق من وجود عناصر في المكدس قبل محاولة حذف عنصر منه لتجنب خطأ `IndexError`؟

الإجابة: يمكن التحقق من وجود عناصر عن طريق مقارنة طول المكدس بالقيمة صفر، أو باستخدام شرط للتحقق مما إذا كان المكدس ليس فارغًا قبل استدعاء `pop()`.

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

تلميح: إذا كنت تريد التأكد من أن الصندوق ليس فارغًا قبل أن تحاول أخذ شيء منه، ما الذي ستفكر فيه؟