ספר טלפונים
כתבו קוד המממש ספר טלפונים.
ספר הטלפונים מורכב מהרבה אנשים.
בכל רשומה בספר הטלפונים, מופיעים הפרטים הבאים:
- שם פרטי ומשפחה
- עיר מגורים
- מספר טלפון
ממשו דרך לקבל מרשימת הטלפונים:
- את כל הרשומות שבהן השם הוא שם שקיבלתם כפרמטר.
- את הרשומות של כל האנשים ששמותיהם מתחילים ברצף אותיות שקיבלתם בפרמטר.
- בהנתן שספר הטלפונים מסודר בצורה אלפבתית, ובכל עמוד יש 20 רשומות, קבלו מספר עמוד והדפיסו את כל הרשומות הנמצאות בו.
השתמשו ב־Faker כדי לבנות ספר טלפונים, ובדקו שכל המתודות שכתבתן עובדות.
שיר עשירים
צרו מכשיר ווקמן חדשני ונוצץ שעובד על סוללה.
במכשיר ניתן לבצע את הפעולות הבאות:
- הוספת שיר
- מחיקת שיר
- הדלקת או כיבוי מצב Shuffle
- ניגון שיר
- מעבר לשיר הראשון
- מעבר לשיר הקודם
- מעבר לשיר הבא
- מעבר לשיר האחרון
- טעינת הסוללה של הווקמן
- להגביר את עוצמת השמע בכמות שבין 1 ל־100
- להנמיך את עוצמת השמע בכמות שבין 1 ל־100
לכל שיר יש את התכונות הבאות:
- שם אמן
- שם יצירה
- שנת הוצאה
- סוגה (ז'אנר)
הוראות ההפעלת של הווקמן הן כדלהלן:
- כל מכשיר מגיע עם סוללה טעונה במלואה (100% סוללה).
- כל שיר שמתנגן, מוריד למכשיר 1% סוללה ומעביר את הנגן לשיר הבא.
- שיר לא יתנגן אם מצב הסוללה של המכשיר הוא 0%. במקרה זה, תודפס הודעת שגיאה.
- במקרה של מצב Shuffle, יבחר שיר באופן אקראי מהרשימה שהוא לא השיר שכבר הושמע.
- אם מצב ה־Shuffle כבוי, יתנגן השיר הבא ברשימה לפי סדר השירים שהוכנסו.
- במצב של סיום רשימת השירים, הווקמן יעצר.
- עוצמת השמע לא תהיה נמוכה מ־0 או גדולה מ־100.
פגישה חצי פגישה
צרו שני רובוטים.
לכל רובוט יש את הפעולות הבאות:
- סע קדימה צעד אחד
- הסתובב 90 מעלות לימין
בזמן יצירת הרובוט, ניתן לספק לו קורדיטה (x ו־y) שבה הוא יוצב.
בזמן יצירתו, פניו של הרובוט יופנו כלפי מעלה.
כתבו פונקציה שמקבלת "מסלול" (רשימה של קורדינטות סמוכות אחד לשנייה), ומדפיסה באיזו קורדינטה הרובוטים יפגשו.
בכל "תור" מותר לרובוט להסתובב, או לצעוד צעד אחד קדימה. אסור לרובוט ללכת על קורדינטות שלא נמצאות על המסלול.
לדוגמה, עבור רשימת הקורדינטות [(0, 5), (1, 5), (2, 5), (3, 5), (3, 6), (3, 7)]
, כאשר הרובוט הראשון מתחיל מהנקודה (1, 5)
והרובוט השני מהנקודה (3, 7)
, יתבצעו הצעדים הבאים:
- הרובוט הראשון יסתובב כך שפניו מופנות לימין, והרובוט השני יסתובב כך שפניו מופנות לימין.
- הרובוט הראשון יתקדם ל־
(2, 5)
, והרובוט השני יסתובב כך שפניו מופנות למטה. - הרובוט הראשון יתקדם ל־
(3, 5)
, והרובוט השני יתקדם ל־(3, 6)
. - הרובוט הראשון יסתובב כך שפניו מופנות למטה. הרובוט השני יתקדם ל־
(3, 5)
.
לכן ערך ההחזרה של הפונקציה הוא שהרובוטים נפגשו בנקודה (3, 5)
.
אם הרובוטים לעולם לא יפגשו, החזירו False.
ראו עוד תרגולים כאן: