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

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

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

الدرس: تمرينات هياكل البيانات الثابتة والمتغيرة والقوائم المترابطة

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

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

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

نوع المحتوى: تمارين وأسئلة

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

📝 ملخص الصفحة

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

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

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

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

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

{ "language": "ar", "direction": "rtl", "page_context": { "page_title": "تمرينات", "page_type": "exercises", "main_topics": [ "Data Structures", "Python Programming", "Linked Lists", "Fixed Data Structures", "Variable Data Structures" ], "headers": [ "تمرينات", "صحيحة", "خاطئة", "هياكل البيانات الثابتة", "هياكل البيانات المتغيرة" ], "has_questions": true, "has_formulas": false, "has_examples": false, "has_visual_elements": true }, "sections": [ { "order": 1, "type": "title", "content_classification": "METADATA", "question_indicators": { "has_question_words": false, "has_numbering": false, "has_multiple_choice": false, "has_instruction_words": false }, "title": "تمرينات", "content": "تمرينات" }, { "order": 2, "type": "exercise", "content_classification": "QUESTION", "question_indicators": { "has_question_words": true, "has_numbering": true, "has_multiple_choice": false, "has_instruction_words": true }, "title": "1", "content": "حدد الجملة الصحيحة والجملة الخاطئة فيما يلي:\n1. لغة البايثون تعرف هياكل البيانات غير الأولية.\n2. هياكل البيانات الخطية تخزن عناصر البيانات في ترتيب عشوائي فقط.\n3. إضافة العناصر وحذفها من القائمة المترابطة (Linked List) أبطأ من القائمة (List).\n4. يمكن الوصول إلى العناصر في القائمة باستخدام رقم الفهرس فقط.\n5. يمكن تغيير حجم هيكل البيانات الثابتة أثناء تنفيذ البرنامج." }, { "order": 3, "type": "exercise", "content_classification": "QUESTION", "question_indicators": { "has_question_words": true, "has_numbering": true, "has_multiple_choice": false, "has_instruction_words": true }, "title": "2", "content": "حدد الاختلافات بين هياكل البيانات الثابتة والمتغيرة." }, { "order": 4, "type": "exercise", "content_classification": "QUESTION", "question_indicators": { "has_question_words": true, "has_numbering": true, "has_multiple_choice": false, "has_instruction_words": true }, "title": "3", "content": "اكتب مثالين لاستخدامات القوائم المترابطة." }, { "order": 5, "type": "metadata", "content_classification": "METADATA", "question_indicators": { "has_question_words": false, "has_numbering": false, "has_multiple_choice": false, "has_instruction_words": false }, "title": null, "content": "وزارة التعليم\nMinistry of Education\n2025 - 1447\n50" } ], "visual_elements": [ { "type": "table", "title": "جدول لمقارنة هياكل البيانات الثابتة والمتغيرة", "description": "A table with two columns for comparing fixed and variable data structures, with empty rows for students to fill in answers.", "axes_labels": { "x_axis": null, "y_axis": null }, "data_description": "The table is empty, designed for students to list differences between fixed and variable data structures.", "key_values": [], "numeric_data": null, "table_structure": { "headers": [ "هياكل البيانات الثابتة", "هياكل البيانات المتغيرة" ], "rows": [ [ "EMPTY", "EMPTY" ], [ "EMPTY", "EMPTY" ], [ "EMPTY", "EMPTY" ], [ "EMPTY", "EMPTY" ], [ "EMPTY", "EMPTY" ] ], "empty_cells": "All cells are empty, to be filled by the student.", "calculation_context": "Comparison and contrast of properties of fixed vs. variable data structures." }, "educational_context": "Provides a structured format for students to list differences between fixed and variable data structures as requested by Question 2.", "estimated": false } ] }

✅ حلول أسئلة الكتاب الرسمية

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

سؤال 1: حدد الجملة الصحيحة والجملة الخاطئة فيما يلي: 1. لغة البايثون تُعرّف هياكل البيانات غير الأولية. 2. هياكل البيانات الخطية تُخزّن عناصر البيانات في ترتيب عشوائي فقط. 3. إضافة العناصر وحذفها من القائمة المترابطة (Linked List) أبطأ من القائمة (List). 4. يمكن الوصول إلى العناصر في القائمة باستخدام رقم الفهرس فقط. 5. يُمكن تغيير حجم هيكل البيانات الثابتة أثناء تنفيذ البرنامج.

الإجابة: س1: 1) صح 2) خطأ 3) خطأ 4) صح 5) خطأ

خطوات الحل:

  1. **الشرح:** لنفهم هذا السؤال، فهو يتعلق بمفاهيم هياكل البيانات في البرمجة. سنفحص كل جملة على حدة: 1. لغة البايثون تُعرّف هياكل البيانات غير الأولية: هياكل البيانات غير الأولية هي التي تحتوي على مجموعة من العناصر مثل القوائم والمجموعات. لغة بايثون تدعم بالفعل تعريف هذه الهياكل، لذا هذه الجملة صحيحة. 2. هياكل البيانات الخطية تُخزّن عناصر البيانات في ترتيب عشوائي فقط: هياكل البيانات الخطية مثل المصفوفات والقوائم المترابطة تُخزّن العناصر بترتيب تسلسلي (واحد تلو الآخر)، وليس عشوائياً، لذا هذه الجملة خاطئة. 3. إضافة العناصر وحذفها من القائمة المترابطة (Linked List) أبطأ من القائمة (List): في القائمة المترابطة، يمكن إضافة أو حذف عناصر من البداية أو النهاية بسرعة دون إعادة ترتيب كل العناصر، بينما في القائمة العادية (مثل المصفوفة) قد يتطلب ذلك نقل عناصر كثيرة، لذا هذه الجملة خاطئة. 4. يمكن الوصول إلى العناصر في القائمة باستخدام رقم الفهرس فقط: في معظم لغات البرمجة، تُستخدم الفهارس (الأرقام) للوصول إلى عناصر القائمة مباشرة، لذا هذه الجملة صحيحة. 5. يُمكن تغيير حجم هيكل البيانات الثابتة أثناء تنفيذ البرنامج: هياكل البيانات الثابتة مثل المصفوفات ذات الحجم الثابت لا يمكن تغيير حجمها بعد التخصيص، لذا هذه الجملة خاطئة. إذن الإجابة هي: **1) صح 2) خطأ 3) خطأ 4) صح 5) خطأ**

سؤال 2 (الثابتة): حدد الاختلافات بين هياكل البيانات الثابتة والمتغيرة.

الإجابة: س 2 (الثابتة): - حجمها ثابت لا يتغير - تخصيص الذاكرة مسبقًا - الإضافة والحذف أصعب - الوصول أسرع (فهرسة)

خطوات الحل:

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

سؤال 2 (المتغيرة): حدد الاختلافات بين هياكل البيانات الثابتة والمتغيرة.

الإجابة: س 2 (المتغيرة): - يمكن تغيير الحجم - تخصيص الذاكرة ديناميكيًا - الإضافة والحذف أسهل - الوصول أبطأ (تسلسلي)

خطوات الحل:

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

سؤال 3: اكتب مثالين لاستخدامات القوائم المترابطة.

الإجابة: س3: 1) تنفيذ الطوابير (Queue) 2) التنقل بين صفحات المتصفح

خطوات الحل:

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

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

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

سؤال 1: حدد الجملة الصحيحة والجملة الخاطئة فيما يلي:

الإجابة الصحيحة: انظر الأسئلة الفرعية

الشرح: هذا سؤال رئيسي يحتوي على أسئلة فرعية

تلميح: راجع الأسئلة الفرعية أدناه

سؤال 2: حدد الاختلافات بين هياكل البيانات الثابتة والمتغيرة

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

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

الشرح: الهياكل الثابتة لها حجم محدد مسبقاً ولا يمكن تغييره، بينما الهياكل المتغيرة يمكن تغيير حجمها ديناميكياً أثناء التنفيذ

تلميح: فكر في المرونة والسرعة واستخدام الذاكرة

سؤال 3: اكتب مثالين لاستخدامات القوائم المترابطة

  • أ) 1. تنفيذ المكدس (Stack) والطابور (Queue). 2. إدارة الذاكرة في أنظمة التشغيل
  • ب) 1. تخزين الصور الرقمية. 2. معالجة النصوص فقط
  • ج) 1. تنفيذ قواعد البيانات العلائقية. 2. تخزين الملفات في القرص الصلب
  • د) 1. تنفيذ الرسوم البيانية ثلاثية الأبعاد. 2. تشفير البيانات الأمني

الإجابة الصحيحة: 1. تنفيذ المكدس (Stack) والطابور (Queue). 2. إدارة الذاكرة في أنظمة التشغيل

الشرح: القوائم المترابطة تستخدم في هياكل البيانات الديناميكية وتطبيقات تتطلب إضافة وحذف متكرر

تلميح: فكر في التطبيقات التي تتطلب مرونة في حجم البيانات

سؤال 1: لغة البايثون تعرف هياكل البيانات غير الأولية

الإجابة الصحيحة: صحيحة

الشرح: بايثون تدعم هياكل البيانات غير الأولية مثل القوائم والقواميس والمجموعات

تلميح: فكر في أنواع البيانات في بايثون

سؤال 1: هياكل البيانات الخطية تخزن عناصر البيانات في ترتيب عشوائي فقط

الإجابة الصحيحة: خاطئة

الشرح: هياكل البيانات الخطية تخزن العناصر في ترتيب متسلسل وليس عشوائي

تلميح: ما هي خاصية الهياكل الخطية؟

سؤال 1: إضافة العناصر وحذفها من القائمة المترابطة (Linked List) أبطأ من القائمة (List)

الإجابة الصحيحة: خاطئة

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

تلميح: قارن بين أداء القوائم المترابطة والقوائم العادية

سؤال 1: يمكن الوصول إلى العناصر في القائمة باستخدام رقم الفهرس فقط

الإجابة الصحيحة: صحيحة

الشرح: في القوائم العادية (List)، يتم الوصول للعناصر باستخدام الفهرس (index)

تلميح: كيف تصل إلى عنصر في قائمة بايثون؟

سؤال 1: يمكن تغيير حجم هيكل البيانات الثابتة أثناء تنفيذ البرنامج

الإجابة الصحيحة: خاطئة

الشرح: هياكل البيانات الثابتة لا يمكن تغيير حجمها أثناء التنفيذ، على عكس الهياكل المتغيرة

تلميح: ما الفرق بين الهياكل الثابتة والمتغيرة؟

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

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

ما هي الميزة الرئيسية التي تميز لغة البايثون فيما يتعلق بتعريف هياكل البيانات؟

الإجابة: لغة البايثون تعرف هياكل البيانات غير الأولية، مما يمنحها مرونة في التعامل مع البيانات المعقدة.

الشرح: تتعامل لغات البرمجة مع أنواع مختلفة من البيانات. هياكل البيانات غير الأولية (Non-primitive data structures) هي هياكل تتكون من هياكل بيانات أولية (Primitive data structures) أو هياكل بيانات غير أولية أخرى، وتوفر طرقًا أكثر تعقيدًا لتنظيم وتخزين البيانات. لغة البايثون تدعم تعريف وإنشاء هذه الهياكل.

تلميح: ابحث عن نوع البيانات الذي تتجاوز فيه البايثون الأنواع الأساسية مثل الأرقام والنصوص.

لماذا يعتبر وصف هياكل البيانات الخطية بأنها تخزن عناصر البيانات في ترتيب عشوائي فقط خاطئًا؟

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

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

تلميح: فكر في معنى كلمة 'خطية' وكيف تشير إلى الترتيب.

فيما يتعلق بعمليات الإضافة والحذف، ما هو الفارق في الأداء بين القائمة المترابطة (Linked List) والقائمة (List) في البايثون؟

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

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

تلميح: قارن كيفية تخزين العناصر في كل هيكل ومدى سهولة تعديل المؤشرات أو إعادة ترتيب العناصر.

ما هي الطريقة الأساسية للوصول إلى العناصر في بنية بيانات معينة، وما هي البنية التي تعتمد على هذه الطريقة حصريًا؟

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

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

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

ما هو التحدي الرئيسي عند التعامل مع هياكل البيانات الثابتة من حيث تغيير حجمها؟

الإجابة: لا يمكن تغيير حجم هيكل البيانات الثابتة أثناء تنفيذ البرنامج؛ يجب تحديد حجمه مسبقًا.

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

تلميح: فكر في معنى كلمة 'ثابتة' واربطها بقدرة الهيكل على التكيف مع التغيرات.