ترجمة آلية تحت المراجعة
فيفتيفيل
المصدر الأصليقائمة تنفيذ التمرين
تُحفظ علامات هذه القائمة على هذا الجهاز والمتصفح فقط. أنشئ حسابًا مفعّلًا لحفظ إنجاز التمرين في مسارك.
فيفتيفيل
مشكلة بحاجة إلى حل
تمت سرقة البطة CS50! لقد دعتك بلدة Fiftyville إلى حل لغز البطة المسروقة. وتعتقد السلطات أن اللص سرق البطة، وبعد ذلك بوقت قصير، استقل رحلة جوية خارج المدينة بمساعدة شريك له. هدفك هو التعرف على:
- من هو اللص،
- ما هي المدينة التي هرب إليها اللص، و
- من هو شريك اللص الذي ساعدهم على الهروب
كل ما تعرفه هو أن السرقة حدث في 28 يوليو 2025 وذلك أقيم في شارع همفري.
كيف ستبدأ في حل هذا اللغز؟ أخذت سلطات Fiftyville بعض سجلات المدينة من وقت السرقة تقريبًا وأعدت لك قاعدة بيانات SQLite، fiftyville.db، والذي يحتوي على جداول بيانات من جميع أنحاء المدينة. يمكنك الاستعلام عن هذا الجدول باستخدام SQL SELECT استعلامات للوصول إلى البيانات التي تهمك. باستخدام المعلومات الموجودة في قاعدة البيانات فقط، مهمتك هي حل اللغز.
تجريبي
البدء
بالنسبة لهذه المشكلة، ستستخدم قاعدة البيانات المقدمة لك من قبل موظفي CS50.
قم بتنزيل كود التوزيع
قم بتسجيل الدخول cs50.dev، انقر على نافذتك الطرفية، وقم بالتنفيذ cd بمفرده. يجب أن تجد أن مطالبة النافذة الطرفية الخاصة بك تشبه ما يلي:
$
التنفيذ التالي
wget https://cdn.cs50.net/2026/x/psets/7/fiftyville.zip
من أجل تنزيل ملف ZIP يسمى fiftyville.zip في مساحة الشيفرة الخاصة بك.
ثم نفذ
unzip fiftyville.zip
لإنشاء مجلد يسمى fiftyville. لم تعد بحاجة إلى ملف ZIP، حتى تتمكن من التنفيذ
rm fiftyville.zip
ثم قم بالرد بـ "y" متبوعًا بـ Enter عند المطالبة لإزالة ملف ZIP الذي قمت بتنزيله.
الآن اكتب
cd fiftyville
متبوعًا بـ Enter للانتقال إلى (i.e.، open) هذا الدليل. يجب أن تشبه مطالبتك الآن ما يلي.
fiftyville/ $
تنفيذ ls بمفرده، ويجب أن تشاهد بعض الملفات:
answers.txt fiftyville.db log.sql
إذا واجهت أي مشكلة، فاتبع نفس الخطوات مرة أخرى لترى ما إذا كان بإمكانك تحديد الخطأ الذي ارتكبته!
المواصفات
بالنسبة لهذه المشكلة، فإن العملية التي تستخدمها لحل اللغز لا تقل أهمية عن حل اللغز نفسه. في log.sql، احتفظ بسجل لجميع استعلامات SQL التي تقوم بتشغيلها على قاعدة البيانات. فوق كل استعلام، قم بتسمية كل استعلام بتعليق (في SQL، التعليقات هي أي سطر يبدأ بـ --) يصف سبب تشغيلك للاستعلام و/أو المعلومات التي تأمل في الحصول عليها من هذا الاستعلام المحدد. يمكنك استخدام التعليقات الموجودة في ملف السجل لإضافة ملاحظات إضافية حول عملية التفكير الخاصة بك أثناء حل اللغز: في النهاية، يجب أن يكون هذا الملف بمثابة دليل على العملية التي استخدمتها للتعرف على اللص!
أثناء كتابة استفساراتك، قد تلاحظ أن بعضها يمكن أن يصبح معقدًا للغاية. للمساعدة في إبقاء استفساراتك قابلة للقراءة، راجع مبادئ الأسلوب الجيد في sqlstyle.guide. ال يُستخدم الرمز المسافة البادئة قد يكون قسم مفيدًا بشكل خاص!
بمجرد حل اللغز، أكمل كل سطر من السطور answers.txt عن طريق ملء اسم اللص، والمدينة التي هرب إليها اللص، واسم شريك اللص الذي ساعدهم على الهروب من المدينة. (تأكد من عدم تغيير أي نص موجود في الملف أو إضافة أي أسطر أخرى إلى الملف!)
في النهاية، يجب عليك إرسال كلا من log.sql و answers.txt الملفات.
الإرشادات التفصيلية
تلميحات
- تنفيذ
sqlite3 fiftyville.dbلبدء تشغيل الاستعلامات على قاعدة البيانات.- أثناء التشغيل
sqlite3، يتم التنفيذ سيقوم.tablesبسرد كافة الجداول الموجودة في قاعدة البيانات. - أثناء التشغيل
sqlite3، يتم التنفيذ.schema TABLE_NAME، حيثTABLE_NAMEهو اسم جدول في قاعدة البيانات، وسيظهر لك الأمرCREATE TABLEالمستخدم لإنشاء الجدول. يمكن أن يكون هذا مفيدًا في معرفة الأعمدة التي سيتم الاستعلام عنها!
- أثناء التشغيل
- قد تجد أنه من المفيد البدء بـ
crime_scene_reportsالجدول. ابدأ بالبحث عن تقرير مسرح الجريمة المطابق لتاريخ ومكان الجريمة. - انظر مرجع الكلمات الأساسية لـ SQL لبعض صيغ SQL التي قد تكون مفيدة!
كيفية الاختبار
صحة
check50 cs50/problems/2026/x/fiftyville
كيفية الإرسال
في جهازك الطرفي، قم بتنفيذ ما يلي لإرسال عملك، والإجابة على المطالبات التي تظهر أيضًا.
submit50 cs50/problems/2026/x/fiftyville