📄 النص الكامل للصفحة
# Iterate through each character in the encrypted message
for char in encrypted_message:
# Check if character is a lowercase letter
if char in alphabet_lower:
# Find the index of the character in the lowercase alphabet list
char_index = alphabet_lower.find(char)
# Move the character to the left by the key
new_char_index = (char_index - key) % 26
# Add the replaced character to the decrypted message
decrypted_message += alphabet_lower[new_char_index]
elif char in alphabet_upper:
# Find the index of the character in the uppercase alphabet list
char_index = alphabet_upper.find(char)
# Move the character to the left by the key
new_char_index = (char_index - key) % 26
# Add the replaced character to the decrypted message
decrypted_message += alphabet_upper[new_char_index]
else:
# If the character is not a letter, add it to the decrypted message as it is
decrypted_message += char
# Return the decrypted message
return decrypted_message
اختبار التشفير (Testing the Cipher):
# Testing the Caesar cipher
message = "There are twenty three items in the inventory."
key = 5
encrypted_message = caesar_encrypt(message, key)
decrypted_message = caesar_decrypt(encrypted_message, key)
print(encrypted_message)
print(decrypted_message)
Ymjmwj fwj ybjysyd ymwjj ns ymj nsajsywyd.
There are twenty three items in the inventory.
وزارة التعليم
Ministry of Education
119
2025 - 1447
--- VISUAL CONTEXT ---
**IMAGE**: Ministry of Education Logo
Description: Logo of the Ministry of Education, featuring a stylized green pattern resembling dots or abstract foliage, with Arabic and English text below.
Context: Branding and institutional identification for the textbook.
🎴 بطاقات تعليمية للمراجعة
عدد البطاقات: 4 بطاقة لهذه الصفحة
ما هي الخطوات الأساسية لفك تشفير رسالة باستخدام خوارزمية قيصر في الكود المقدم؟
الإجابة: 1. التكرار على كل حرف في الرسالة المشفرة. 2. التحقق إذا كان الحرف حرفاً صغيراً أو كبيراً. 3. إيجاد مؤشر الحرف في قائمة الحروف المناسبة. 4. تحريك الحرف إلى اليسار بمقدار المفتاح (key) باستخدام العملية الحسابية (char_index - key) % 26. 5. إضافة الحرف الجديد إلى الرسالة المفكوكة. 6. إذا لم يكن الحرف أبجدياً، إضافته كما هو.
الشرح: تشرح هذه الخطوات المنطق البرمجي لفك تشفير قيصر، حيث يتم إزاحة كل حرف أبجدي إلى الوراء في الأبجدية بمقدار ثابت (المفتاح)، مع الحفاظ على الأحرف غير الأبجدية دون تغيير.
تلميح: ركز على الحلقة for والشرطين if و elif داخل الكود.
التصنيف: صيغة/خطوات | المستوى: متوسط
ما الغرض من استخدام العملية (char_index - key) % 26 في كود فك تشفير قيصر؟
الإجابة: الغرض هو تحريك مؤشر الحرف إلى اليسار بمقدار قيمة المفتاح (key)، مع ضمان بقاء الناتج ضمن نطاق مؤشرات الحروف الأبجدية (من 0 إلى 25) عن طريق استخدام عملية modulo (% 26). هذا يمنع الخروج خارج حدود قائمة الحروف.
الشرح: عملية modulo تضمن أن الناتج دائماً بين 0 و 25، مما يحافظ على دورة الأبجدية. مثلاً، إذا كان char_index = 2 و key = 5، فإن (2-5) = -3، و (-3) % 26 = 23، مما يعيدنا إلى نهاية الأبجدية.
تلميح: فكر في ما يحدث إذا كان ناتج الطرح سالباً أو أكبر من 25.
التصنيف: مفهوم جوهري | المستوى: صعب
في مثال اختبار تشفير قيصر، ما هي الرسالة المشفرة الناتجة عن تشفير "There are twenty three items in the inventory." بالمفتاح 5؟
الإجابة: الرسالة المشفرة هي: Ymjmwj fwj ybjysyd ymwjj ns ymj nsajsywyd.
الشرح: هذا هو الناتج العملي لتطبيق خوارزمية تشفير قيصر بإزاحة كل حرف أبجدي 5 مواقع إلى الأمام في الأبجدية.
تلميح: انظر إلى مخرجات دالة print(encrypted_message) في قسم الاختبار.
التصنيف: سؤال اختبار | المستوى: سهل
كيف يتعامل كود فك التشفير مع الأحرف التي ليست حروفاً أبجدية (مثل المسافات أو النقاط)؟
الإجابة: يتعامل معها من خلال الفرع else في الشروط، حيث تتم إضافتها إلى الرسالة المفكوكة (decrypted_message) كما هي دون أي تغيير.
الشرح: هذه ميزة مهمة في الخوارزمية تحافظ على تنسيق الرسالة الأصلية، حيث أن التشفير وفك التشفير يؤثران فقط على الأحرف الأبجدية.
تلميح: ابحث عن الجزء الذي لا ينطبق عليه شرطا if أو elif.
التصنيف: مفهوم جوهري | المستوى: سهل