התרגילים המובאים כאן מיועדים לתרגול באתר אונלין הבודק עבורכם את התרגילים.
כדי להצטרף עליכם להיכנס כתלמידים. יש לבחור התחברות עם GOOGLE כאילו שאתם כבר רשומים, ולאחר מכן לא לגעת בסימון (מורה/תלמיד). הכניסה בקישור זה: stacks. חשוב לא לסמן עצמכם כמורים!!!. לאחר הכניסה, תתבקשו להזין משפט ספציפי כדי להצטרף לכיתה. המשפט הוא נחש שכח מזל פיל הלך ספר.
לנוחותכם סרטון הסבר על תהליך התחברות ראשונה והצטרפות
לאחר שנכנסתם תתחילו לעבוד. התרגילים הרלוונטיים פתוחים עבורכם. ההמלצה כרגיל: לפתור את התרגיל ב-VS2022 - לבדוק שעובד, לפני שאתם מעתיקים את הקוד לאתר ומגישים. לאחר שתלחצו על הגשה האתר מציע לכם לבצע בדיקה. מומלץ מאד לקבל את ההצעה ולבחור כן יאללה. לאחר שתסיימו את 3 התרגילים אפתח תרגילים נוספים.
5א.1 חישוב חשבון במסעדה
עליכם לכתוב תוכנית שתנהל את חשבונות הלקוחות במסעדה. מחיר מנה בודדת הוא 9 שקלים.
התוכנית תבצע את הפעולות הבאות:
- תקלוט את שם הלקוח ואת מספר המנות שהזמין.
- תחשב את הסכום הכולל שעליו לשלם (מחיר מנה * מספר מנות).
- תדפיס את שם הלקוח ואת הסכום לתשלום עבורו.
- תמשיך לקלוט נתונים עבור לקוחות נוספים עד שיוזן ‘SOF’ (סוף קובץ) כשם הלקוח.
- בסיום, תדפיס את המספר הכולל של הלקוחות ששירתו באותו יום.
קלט
התוכנית תקלוט שתי שורות עבור כל לקוח:
- שם הלקוח (מחרוזת).
- מספר המנות שהלקוח הזמין (מספר שלם). הקלט יסתיים כאשר שם הלקוח שייקלט יהיה ‘SOF’.
פלט
עבור כל לקוח, התוכנית תדפיס שורה בפורמט:Customer: [שם הלקוח], Amount: [סכום לתשלום]
לאחר סיום הקלט, התוכנית תדפיס שורה אחת המציינת את סך הלקוחות:Total customers: [מספר הלקוחות]
5א.2 יום כיף במרכז הקהילתי
במרכז קהילתי הוחלט לארגן “יום כיף” לילדים. עלות השימוש בכל מתקן היא 4 שקלים לילד.
עליכם לכתוב תוכנית שתבצע את הפעולות הבאות:
- תקלוט בעבור כל ילד את שמו ואת מספר המתקנים שהוא רוצה להשתמש בהם.
- התוכנית תדפיס את שם הילד ואת הסכום שעליו לשלם.
- התוכנית תמנה כמה ילדים השתתפו ב”יום כיף” ותדפיס מספר זה בסיום.
- התוכנית תסתיים כאשר ייקלט “END OF DAY” בעבור שם הילד.
קלט
הקלט יכלול רצף של זוגות של שם ילד (מחרוזת) ומספר מתקנים (מספר שלם). הקלט יסתיים כאשר השם שייקלט יהיה “END OF DAY”.
פלט
עבור כל ילד, התוכנית תדפיס שתי שורות:
- שורה ראשונה: “Child: [שם הילד], Amount due: [סכום לתשלום]”
- בסיום התוכנית, לאחר קליטת “END OF DAY”, התוכנית תדפיס שורה אחת: “Total children: [מספר הילדים שהשתתפו]”
דרישות נוספות
- עלות השימוש בכל מתקן היא 4 שקלים.
- יש לשים לב לפורמט ההדפסה המדויק, כולל רווחים וסימני פיסוק.
5א.3 מבצע מתנות למנויים חדשים
עיתון יומי משיק מבצע מתנות למנויים חדשים: מנוי שגילו מעל 50 יקבל תלושי שי, וכל מנוי אחר יקבל ספר.
עליכם לכתוב תוכנית שתבצע את הפעולות הבאות:
- תקלוט עבור כל מנוי חדש את שמו ואת גילו.
- תדפיס את שם המנוי ואת המתנה שהוא זכאי לה.
- התוכנית תסתיים כאשר ייקלט השם “SOF” (סוף) עבור שם המנוי החדש. הקלט “SOF” לא ייחשב כמנוי ולא ישפיע על ספירת המתנות.
- התוכנית תספור כמה מנויים קיבלו תלושי שי וכמה מנויים קיבלו ספר.
- בסיום, התוכנית תדפיס את סך כל תלושי השי והספרים שחולקו.
קלט
הקלט יכלול סדרת שמות וגילאים. כל שם יופיע בשורה נפרדת, ולאחרונה הגיל בשורה נפרדת. הקלט יסתיים בשם “SOF”.
- שם: מחרוזת (לדוגמה: “Alice”, “Bob”).
- גיל: מספר שלם חיובי (לדוגמה: 25, 60).
- סיום קלט: המחרוזת “SOF” (באותיות גדולות).
פלט
עבור כל מנוי, התוכנית תדפיס שורה בפורמט:[שם המנוי]: [סוג המתנה]
כאשר [סוג המתנה]
יהיה “Gift vouchers” אם הגיל מעל 50, או “Book” אם הגיל 50 או פחות.
לאחר סיום קליטת המנויים, התוכנית תדפיס שתי שורות נוספות המסכמות את חלוקת המתנות:Total gift vouchers: [מספר תלושי השי]Total books: [מספר הספרים]
טיפול במקרי קצה
- גיל 50: מנוי שגילו בדיוק 50 יקבל “Book”.
- אין מנויים: אם הקלט הראשון הוא “SOF”, התוכנית תדפיס:Total gift vouchers: 0Total books: 0
5א.4 מסיבת סיום במרכז הקהילתי
מרכז קהילתי ארגן מסיבת סיום למשתתפי החוג. עליכם לכתוב תוכנית שתעזור למרכז הקהילתי לנהל את נתוני המסיבה.
התוכנית צריכה לבצע את הפעולות הבאות:
- לקלוט את שמות החוגים ואת מספר התלמידים מכל חוג שהשתתפו במסיבה.
- להדפיס עבור כל חוג את שמו ואת מספר התלמידים שהשתתפו ממנו.
- לחשב ולהדפיס את סך כל התלמידים שהשתתפו במסיבה.
- לחשב ולהדפיס את סך כל הכסף שנאסף בעבור המסיבה, בהתבסס על כך שכל תלמיד שילם 10 ש”ח.
קלט
התוכנית תקלוט שורות לסירוגין:
- שם חוג (מחרוזת).
- מספר תלמידים (מספר שלם).
הקלט יסתיים כאשר שם החוג שייקלט יהיה “BYE BYE” (באותיות גדולות, ללא רווחים נוספים). כאשר “BYE BYE” נקלט, אין לקלוט מספר תלמידים עבורו.
פלט
התוכנית תדפיס:
- עבור כל חוג שהוזן (לפני “BYE BYE”), שורה בפורמט:Club: [ClubName], Participants: [NumberOfParticipants]
- בסיום הקלט, שורה המציגה את סך כל התלמידים:Total participants: [TotalParticipants]
- לאחר מכן, שורה המציגה את סך כל הכסף שנאסף:Total money collected: [TotalMoney]
דוגמאות לטיפול במקרים שונים:
- מסיבה ללא משתתפים: אם הקלט הראשון הוא “BYE BYE”, התוכנית צריכה להדפיס:Total participants: 0Total money collected: 0
- מספר תלמידים אפס: אם עבור חוג מסוים מוזן 0 תלמידים, יש לכלול אותו בפלט הפרטני של החוג, אך הוא לא ישפיע על סך התלמידים או הכסף שנאסף. לדוגמה, אם הקלט הוא:Swimming0BYE BYE הפלט יהיה:Club: Swimming, Participants: 0Total participants: 0Total money collected: 0
5א.5 ניתוח ציוני תלמידים
בבית ספר “המצטיינים” נערך מבחן לכל תלמידי שכבה י’. עליכם לכתוב תוכנית שתבצע את הפעולות הבאות:
- קלט: התוכנית תקלוט עבור כל תלמיד בשכבה את שמו ואת הציון שקיבל במבחן. הקלט יתבצע בשורות נפרדות: שם התלמיד בשורה אחת, וציון בשורה הבאה.
- הדפסה פרטנית: עבור כל תלמיד, התוכנית תדפיס את שמו ואת הציון שקיבל במבחן בפורמט: Student Name: [Name], Score: [Score].
- ספירת מצטיינים: התוכנית תמנה כמה תלמידים קיבלו במבחן ציון גבוה מ-95.
- סיום קלט: התוכנית תסתיים כאשר ייקלט “FINISH” בעבור שם התלמיד. במקרה זה, אין ציון לקלוט אחרי “FINISH”.
- הדפסת סיכום: לאחר סיום הקלט, התוכנית תדפיס את מספר התלמידים שקיבלו ציון גבוה מ-95 בפורמט: Number of students with score above 95: [Count].
קלט
שם התלמיד (מחרוזת) או “FINISH” לסיום.ציון התלמיד (מספר שלם, 0-100) - יקלט רק אם השם אינו “FINISH”.
פלט
- עבור כל תלמיד: Student Name: [Name], Score: [Score]
- בסיום: Number of students with score above 95: [Count]
5א.6 ספירת קולות בבחירות
בבחירות למועצת התלמידים בבית ספר תיכון יש שני מועמדים: חגי והדס. תלמיד המעוניין בבחירתו של חגי יצביע 1, ותלמיד המעוניין בבחירתה של הדס יצביע 2.
עליכם לכתוב תוכנית שתבצע את הפעולות הבאות:
- תקלוט את השם של כל אחד מהתלמידים המצביעים.
- תקלוט את המספר של המועמד שבעבורו הצביע התלמיד (1 עבור חגי, 2 עבור הדס).
- התוכנית תמנה את מספר הקולות שקיבל כל אחד מהמועמדים.
- אם התקבל מספר השונה מ-1 או 2 כהצבעה, הוא לא ייספר כקול חוקי (יש להתעלם מהצבעה זו).
- התוכנית תסתיים כאשר ייקלט “SOF” בעבור שם התלמיד.
- בסיום הקלט, התוכנית תדפיס בעבור כל מועמד את שמו ואת מספר הקולות שקיבל.
קלט
הקלט יכלול רצף של שורות. כל זוג שורות מייצג הצבעה:
- שורה ראשונה: שם התלמיד (מחרוזת).
- שורה שנייה: מספר ההצבעה (1 או 2, או כל מספר אחר).
- הקלט מסתיים כאשר שם התלמיד הוא “SOF”.
פלט
הפלט יכלול שתי שורות, המציגות את סך הקולות לכל מועמד:
- Hagi: X (כאשר X הוא מספר הקולות שקיבל חגי)
- Hadas: Y (כאשר Y הוא מספר הקולות שקיבל הדס)
טיפול במקרי קצה
- הצבעות לא חוקיות: אם מספר ההצבעה אינו 1 או 2, הקול לא ייספר, והתוכנית תמשיך לקלוט את ההצבעה הבאה.
- אין הצבעות: אם הקלט הראשון הוא “SOF” (כלומר, אף אחד לא הצביע), הפלט צריך להיות Hagi: 0 ו-Hadas: 0.
- רק קולות לא חוקיים: אם כל ההצבעות שהוזנו אינן חוקיות, הפלט צריך להיות Hagi: 0 ו-Hadas: 0.
- שמות תלמידים: שמות התלמידים יכולים להיות כל מחרוזת, ואין צורך לעבד אותם מעבר לקליטה.
- מקרה סיום: הקלט “SOF” תמיד יסיים את התוכנית, ללא קשר למספר ההצבעות שנקלטו לפניו.
5א.7 תעריף שיחות לחו”ל
בחברת טלפונים סלולריים יש תעריף לדקת שיחה לחו”ל. עליכם לכתוב תוכנית שתבצע את הפעולות הבאות:
- קלט תעריף: התוכנית תקלוט את התעריף לדקת שיחה לחו”ל (מספר עשרוני).
- קלט לקוחות: לאחר מכן, התוכנית תקלוט עבור כל לקוח את שמו (מחרוזת) ואת מספר דקות השיחה לחו”ל שביצע (מספר שלם).
- הקלט עבור לקוחות ימשיך עד שייקלט “BYE” כשם הלקוח. “BYE” יסמן את סיום קליטת הלקוחות.
- חישוב והדפסת לקוח: עבור כל לקוח שנקלט, התוכנית תחשב את הסכום שעליו לשלם (מספר דקות * תעריף לדקה) ותדפיס את שם הלקוח ואת הסכום לתשלום בפורמט:Customer: [Name], Amount: [Amount]
- הסכום לתשלום יודפס עם שתי ספרות אחרי הנקודה העשרונית.
- חישוב והדפסת סכום כולל: לאחר סיום קליטת כל הלקוחות, התוכנית תחשב ותדפיס את הסכום הכולל שגבתה החברה מלקוחותיה בעבור שיחות לחו”ל בפורמט:Total revenue: [Total Amount]
- הסכום הכולל יודפס עם שתי ספרות אחרי הנקודה העשרונית.
קלט
- שורה ראשונה: תעריף לדקת שיחה לחו”ל (double).
- לאחר מכן, עבור כל לקוח:
- שם הלקוח (string).
- מספר דקות השיחה לחו”ל (int).
- הקלט מסתיים כאשר שם הלקוח הוא “BYE”.
פלט
- עבור כל לקוח: Customer: [Name], Amount: [Amount]
- בסיום: Total revenue: [Total Amount]
הנחיות נוספות
- יש להשתמש ב-Console.ReadLine() לקליטת קלט וב-Console.WriteLine() להדפסת פלט.
- יש להקפיד על פורמט הפלט המדויק, כולל רווחים ועיגול הסכומים לשתי ספרות אחרי הנקודה העשרונית.
5א.8 טיול משפחות 899222.2013.8
תרגיל זה מובא כאן כפי שתומלל מבחינת הבגרות. התרגיל ממחיש עד כמה הגרסה 8ב ב- stacks שונה מגרסה 8 שהיא ללא תוספות AI. הגרסה המשופצת 8ב כוללת הרבה יותר הדרכה לתלמיד - ומדמה פחות את שאלת הבגרות. זו נקודה עבורי לתשומת ליבי, שחשוב לנטרל חלק מהתוספות של ה-AI לפחות בחלק מהתרגילים כדי לא ליצור פער בין התרגול לבין הבחינות!!!
חברת תיירות מארגנת טיול למשפחות.
המחיר למשתתף בטיול הוא 100 שקלים. מספר המקומות בטיול מוגבל.
כתוב תוכנית שתקלוט את מספר המקומות בטיול.
כמו כן התכנית תקלוט עבור כל משפחה שנרשמת לטיול את שם המשפחה ואת מספר בני המשפחה הנרשמים לטיול.
משפחה לא תוכל להשתתף בטיול אם מספר בני המשפחה הנרשמים לטיול גדול ממספר המקומות הפנויים בטיול. עבור כל משפחה שלא תוכל להשתתף בתכנית תדפיס את שם המשפחה ואת ההודעה “no”.
עבור כל משפחה שתשתתף בטיול התכנית תדפיס את שם המשפחה, ותחשב ותדפיס את הסכום הכולל שעל המשפחה לשלם עבור הטיול.
הקליטה תסתיים כאשר לא יישארו מקומות פנויים בטיול.
הערה: אין צורך לבדוק את תקינות הקלט.