استخدام حلقة `while` تستمر طالما يوجد سطر (`while grade:`)
داخل الحلقة:
- تحويل السطر النصي إلى عدد صحيح (`int(grade)`)
- زيادة العداد بمقدار 1
- إضافة الدرجة إلى المجموع
- قراءة السطر التالي
خارج الحلقة:
- طباعة المجموع
- حساب المتوسط (المجموع ÷ العدد)
- طباعة المتوسط
- إغلاق الملف
##### مثال عملي
`gr=open("grades.txt", "r")`
`sumGrades=0`
`grade=gr.readline()`
`count=0`
`while grade:`
` gradeInt=int(grade)`
` count=count+1`
` sumGrades=sumGrades+gradeInt`
` grade=gr.readline()`
`print("The sum is: ",sumGrades)`
`average=sumGrades/count`
`print("The average is: ",average)`
`gr.close()`
```
نقاط مهمة
شرط الحلقة `while grade:` يضمن قراءة جميع محتويات الملف وينتهي بانتهائها.
لحساب معدل (متوسط) الدرجات، يجب أولاً حساب مجموعها.
مثال على مخرجات البرنامج لدرجات: 85، 90، 93، 87، 98 هو:
- المجموع: 453
- المتوسط: 90.6
📋 المحتوى المنظم
📖 محتوى تعليمي مفصّل
نوع: محتوى تعليمي
gr=open("grades.txt", "r")
sumGrades=0
grade=gr.readline()
count=0
while grade:
# حول النص إلى عدد صحيح
gradeInt=int(grade)
print(gradeInt)
# احسب الدرجات
count=count+1
sumGrades=sumGrades+gradeInt
grade=gr.readline()
print("The sum is: ",sumGrades)
average=sumGrades/count
print("The average is: ",average)
gr.close()
نوع: محتوى تعليمي
يتأكد هذا الشرط من قراءة كافة محتوى الملف وينتهي بانتهاء محتويات الملف.
نوع: محتوى تعليمي
لحساب معدل الدرجات، يجب حساب مجموعها أولاً.
نوع: محتوى تعليمي
85
90
93
87
98
The sum is: 453
The average is: 90.6
نوع: METADATA
210
نوع: NON_EDUCATIONAL
وزارة التعليم
Ministry of Education
2025 - 1447
📄 النص الكامل للصفحة
gr=open("grades.txt", "r")
sumGrades=0
grade=gr.readline()
count=0
while grade:
# حول النص إلى عدد صحيح
gradeInt=int(grade)
print(gradeInt)
# احسب الدرجات
count=count+1
sumGrades=sumGrades+gradeInt
grade=gr.readline()
print("The sum is: ",sumGrades)
average=sumGrades/count
print("The average is: ",average)
gr.close()
يتأكد هذا الشرط من قراءة كافة محتوى الملف وينتهي بانتهاء محتويات الملف.
لحساب معدل الدرجات، يجب حساب مجموعها أولاً.
85
90
93
87
98
The sum is: 453
The average is: 90.6
210
وزارة التعليم
Ministry of Education
2025 - 1447
🎴 بطاقات تعليمية للمراجعة
عدد البطاقات: 3 بطاقة لهذه الصفحة
في برنامج لحساب متوسط درجات الطلاب من ملف، ما الغرض من استخدام حلقة while مع الشرط 'while grade:'؟
أ) لضمان قراءة أول سطر فقط من الملف.
ب) لإعادة قراءة الملف من البداية عدة مرات.
ج) لضمان قراءة جميع السطور في الملف حتى نهايته.
د) للتوقف عن القراءة إذا كانت الدرجة أقل من 50.
الإجابة الصحيحة: c
الإجابة: لضمان قراءة جميع السطور في الملف حتى نهايته.
الشرح: 1. الدالة readline() تقرأ سطراً واحداً من الملف. 2. عندما تصل إلى نهاية الملف، تُرجع قيمة فارغة (False). 3. الشرط 'while grade:' يعني استمرار الحلقة طالما أن المتغير grade يحتوي على قيمة (True). 4. هذا يضمن قراءة كل سطر في الملف ثم التوقف تلقائياً عند الانتهاء.
تلميح: فكر في كيفية معرفة البرنامج بأنه وصل إلى نهاية الملف.
التصنيف: مفهوم جوهري | المستوى: متوسط
ما الخطوة الأساسية التي يجب تنفيذها قبل حساب المعدل (المتوسط) لمجموعة من الأرقام في برنامج؟
أ) ترتيب الأرقام تصاعدياً.
ب) حساب مجموع هذه الأرقام.
ج) إيجاد أكبر رقم في المجموعة.
د) تحويل الأرقام إلى نصوص.
الإجابة الصحيحة: b
الإجابة: حساب مجموع هذه الأرقام.
الشرح: 1. لحساب المتوسط الحسابي لأي مجموعة أرقام، نستخدم القانون: المتوسط = مجموع الأرقام ÷ عددها. 2. لذلك، يجب أولاً جمع جميع الأرقام معاً للحصول على المجموع. 3. ثم نقسم هذا المجموع على عدد الأرقام. 4. في المثال: مجموع الدرجات 453 ÷ عددها 5 = 90.6.
تلميح: تذكر صيغة حساب المتوسط: (المجموع) ÷ (العدد).
التصنيف: صيغة/خطوات | المستوى: سهل
في الكود البرمجي المعطى، ما الوظيفة الأساسية للسطر 'gradeInt=int(grade)'؟
أ) تخزين النص في متغير جديد.
ب) تحويل البيانات النصية المقروءة من الملف إلى أعداد صحيحة لإجراء العمليات الحسابية عليها.
ج) تقريب العدد إلى أقرب عدد صحيح.
د) طباعة قيمة الدرجة على الشاشة.
الإجابة الصحيحة: b
الإجابة: تحويل البيانات النصية المقروءة من الملف إلى أعداد صحيحة لإجراء العمليات الحسابية عليها.
الشرح: 1. الدالة gr.readline() تقرأ السطر من الملف كنص (string)، مثل '85\n'. 2. لا يمكن إجراء عمليات حسابية (الجمع) على النصوص مباشرة. 3. الدالة int() تحول النص إلى عدد صحيح (integer). 4. هذا التحويل ضروري لتنفيذ عملية الجمع في السطر sumGrades=sumGrades+gradeInt.
تلميح: تذكر أن الدالة readline() تُرجع بيانات من نوع نصي (string).