📝 ملخص الصفحة
📚 عملية الإيداع في الحساب
المفاهيم الأساسية
عملية الإيداع: عملية إضافة المبلغ المدخل إلى رصيد الحساب.
خريطة المفاهيم
```markmap
هياكل البيانات
هياكل بيانات غير بسيطة (Non-Primitive)
هياكل بيانات خطية (Linear)
#### القواميس (Dictionary)
##### طريقة الإنشاء
###### الطريقة الثانية: أمر dict()
##### إنشاء قاموس عن طريق إدخال المستخدم
- استخدام حلقة تكرار (for loop) لجمع البيانات
- استخدام دالة الإدخال (input()) لقراءة المفتاح والقيمة من المستخدم
- إضافة العنصر إلى القاموس باستخدام الصيغة: myDict[key] = value
##### الوصول إلى العناصر
###### الطريقة الأولى: باستخدام المفتاح بين أقواس مربعة []
- مثال: capital1 = ArabGulf["SaudiArabia"]
###### الطريقة الثانية: باستخدام دالة .get()
- مثال: capital2 = ArabGulf.get("Oman")
##### تعديل العناصر
- إعادة تعيين قيمة مفتاح موجود
- مثال: Employees["Saad"] = "Data Scientist"
##### الدوال المستخدمة مع القواميس
###### dictName.get(x)
- ترجع القيمة المرتبطة بالمفتاح x، أو ترجع None إذا لم يوجد المفتاح.
###### dictName.update(x)
- تضيف أزواج عناصر جديدة أو تحدث القيم للمفاتيح الموجودة.
###### dictName.values()
- ترجع جميع القيم الموجودة في القاموس.
###### dictName.keys()
- ترجع جميع المفاتيح الموجودة في القاموس.
###### dictName.clear()
- تحذف جميع العناصر الموجودة في القاموس.
##### حذف العناصر
###### حذف جميع العناصر
- باستخدام دالة `clear()`
- مثال: `ArabGulf.clear()`
- النتيجة: `{}`
###### حذف عنصر محدد
- باستخدام كلمة `del` متبوعة باسم القاموس والمفتاح بين قوسين مربعين
- مثال: `del ArabGulf["Oman"]`
- النتيجة: `{'SaudiArabia': 'Riyadh', 'Bahrain': 'Manama'}`
###### حذف القاموس كاملاً
- باستخدام كلمة `del` متبوعة باسم القاموس فقط
##### استخدامات هياكل البيانات
###### القائمة (List)
- عند الحاجة إلى تغيير عناصر القائمة بشكل متكرر.
###### الصف (Tuple)
- عند الحاجة إلى تخزين بيانات دون الحاجة إلى تغييرها.
###### القاموس (Dictionary)
- عند الحاجة إلى إيجاد ربط منطقي بين (المفتاح: القيمة).
- عند الحاجة للبحث عن بيانات بناءً على مفتاح محدد.
##### مشروع البنك
- استخدام القاموس لحفظ بيانات العميل.
- رقم الحساب هو المفتاح الفريد.
- القيمة المرتبطة بالمفتاح هي قائمة تحتوي على اسم العميل ورصيد الحساب.
###### برمجة عملية الإيداع
- الخطوة 1: طباعة حالة بيانات البنك الحالية.
- الخطوة 2: طلب رقم الحساب من المستخدم.
- الخطوة 3: استخدام دالة `.get()` للوصول إلى بيانات الحساب باستخدام رقمه.
- الخطوة 4: استخراج الرصيد الحالي من القائمة (العنصر الثاني).
- الخطوة 5: طلب مبلغ الإيداع من المستخدم.
- الخطوة 6: حساب الرصيد الجديد (الرصيد الحالي + مبلغ الإيداع).
- الخطوة 7: تحديث قيمة الرصيد في القائمة داخل القاموس.
- الخطوة 8: طباعة حالة بيانات البنك بعد التحديث.
```
نقاط مهمة
- يتم تخزين بيانات الحساب في قاموس (`bankInfo`) حيث يكون المفتاح هو رقم الحساب، والقيمة هي قائمة تحتوي على اسم العميل ثم رصيده.
- تُستخدم دالة `.get()` للوصول إلى بيانات حساب معين باستخدام رقمه.
- عند استخراج الرصيد من القائمة، نستخدم الفهرس `[1]` لأنه العنصر الثاني (الرصيد) وليس الأول (الاسم).
- عملية الإيداع هي عملية إضافة المبلغ المدخل إلى الرصيد الحالي وتحديث القيمة في القاموس.
📋 المحتوى المنظم
📖 محتوى تعليمي مفصّل
نوع: محتوى تعليمي
bankInfo={
نوع: محتوى تعليمي
123:["Ali",15000],
444:["Fahd",13000],
888:["Khalid",11000]
}
نوع: محتوى تعليمي
print(bankInfo)
نوع: محتوى تعليمي
{123: ['Ali', 15000], 444: ['Fahd', 13000], 888: ['Khalid', 11000]}
نوع: محتوى تعليمي
من خلال المقطع البرمجي الآتي ستبرمج عملية الإيداع في الحساب، وهي عملية إضافة المبلغ المدخل إلى رصيد الحساب.
نوع: محتوى تعليمي
bankInfo={
نوع: محتوى تعليمي
123:["Ali",15000],
444:["Fahd",13000],
888:["Khalid",11000]
}
نوع: محتوى تعليمي
print("Bank info state:", bankInfo)
نوع: محتوى تعليمي
#عملية الإيداع
نوع: محتوى تعليمي
accountNo=int(input("Enter an account number: "))
نوع: محتوى تعليمي
account=bankInfo.get(accountNo)
نوع: محتوى تعليمي
balance=account[1]
نوع: محتوى تعليمي
amount=float(input("Enter amount to be deposited: "))
نوع: محتوى تعليمي
newBalance=balance+amount
نوع: محتوى تعليمي
account[1]=newBalance
نوع: محتوى تعليمي
print("Bank info state: ", bankInfo)
نوع: محتوى تعليمي
Bank info state: {123: ['Ali', 15000], 444: ['Fahd', 13000], 888: ['Khalid', 11000]}
Enter an account number: 123
Enter amount to be deposited: 2000
Bank info state: {123: ['Ali', 17000.0], 444: ['Fahd', 13000], 888: ['Khalid', 11000]}
نوع: محتوى تعليمي
وزارة التعليم
Ministry of Education
2025 - 1447
نوع: محتوى تعليمي
باستخدام دالة ( get )
يمكنك تخزين قيم قاموس
bankInfo مع مفتاح
accountNo في المتغير
.account
نوع: محتوى تعليمي
تُخزن القيمة الثانية
للحساب في متغير
balance، وهي ليست
اسم الحساب، ولكنها
رصيد الحساب.
📄 النص الكامل للصفحة
bankInfo={
123:["Ali",15000],
444:["Fahd",13000],
888:["Khalid",11000]
}
print(bankInfo)
{123: ['Ali', 15000], 444: ['Fahd', 13000], 888: ['Khalid', 11000]}
من خلال المقطع البرمجي الآتي ستبرمج عملية الإيداع في الحساب، وهي عملية إضافة المبلغ المدخل إلى رصيد الحساب.
bankInfo={
123:["Ali",15000],
444:["Fahd",13000],
888:["Khalid",11000]
}
print("Bank info state:", bankInfo)
#عملية الإيداع
accountNo=int(input("Enter an account number: "))
account=bankInfo.get(accountNo)
balance=account[1]
amount=float(input("Enter amount to be deposited: "))
newBalance=balance+amount
account[1]=newBalance
print("Bank info state: ", bankInfo)
Bank info state: {123: ['Ali', 15000], 444: ['Fahd', 13000], 888: ['Khalid', 11000]}
Enter an account number: 123
Enter amount to be deposited: 2000
Bank info state: {123: ['Ali', 17000.0], 444: ['Fahd', 13000], 888: ['Khalid', 11000]}
وزارة التعليم
Ministry of Education
2025 - 1447
باستخدام دالة ( get )
يمكنك تخزين قيم قاموس
bankInfo مع مفتاح
accountNo في المتغير
.account
تُخزن القيمة الثانية
للحساب في متغير
balance، وهي ليست
اسم الحساب، ولكنها
رصيد الحساب.
🎴 بطاقات تعليمية للمراجعة
عدد البطاقات: 4 بطاقة لهذه الصفحة
في الكود البرمجي المعطى، ما الغرض من استخدام الدالة `get()` مع القاموس `bankInfo`؟
- أ) لإنشاء مفتاح جديد في القاموس وإضافة قيمة له.
- ب) لجلب القيمة المرتبطة بمفتاح معين (رقم الحساب) من القاموس.
- ج) لحذف مفتاح معين وقيمته من القاموس.
- د) لطباعة جميع مفاتيح القاموس وقيمه.
الإجابة الصحيحة: b
الإجابة: لجلب القيمة المرتبطة بمفتاح معين (رقم الحساب) من القاموس.
الشرح: 1. القاموس `bankInfo` يخزن بيانات الحسابات، حيث المفتاح هو رقم الحساب (مثل 123).
2. القيمة هي قائمة تحتوي على اسم صاحب الحساب ورصيده.
3. الدالة `get(accountNo)` تستخدم للبحث عن القيمة المرتبطة بالمفتاح `accountNo`.
4. إذا وجد المفتاح، تُرجع القيمة (القائمة). إذا لم يوجد، تُرجع `None`.
تلميح: تذكر أن القواميس تخزن البيانات على شكل أزواج مفتاح-قيمة.
التصنيف: مفهوم جوهري | المستوى: سهل
في الكود البرمجي لعميلة الإيداع، ما الذي يمثله العنصر `account[1]`؟
- أ) اسم صاحب الحساب.
- ب) رقم الحساب.
- ج) رصيد الحساب الحالي.
- د) المبلغ المراد إيداعه.
الإجابة الصحيحة: c
الإجابة: رصيد الحساب الحالي.
الشرح: 1. المتغير `account` يحصل على القيمة من القاموس باستخدام `get(accountNo)`.
2. هذه القيمة هي قائمة مثل `['Ali', 15000]`.
3. في بايثون، فهرسة القوائم تبدأ من الصفر.
4. لذلك، `account[0]` يشير إلى اسم الحساب ('Ali').
5. و `account[1]` يشير إلى الرصيد (15000).
تلميح: القيمة المسترجعة من القاموس هي قائمة. ما هو ترتيب العناصر في هذه القائمة؟
التصنيف: مفهوم جوهري | المستوى: سهل
ما هي الخطوة البرمجية الأساسية التي تمثل جوهر عملية 'الإيداع' في المثال المعطى؟
- أ) طباعة حالة معلومات البنك قبل وبعد العملية.
- ب) قراءة رقم الحساب من المستخدم والتحقق من وجوده.
- ج) إضافة المبلغ المدخل (`amount`) إلى الرصيد الحالي (`balance`) وتخزين النتيجة في متغير جديد (`newBalance`).
- د) تحويل نوع بيانات المدخلات من نص إلى أرقام.
الإجابة الصحيحة: c
الإجابة: إضافة المبلغ المدخل (`amount`) إلى الرصيد الحالي (`balance`) وتخزين النتيجة في متغير جديد (`newBalance`).
الشرح: 1. عملية الإيداع تعني زيادة رصيد الحساب.
2. يتم قراءة المبلغ المراد إيداعه وتخزينه في متغير `amount`.
3. يتم قراءة الرصيد الحالي وتخزينه في متغير `balance`.
4. الخطوة الأساسية هي إجراء العملية الحسابية: `newBalance = balance + amount`.
5. هذه الخطوة هي التي تُحدث قيمة الرصيد.
تلميح: فكر في العملية الحسابية التي تغير قيمة الرصيد.
التصنيف: صيغة/خطوات | المستوى: متوسط
بعد تنفيذ كود الإيداع للحساب 123 بمبلغ 2000، ما هي القيمة الجديدة المخزنة في `bankInfo[123]`؟
- أ) ['Ali', 15000]
- ب) ['Ali', 17000]
- ج) ['Ali', 17000.0]
- د) ['Fahd', 13000]
الإجابة الصحيحة: c
الإجابة: ['Ali', 17000.0]
الشرح: 1. الحساب 123 له رصيد ابتدائي 15000.
2. المبلغ المودع هو 2000.
3. الرصيد الجديد = 15000 + 2000 = 17000.
4. لاحظ أن `amount` كان من نوع `float`، لذا الناتج `17000.0`.
5. القائمة المخزنة في القاموس تحت المفتاح 123 يتم تحديثها لتصبح `['Ali', 17000.0]`.
تلميح: انظر إلى نتيجة الطباعة النهائية في المثال.
التصنيف: سؤال اختبار | المستوى: سهل