تمرين من المصدر الأصلي · تطبيق عملي

فيفتيفيل

استخدم الشرح العربي للفهم، واعتمد صفحة CS50 الأصلية مرجعًا نهائيًا للمواصفات والتسليم.

جلسة دراسة مقترحة: حتى 60 دقيقةالجهد الكلي التقريبي: 120 دقيقة · أكمل من حيث توقفت لاحقًا.Week 7
محاور هذه الخطوة
  • SQL
  • الجداول
  • SELECT
  • JOIN

ترجمة آلية تحت المراجعة

فيفتيفيل

المصدر الأصلي

قائمة تنفيذ التمرين

تُحفظ علامات هذه القائمة على هذا الجهاز والمتصفح فقط. أنشئ حسابًا مفعّلًا لحفظ إنجاز التمرين في مسارك.

فيفتيفيل

مشكلة بحاجة إلى حل

تمت سرقة البطة 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 الملفات.

الإرشادات التفصيلية

محتوى خارجي من YouTube

لن نتصل بهذه الخدمة قبل موافقتك. يمكنك فتح المصدر في نافذة مستقلة بدل تحميله هنا.

فتح المصدر

تلميحات

  • تنفيذ 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

أنهيت التطبيق؟

راجع عناصر التنفيذ أعلاه، ثم احفظ إنجازك وانتقل إلى التمرين التالي.

حفظ إنجاز التمرين

يمكنك قراءة الدورة كاملة دون حساب. يصبح حفظ التقدم متاحًا بعد تفعيل الحساب، ويبقى محفوظًا بعد انتهاء العضوية.

العودة إلى جميع التمارين