
number מסוג Int32 עם הערך 237, ו-sum digits שמתחיל ב-0. בסוף אמור להיות בו 12, כלומר 2 ועוד 3 ועוד 7.number גדול מאפס, וכך הלולאה נעצרת כשאין עוד ספרות. בביטוי כותבים @[User::number] ולא את השם בלבד.sum digits את number % 10, כלומר שארית החלוקה ב-10 שהיא הספרה הימנית.number שווה ל-number לחלק ל-10. כיוון שהמשתנה שלם, נחתכת ספרת האחדות: 237 הופך ל-23, אחר כך 2 ואז 0. כל ביטוי כולל פעולה אחת בלבד, ולכן יש שני רכיבים.הטקסט המלא של הדקות הראשונות בהרצאה «לולאת For ב-SSIS - חלק 2» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
בדוגמא הבאה נציג שוב שימוש בלופ קונטיינר, לא שונה מהשימוש הקודם שאותו ראינו, כיצד לחשב 2 חזקת 10. הפעם נראה תרגיל נוסף על מנת לקבל מיומנות גבוהה יותר בעבודה מול לופ קונטיינר. שוב פעם נשפוך כאן את הלופ קונטיינר לתוך השולחן עבודה, כאן בתוך ה-Control Flow.
המטרה שלנו בתוכנית זה לקבל איזשהו מספר, לא כאינפוט מתוך המשתמש, לא נכניס אותו כתוך פרמטר, אלא נכניס אותו Hardcoded, אנחנו רוצים לקבל איזשהו מספר, נניח שהוא מספר תלת-ספרתי 237 ומה שאנחנו רוצים בעצם להחזיר זה את סכום הספרות שלו במקרה שלנו 7 ועוד 3 10 ועוד 2 12 אז אנחנו רוצים בעצם בסופו של דבר לקלוט איזשהו מספר אבל להחזיר את סכום הספרות שלו.
זו פעולה שלשמה אנחנו נצטרך לרוץ בלופ כל פעם לקחת מספר אחר מתוך אותו מספר תלת-ספרתי שקיבלנו, לקחת ספרה בודדת ולסכום אותם.
בואו נבצע זאת. לפני שנתחיל, רכיבים שאינם רלוונטיים, נכניס אותם לתוך Disabled. נעלה את הרכיב קצת למעלה על מנת לרווח את המקום.
ואנחנו כשירים להתחיל את התוכנית שלנו. אז כאמור, התוכנית שלנו רוצה לבצע סיכום של הספרות בתוך מספר נתון. לצורך כך נגדיר מספר משתנים. אז המספר שאיתו אנחנו נעבוד נקרא לו ה-number שלנו, בעצם המספר שאותו אנחנו רוצים לסכום, number יהיה מסוג in32.
לצורך הדוגמה כפלט ניתן לו את המספר 237 כפי שראינו. אנחנו רוצים לסכום את הספרות של 237 ולצורך כך יהיה לנו משתנה, סם דיג'יט סכום הספרות, הוא בהתחלה יהיה מאופס, בסוף התהליך אנחנו נרצה לראות שהוא שווה בעצם לסכום הספרות 2 ועוד 3 ועוד 7, דהיינו שווה ל-12.
סיימנו להגדיר שני משתנים, number ו-sum digits. מה שאנחנו צריכים לעשות זה להיכנס כאן בתוך הקונטיינר עצמו ולהגדיר אותו. בקונטיינר, כפי שראינו, אנחנו יכולים לעשות ערך התחלתי, מהו התנאי הבוליאני להמשך ביצוע הלולאה ומהו ההשמה תוך כדי הלולאה, כיצד אנחנו מקדמים את הקאונטר.
במקרה שלנו אין לנו תנאי התחלתי ואין לנו מה לקדם את הקאונטר, יש לנו רק תנאי מסוים שאותו אנחנו רוצים לראות שהוא מתקיים.
התנאי שלנו זה כל עוד המספר, הnumber שלי בעצם, כל עוד הוא גדול מאפס. מאחר וכל עוד הוא גדול מאפס, אנחנו כל פעם נעבור ספרה אחר ספרה עד שלא יישארו לנו ספרות, עד שהמספר עצמו יהיה שווה לאפס, אז אנחנו רוצים לצאת מהלולאה.
כשאנחנו מסמנים כזה דבר אז האקספרשן מיד צועק עליי, ה-number אני לא יודע מהו, אתה צריך להגיד לי שמדובר במשתנה וכדי לומר זאת בתוך אקספרשן אנחנו מקדמים אותו בסימן של סולמית, פרפיקס של הסולמית, כדי לסמן שמדובר כאן במספר.
מה אנחנו נעשה בתוך הלולאה עצמה? שוב פעם, להשתמש באקספרשן, ניקח לנו את הביטוי expression task, ובתור ביטוי התחלתי מה שאנחנו נרצה לעשות, זה בעצם לסכום לתוך ה-sum digit, להכניס לתוך sum digit את מה שכבר היה בו מאיטרציה קודמת, אבל לסכם את הספרה הנוכחית שיש לנו.
כדי למצוא את הספרה הנוכחית, אז אנחנו לוקחים את המספר ועושים לו מודולו. מה פירוש מודולו? אנחנו לוקחים את המספר, נחלק אותו ב-10, וכאשר לוקחים מספר ומחלקים אותו ב-10 אבל לוקחים רק את השארית, אז אנחנו בעצם לוקחים את הספרה הימנית ביותר.
ביצוע של מודולו זה האופרטור אחוז, ומה שאנחנו רוצים לבצע זה את המספר כאן 10. מה שעשינו כאן בהינתן את המספר 237, כשאנחנו מבצעים עליו מודולו 10, זאת אומרת שאנחנו מחלקים אותו ב-10 אבל לוקחים רק את השארית.
השארית של חלוקת 237 ב-10, התוצאה היא 23 ועוד 7 לחלק ל-10, כלומר השארית היא 7. ולכן במודולו 237 מודולו 10 אנחנו מקבלים כאן את המספר 7.
זה המספר שאותו אנחנו רוצים לסכום. בהמשך נרצה לקחת את 237 ולקצץ ממנו את ה-7. את זה אנחנו נעשה על ידי זה שנחלק ב-10. מספר שלם שמחלקים אותו ב-10, אנחנו בעצם חותכים את הספרת האחדות כיוון שזה יוצא 23.7 ולוקחים רק את החלק השלם 23 ואנחנו מקבלים כאן את 23 בחלוקה ל-7.
כלומר חתכנו מספר 1 וניתן להתקדם קדימה. זה בדיוק מה שאנחנו נעשה בשתי הפקודות של האקספרשן שלפנינו. האקספרשן הראשון ייקח כל פעם את ספרת האחדות ויסכום אותה.
באקספריישן השני אנחנו נעדכן את אותה מספר שאיתו אנחנו מתחילים להיות פחות ספרת האחדות בקיצוץ של ספרת האחדות. בואו נעשה זאת. אז הנה הביטוי כאן שלפנינו סוכם לנו את המספר יחד עם ספרת האחדות.
זהו האקספריישן הראשון. בכל אקספריישן אנחנו חייבים להכניס ביטוי אחד בלבד, אז ניצור אקספריישן נוסף. באקספריישן הזה נסבר את אוזננו ונכתוב שמה מה שעשינו כאן זה לקחנו את הדיג'יט וסכמנו אותה.
סם דה דיג'יט של האחדות. סיכמנו את ספרת האחדות. כאן מה שאנחנו רוצים לעשות זה בעצם לחתוך