אתגר: FizzBuzz
חלק מהיחידה לוגיקה וזרימת התוכנית במסלול ה-Dart של Coddy. שיעור 65 מתוך 65.
אתגר
קלצרו תוכנית שמממשת את אתגר FizzBuzz הקלאסי באמצעות מבנה לולאה תקין ולוגיקה מותנית. האתגר הזה בודק את היכולת שלכם לשלב לולאות, משפטים מותנים ואופרטור מודולו כדי לפתור בעיית תכנות מוכרת.
המשימה שלכם:
- השתמשו בלולאת
forכדי לעבור על המספרים מ־1 עד 50 (כולל) - החילו על כל מספר את הכללים הבאים לפי הסדר:
- אם המספר מתחלק גם ב־3 וגם ב־5, הדפיסו
FizzBuzz - אם המספר מתחלק רק ב־3, הדפיסו
Fizz - אם המספר מתחלק רק ב־5, הדפיסו
Buzz - אם המספר אינו מתחלק ב־3 או ב־5, הדפיסו את המספר עצמו
- אם המספר מתחלק גם ב־3 וגם ב־5, הדפיסו
- כל פלט צריך להופיע בשורה נפרדת
- השתמשו באופרטור מודולו (
%) כדי לבדוק התחלקות - בנו את המשפטים המותנים באמצעות
if,else ifו־elseבסדר הנכון
השורות הראשונות של הפלט שלכם צריכות להיראות כך:
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzzזכרו שהמפתח לפתרון נכון של FizzBuzz הוא לבדוק קודם את המקרה של ״שני התנאים״ (התחלקות גם ב־3 וגם ב־5), לפני שבודקים את התנאים בנפרד. מספר מתחלק במספר אחר אם השארית בחלוקה באותו מספר שווה לאפס.
התוכנית שלכם צריכה להדגים שימוש נכון בלולאות למעבר על ערכים, באופרטור מודולו לבדיקת התחלקות, ובמשפטים מותנים הבנויים בסדר לוגי נכון כדי לטפל בכל המקרים האפשריים.
נסו בעצמכם
void main() {
// TODO: כתבו את הקוד שלכם למטה
// השתמשו בלולאת for כדי לעבור על המספרים מ-1 עד 50
// בדקו התחלקות באמצעות אופרטור המודולו (%)
// זכרו לבדוק תחילה התחלקות גם ב-3 וגם ב-5, ואז לבדוק כל תנאי בנפרד
// הדפיסו כל תוצאה בשורה נפרדת
}כל השיעורים ביחידה לוגיקה וזרימת התוכנית
1מניפולציות מתקדמות ברשימות
מאפייני רשימה: ראשון ואחרוןמצב הרשימה: isEmpty ו-isNotEmpהיפוך רשימההוספה לרשימה: insertהסרת פריטים מרשימה: removeWhereחיפוש ברשימה: indexOfמיון רשימהערבוב רשימהסיכום – מארגן רשימות4מניפולציה מתקדמת של Map
מעבר על Mapבדיקה אם מפתחות וערכים קיימיםמאפייני Map: מפתחות וערכיםהוספה מותנית: putIfAbsentהסרת רשומות מ־MapMaps מקונניםסיכום – עדכון מלאי2פעולות פונקציונליות על רשימות
טרנספורמציה באמצעות 'map'סינון באמצעות 'where'שימוש ב-'.toList()'בדיקת תנאים באמצעות 'any'תנאים באמצעות 'every'איתור באמצעות 'firstWhere'סיכום – סינון נתונים5פרויקט: חישוב עגלת קניות
הגדרת הפרויקטהוספת פריטים לעגלה3קבוצות
מהי קבוצה?יצירת קבוצההוספה והסרה מקבוצותבדיקת נוכחות של איברים בקבוצההמרת רשימה לקבוצהאיחוד קבוצותחיתוך קבוצותהפרש קבוצותסיכום – רשימת אורחים ייחודית6טיפול בסיסי בשגיאות
מהן חריגות?בלוק ה-try-catchתפיסת חריגות באמצעות onבלוק ה-finallyהשלכת חריגהסיכום – חלוקה בטוחה9טיפוסי מנייה (Enums)
מה הם Enums?הגדרת Enum פשוטשימוש ב-Enums במשתניםEnums במשפטי 'switch'סיכום – רמזורתרגלו בעצמכם: קומפיילר Dart אונליין