זוהי רשימת תרגילים חלקית.
פתרונות ותרגילים נוספים יתווספו בהמשך השבוע.
מחברת 1
תרגיל 1 (בר ולטר)
אקרוסטיכון היא שיטת כתיבה של שיר או פרוזה, בה ליקוט האות הראשונה של כל מילה, שורה או בית בשיר יוצר מילה או מספר מילים, שם, אותיות האלפבית כסדרן וכדומה.
סעיף 1
כתבו תוכנית שמקבלת מהמשתמש מחרוזת, ומדפיסה מחרוזת חדשה המורכבת מהאות הראשונה בכל מילה מהמחרוזת המקורית.
עבור הקלט “יש ווילונות פירחוניים יותר”, יודפס: יופי
עבור הקלט “משהו עצום וגדול להביא הביתה”, יודפס: מעולה
עבור הקלט “אני חייב לאכול המבורגר”, יודפס: אחלה
עבור הקלט “כדי להבריא, הומלץ כעת בידוד וגם דוקטור” יודפס: כלהכבוד
סעיף 2
כעת, כתבו תוכנית שמקבלת מהמשתמש האם לקחת את האות הראשונה בכל שורה או בכל מילה. המחרוזת המקורית בתרגיל זה לא תיקלט על־ידי המשתמש, אלא תוזן ידנית כמחרוזת בקוד התוכנה. התוכנית תדפיס מחרוזת חדשה, הבנויה מהאות הראשונה בכל שורה או מילה מהמחרוזת המקורית לפי מה שהוכנס:
דוגמאות:
-
עבור הקלט “אני חייב לאכול המבורגר” ואז “word”, יודפס: אחלה
-
עבור הקלט: “לילה לילה
מכה אפורה
האוטו שלנו” ואז “line”, יודפס: למה -
עבור הקלט: “החלמ ולחמצחל
זלמלח חלמח
טחלמחל ילמלחמ” ואז “word”, יודפס “הוזחטי”
סעיף 3
בשיר “אדון הסליחות” יש “אקרוסתיכון מיוחד”.
הוא מורכב מהאות הראשונה של כל שורה שאינה השורה האחרונה של הפסקה.
כתבו תוכנית שמקבלת את הטקסט של השיר ומחזירה את האקרוסטיכון המיוחד שלו.
השיר נמצא כאן
אֲדוֹן הַסְּלִיחוֹת
בּוֹחֵן לְבָבוֹת
גּוֹלֶה עֲמוּקוֹת
דּוֹבֵר צְדָקוֹת
חָטָאנוּ לְפָנֶיךָ, רַחֵם עָלֵינוּ!
הָדוּר בְּנִפְלָאוֹת
וָתִיק בְּנֶחָמוֹת
זוֹכֵר בְּרִית אָבוֹת
חוֹקֵר כְּלָיוֹת
חָטָאנוּ לְפָנֶיךָ, רַחֵם עָלֵינוּ!
טוֹב וּמֵטִיב לַבְּרִיּוֹת
יוֹדֵעַ כָּל נִסְתָּרוֹת
כּוֹבֵשׁ עֲוֹנוֹת
לוֹבֵשׁ צְדָקוֹת
חָטָאנוּ לְפָנֶיךָ, רַחֵם עָלֵינוּ!
מָלֵא זַכִּיּוֹת
נוֹרָא תְהִלּוֹת
סוֹלֵחַ עֲוֹנוֹת
עוֹנֶה בְּעֵת צָרוֹת
חָטָאנוּ לְפָנֶיךָ, רַחֵם עָלֵינוּ!
פּוֹעֵל יְשׁוּעוֹת
צוֹפֶה עֲתִידוֹת
קוֹרֵא הַדּוֹרוֹת
רוֹכֵב עֲרָבוֹת
שׁוֹמֵעַ תְּפִלּוֹת
תְּמִים דֵּעוֹת
חָטָאנוּ לְפָנֶיךָ, רַחֵם עָלֵינוּ!
תרגיל 2 (בר ולטר)
בסופר הקורונה, אסור שיהיו יותר מ 100 אנשים בו זמנית.
נקבל מהמשתמש את מספר העובדים וכך נדע כמה לקוחות ניתן להכניס.
לדוגמה: אם יש בסופר 20 עובדים, ניתן להכניס עד 80 לקוחות (100-20 = 80).
התוכנית מתחילה כאשר הסופר נפתח, כלומר יש בו 0 לקוחות.
התוכנית תשאל כמה עובדים יש בסופר ומכך תבין כמה לקוחות ניתן להכניס.
כל פעם שקבוצה נכנסת או יוצאת, נקלוט מהמשתמש את קבוצת האנשים הבאה.
אם האנשים נכנסים – המספר חיובי, אם האנשים יוצאים – המספר שלילי.
התוכנית מסתיים כאשר יוכנס “close” אשר מסמל כי החנות נסגרת ולא ניתן להכנס יותר!
תרגיל 3 (איתמר רביב)
חפיסת קלפים סטנדרטית מכילה 52 קלפים. לכל קלף בחבילה יש את המאפיינים הבאים:
- צורה (Suite) – תלתן, עלה, לב או יהלום
- צבע (Color) – לב ויהלום יהיו אדומים, עלה ותלתן יהיו שחורים.
- דרגה (Rank) – אס (1), המספרים מ־2 ועד 10, נסיך, מלכה ומלך.
בחפיסה סטנדרטית, בכל צורה יופיעו כל אחת מהדרגות פעם אחת בדיוק (13 קלפים עבוור כל סמל).
כתבו פונקציה המייצרת חפיסת קלפים, הפונקציה תחזיר רשימה של כל הקלפים - בדקו שקיבלתם 52 קלפים ברשימה.
מחברת 2
תרגיל 1 (בר ולטר)
קבלו מחרוזת ואות והחזירו רשימה של המקומות בהן היא מופיעה
לדוגמה:
- עבור הקלט"abcdabcdabcdabcd"’, “c” יודפס: [2, 6, 10, 14]
- עבור הקלט “'how are you doing”, “z” יודפס: “'Not in list”
מחברת 3
תרגיל 1 (איתמר רביב)
- במשתנה
secret
שניתן להשיג מכאן ישנה מחרוזת המייצגת תמונה. כתבו את תוכן המשתנה לקובץ עם סיומת.png
וגלו מה יש בתמונה. שימו לב למצבי הכתיבה לקובץ בפונקציית open - עליכם לכתוב לקובץ במצב “בינארי”.
מחברת 5
תרגיל 1 (איתמר רביב)
ניתן לייצג “משימה” כרשומה בעזרת tuple.
כתבו פונקציה המקבלת את כל המידע המפורט מטה ומחזירה tuple המייצג משימה.
- תאריך הוספה
- תאריך דדליין
- תיאור – טקסט המתאר את המשימה
- שם המבצע אליו משויכת המשימה
- האם המשימה הסתיימה (בוצעה)
כתבו תוכנית (אוסף של פונקציות) המנהלת רשימת משימות על גבי קובץ שנקרא לו tasks.csv
.
התוכנית תאפשר:
- קליטת משימות חדשות ושמירתן בקובץ
- הדפסת רשימת המשימות
2.1 אפשרו סוגי סינונים שונים - לפי מבצע, לפי תאריך או לפי האם המשימה הסתיימה. - פונקציה שמאפשרת לסמן משימה כמשימה שבוצעה.
- הדפסת המשימות שעבר הדדליין שלהן
את המשימות שמרו בקובץ כך שכל משימה בשורה נפרדת, וכל השדות מופרדים בפסיק.
השורה הראשונה בקובץ תהיה השדות של המשימה כפי שהוזכרו מעלה, בתוספת שדה ראשון בשם id
המהווה מזהה ייחודי של משימה. המזהה של המשימה הראשונה הוא 1, של הבאה אחריה 2 וכן הלאה.
כך נראה קובץ csv ובו שלוש משימות:
ID,date,due_date,description,assignee,isdone
1,20.04.2020,25.04.2020,create todo list system,Moti,False
2,21.04.2020,25.04.2020,break the wall,Shlomo,True
3,23.04.2020,24.04.2020,eat a shwarma,David Momo,False