אתגר: ספירת תנועות
חלק מהיחידה לוגיקה וזרימת התוכנית במסלול ה-Dart של Coddy. שיעור 64 מתוך 65.
אתגר
קלצרו פונקציה בשם countVowels שמנתחת טקסט וסופרת את מספר התנועות שהוא מכיל. האתגר הזה משלב מניפולציה של מחרוזות, לולאות ולוגיקה מותנית כדי לפתור בעיה מעשית של עיבוד טקסט.
המשימה שלכם:
- צרו פונקציה בשם
countVowelsשמקבלת פרמטר יחיד מסוגStringבשםtext - על הפונקציה לספור את כל התנועות בטקסט:
a,e,i,oו-u - הספירה חייבת להתבצע ללא תלות באותיות רישיות או קטנות (יש לספור תנועות באותיות גדולות ובאותיות קטנות)
- על הפונקציה להחזיר ערך מסוג
intהמייצג את המספר הכולל של התנועות שנמצאו - קראו מחרוזת קלט מהמשתמש
- קראו לפונקציה
countVowelsעם מחרוזת הקלט - הדפיסו את התוצאה בפורמט המדויק:
Vowel count: X(כאשר X הוא מספר התנועות)
על הפונקציה לעבור על כל תו במחרוזת, להמיר אותו לאות קטנה לצורך ההשוואה, ולבדוק אם הוא תואם לאחת מחמש התנועות. השתמשו במשתנה מונה כדי לעקוב אחר המספר הכולל של התנועות שנמצאו.
לדוגמה, אם הקלט הוא "Hello World", התוכנית שלכם אמורה להציג:
Vowel count: 3אם הקלט הוא "Programming", התוכנית שלכם אמורה להציג:
Vowel count: 3אם הקלט הוא מחרוזת ריקה "", התוכנית שלכם אמורה להציג:
Vowel count: 0הפתרון שלכם אמור להדגים שימוש נכון במעבר על מחרוזת, במשפטים מותנים לבדיקת תווים שהם תנועות, ובשיטה toLowerCase() כדי לבצע השוואה ללא תלות באותיות רישיות או קטנות.
נסו בעצמכם
import 'dart:io';
// TODO: צרו כאן את הפונקציה countVowels שלכם
void main() {
// קראו את הקלט
String? text = stdin.readLineSync();
// TODO: קראו לפונקציה countVowels שלכם ושמרו את התוצאה
// הציגו את התוצאה כפלט
print('Vowel count: $result');
}כל השיעורים ביחידה לוגיקה וזרימת התוכנית
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 אונליין