الشبكة الأسبوعية
جزء من قسم المنطق والتدفق في رحلة Swift على Coddy — الدرس 36 من 56.
حان الوقت لطباعة التقويم. لكل عادة، قم بعرض شبكة مكونة من سبعة أحرف مع X في الأيام المنجزة و . في الأماكن الأخرى.
// days = [1, 3, 5]
// يعرض: X.X.X..اصطلاح مفيد: قم ببناء الشبكة كمصفوفة من الأحرف، ثم حولها إلى String مرة واحدة.
var slots = Array(repeating: ".", count: 7)
for d in days {
slots[d - 1] = "X"
}
let row = slots.joined()days هو فهرس يبدأ بـ 1 (Mon = 1) ولكن مصفوفات Swift تبدأ بفهرس 0، لذا اطرح 1 عند التعيين. الأيام الخارجة عن النطاق ستؤدي إلى تعطل البرنامج، لذا ثق بتنسيق الإدخال.
التحدي
متوسطاقرأ سطراً واحداً من المدخلات: قائمة مفصولة بفاصلة من مدخلات habit:day. قم ببناء القاموس كما في السابق، ثم اطبع سطراً واحداً لكل عادة (مرتبة أبجدياً) بالتنسيق التالي:
<habit> |<grid>| <count>حيث أن grid هي سلسلة نصية مكونة من سبعة أحرف من X/. و count هو عدد الأيام الفريدة التي تم إنجاز العادة فيها.
للمدخلات read:1,read:3,read:5,workout:2,workout:4، تكون المخرجات:
read |X.X.X..| 3
workout |.X.X...| 2ورقة مرجعية
أنشئ شبكة مكونة من 7 أحرف مع X في الأيام المكتملة و . في أماكن أخرى (الأيام تبدأ من الفهرس 1):
var slots = Array(repeating: ".", count: 7)
for d in days {
slots[d - 1] = "X"
}
let row = slots.joined()جرّب بنفسك
var habits: [String: [Int]] = [:]
let ops = readLine()!.components(separatedBy: ",")
for op in ops {
let parts = op.components(separatedBy: ":")
let day = Int(parts[1])!
if !(habits[parts[0], default: []].contains(day)) {
habits[parts[0], default: []].append(day)
}
}
// مهام: بناء شبكة من 7 خانات لكل عادة؛ طباعة '<name> |<grid>| <count>'
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق والتدفق
1النصوص بعمق
العد والفهارسحالة الأحرف وإزالة الفراغاتالبحث في النصوصتقسيم ودمج النصوصاستبدال النصوص الفرعيةمراجعة - التحقق من اسم المستخدم4المجموعات
إنشاء المجموعاتالاتحاد والتقاطعالطرح والفرق المتماثلالمجموعات الجزئية والشاملةمراجعة - تصفية الـ Tag7مشروع - متتبع العادات
نظرة عامة على المشروعتحديد كمكتمل2النطاقات والخطوات
المغلقة مقابل نصف المفتوحةالخطوة (Stride)دوال النطاقاتالنطاقات في Switchملخص - شبكة التقويم5الدوال من الرتبة العليا - الجزء الأول
MapFilterReduceربط Map و Filter و Reduceمراجعة - إحصائيات الكلمات