البرمجة والذكاء الاصطناعي · الصف الأول الثانوي · الترم الأول
البرمجة التطبيقية (1): المصفوفات (القوائم) أحادية وثنائية الأبعاد
المصفوفة (القائمة) في Python وتعريفها، والعناصر وأرقامها (index) التي تبدأ من صفر، وإضافة عنصر بالدالة append، والمرور على العناصر بحلقة for، وإيجاد أصغر قيمة، والمصفوفة ثنائية الأبعاد والوصول إلى عناصرها.
آخر تحديث: · كيف نراجع المحتوى
مقدمة
- الوحدة الثانية عشرة: البرمجة — الموضوع 12-4
لو أردت تخزين درجات 40 طالبًا، فهل ستنشئ 40 متغيرًا: d1 وd2 و…؟ الحل الأذكى هو المصفوفة (القائمة): متغير واحد يحمل كل الدرجات بالترتيب، ونصل إلى أي درجة برقم مكانها، ونعالجها كلها بحلقة for واحدة.
أهداف التعلم
- أن تعرّف المصفوفة (القائمة) وتنشئها في Python.
- أن تصل إلى عنصر برقمه (index) مع مراعاة أن الترقيم يبدأ من 0.
- أن تضيف عناصر إلى نهاية المصفوفة بالدالة
append. - أن تعالج عناصر المصفوفة بحلقة
for، مثل إيجاد المجموع أو أصغر قيمة. - أن تتعامل مع المصفوفة ثنائية الأبعاد.
شرح الدرس
المصفوفة (القائمة)
المصفوفة أو القائمة (Array / list): مجموعة من عناصر البيانات مرتبة بالتسلسل، تسمح بإدارة البيانات بشكل جماعي.
week = ['Sat', 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri']
number = [7, 22, 11, 34, 17]
العناصر وأرقامها
- العنصر (Element): كل قيمة داخل المصفوفة.
- رقم العنصر (Index): رقم مكانه، ويُكتب بين قوسين مربعين بعد اسم المصفوفة:
number[2]. - الترقيم يبدأ من 0 وليس من 1.
| العنصر | 7 | 22 | 11 | 34 | 17 |
|---|---|---|---|---|---|
| الرقم (index) | 0 | 1 | 2 | 3 | 4 |
فـ number[0] هو 7، وnumber[2] هو 11، وآخر عنصر number[4] هو 17.
إضافة عنصر: append
a = []
a.append(1)
a.append(4)
a.append(9)
print(a)
ناتج التنفيذ: [1, 4, 9]. المصفوفة [] فارغة، وappend تضيف العنصر إلى نهايتها.
المرور على العناصر بحلقة for
باستخدام متغير مثل i رقمًا للعنصر نعالج العناصر واحدًا تلو الآخر:
a = [7, 22, 11, 34, 17]
for i in range(0, 5, 1):
print(a[i])
يعرض العناصر الخمسة بالترتيب؛ لأن i تأخذ القيم 0 إلى 4.
المصفوفة ثنائية الأبعاد
المصفوفة ثنائية الأبعاد: تدير البيانات في صفوف وأعمدة، ونحدد العنصر برقمين: a[i][j] حيث i رقم الصف وj رقم العمود، وكلاهما يبدأ من 0.
a = [['A', 'B', 'C'],
['D', 'E', 'F']]
print(a[0][0])
print(a[1][2])
ناتج التنفيذ: A (الصف 0، العمود 0) ثم F (الصف 1، العمود 2).
أمثلة وتطبيقات
مثال 1: إذا كانت a = [57, 16, 29, 44] فإن print(a[2]) تعرض 29 (العنصر الثالث).
مثال 2: إذا كانت b = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] فإن print(b[2][1]) تعرض 8 (الصف الثالث، العمود الثاني).
مثال 3 (مجموع الدرجات):
s = [12, 7, 20, 15]
total = 0
for i in range(0, 4):
total = total + s[i]
print(total)
ناتج التنفيذ: 54.
مثال 4 (أصغر قيمة):
a = [34, 52, 11, 40, 17]
min_value = a[0]
for i in range(1, 5, 1):
if a[i] < min_value:
min_value = a[i]
print(min_value)
الفكرة: نفترض أن أول عنصر هو الأصغر، ثم نقارن به بقية العناصر بالترتيب، وكلما وجدنا عنصرًا أصغر حدّثنا القيمة. ناتج التنفيذ: 11.
| i | a[i] | هل a[i] أصغر؟ | min_value بعد المقارنة |
|---|---|---|---|
| البداية | 34 | ||
| 1 | 52 | لا | 34 |
| 2 | 11 | نعم | 11 |
| 3 | 40 | لا | 11 |
| 4 | 17 | لا | 11 |
ملاحظات مهمة
- أشهر خطأ للمبتدئين: اعتبار أول عنصر رقمه 1. تذكر أن أول عنصر رقمه 0، وآخر عنصر في مصفوفة من عناصر رقمه .
- طلب عنصر برقم غير موجود (مثل
number[5]في مصفوفة من 5 عناصر) يسبب خطأ. - في المصفوفة ثنائية الأبعاد: الرقم الأول للصف والثاني للعمود.
- في مثال أصغر قيمة بدأت الحلقة من 1 لأن العنصر رقم 0 استُخدم قيمةً ابتدائية.
المفاهيم الأساسية
- المصفوفة (القائمة): عناصر مرتبة بالتسلسل داخل
[ ]. - رقم العنصر (index) يبدأ من 0، ونصل إلى العنصر بـ
name[index]. appendتضيف عنصرًا إلى نهاية المصفوفة.- حلقة
forمعa[i]تعالج العناصر واحدًا تلو الآخر. - المصفوفة ثنائية الأبعاد:
a[i][j]، الصف ثم العمود.
ملخص الدرس
المصفوفة (القائمة) تخزن مجموعة بيانات مرتبة في متغير واحد، ونصل إلى كل عنصر برقمه الذي يبدأ من صفر. ونضيف العناصر إلى نهايتها بالدالة append، ونمر على عناصرها بحلقة for لإيجاد المجموع أو أصغر قيمة مثلًا. أما المصفوفة ثنائية الأبعاد فتنظم البيانات في صفوف وأعمدة، ونحدد عنصرها برقمي الصف والعمود.
أسئلة للتدريب
- إذا كانت
a = [1, 4, 9, 16, 25]فما ناتجprint(a[3])؟ - ما ناتج البرنامج:
a = []ثمa.append(8)ثمa.append(28)ثمprint(a[1])؟ - في المصفوفة
[['A', 'B', 'C', 'D', 'E'], ['F', 'G', 'H', 'I', 'J'], ['K', 'L', 'M', 'N', 'O']]ما قيمة العنصر[2][1]؟ - عدّل برنامج أصغر قيمة ليجد أكبر قيمة في المصفوفة.
- اكتب برنامجًا يعرض كل عناصر المصفوفة
weekباستخدام حلقةfor.