סיכום – רמזור
חלק מהיחידה לוגיקה וזרימת התוכנית במסלול ה-Dart של Coddy. שיעור 62 מתוך 65.
אתגר
קלצרו מערכת מקיפה לניהול רמזורים, המדגימה את השליטה שלכם במנייה ובמשפטי switch. המשימה שלכם היא לבנות מערכת שיכולה לטפל במספר רמזורים ולספק לנהגים את הפעולות המתאימות.
- הגדירו מנייה בשם
TrafficLightעם שלושה ערכים:red,yellowו־green - צרו פונקציה בשם
getDriverActionשמקבלת פרמטר מסוגTrafficLightומחזירה את מחרוזת הפעולה המתאימה באמצעות משפט switch:- עבור
TrafficLight.red: החזירו"Stop" - עבור
TrafficLight.yellow: החזירו"Caution" - עבור
TrafficLight.green: החזירו"Go"
- עבור
- צרו פונקציה בשם
getWaitTimeשמקבלת פרמטר מסוגTrafficLightומחזירה את זמן ההמתנה בשניות באמצעות משפט switch:- עבור
TrafficLight.red: החזירו30 - עבור
TrafficLight.yellow: החזירו3 - עבור
TrafficLight.green: החזירו25
- עבור
- צרו שלושה משתנים לייצוג צמתים שונים:
intersection1מסוגTrafficLight, שערכו נקבע ל־TrafficLight.redintersection2מסוגTrafficLight, שערכו נקבע ל־TrafficLight.yellowintersection3מסוגTrafficLight, שערכו נקבע ל־TrafficLight.green
- עבור כל צומת, הדפיסו את המצב בתבנית המדויקת הזאת:
Intersection 1: Red light - Stop - Wait time: 30 secondsIntersection 2: Yellow light - Caution - Wait time: 3 secondsIntersection 3: Green light - Go - Wait time: 25 seconds
- הדמו שינוי ברצף הרמזור על ידי עדכון
intersection1ל־TrafficLight.green - הדפיסו את המצב המעודכן:
Updated Intersection 1: Green light - Go - Wait time: 25 seconds - צרו סיכום על ידי הדפסת:
Traffic system managing 3 intersections successfully
התוכנית שלכם צריכה להדגים את העוצמה שבשילוב מניות עם משפטי switch, ליצירת מערכת בטוחה מבחינת טיפוסים וקריאה לניהול תנועה. משפטי ה־switch חייבים לטפל בכל ערכי המנייה ולהחזיר בדיוק את המחרוזות והמספרים שצוינו למעלה.
נסו בעצמכם
import 'dart:io';
// TODO: הגדירו כאן את ה-enum TrafficLight
// TODO: צרו כאן את הפונקציה getDriverAction
// TODO: צרו כאן את הפונקציה getWaitTime
void main() {
// TODO: כתבו את הקוד שלכם למטה
// צרו משתנים עבור הצמתים
// הדפיסו את המצב של כל צומת
// עדכנו את intersection1 והדפיסו את המצב המעודכן
// הדפיסו סיכום
}כל השיעורים ביחידה לוגיקה וזרימת התוכנית
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 אונליין