PracticU

לולאה בתוך לולאה - Nested Loop

בלי כתוביותעם כתוביות
PracticU › קורס יסודות התכנות - שפת C# .NET - קורס תכנות למתחילים - דוט-נט / סי-שארפ - חומר לימוד של מדעי המחשב › לולאה בתוך לולאה - Nested Loop
מילון מושגים:
לולאה - מבנה בקרה שחוזר על קטע קוד שוב ושוב כל עוד תנאי מתקיים או עבור כל פריט באוסף.
משתנה - שם שמפנה למקום בזיכרון שבו נשמר ערך שיכול להשתנות במהלך ריצת התוכנית, כמו מספר, טקסט או אובייקט.

לולאה בתוך לולאה - Nested Loop
הסרטון מציג לולאה מקוננת - לולאה בתוך לולאה - ומסביר מתי היא נחוצה, בעזרת ציור קו של כוכביות ובניית לוח כפל.
השלבים העיקריים
1. הגדרה: כל סוג לולאה יכול להיות בתוך כל סוג לולאה אחר, למשל for בתוך do while, או while בתוך for.
2. ציור קו: המשתמש מכניס מספר, ומציירים שורה של כוכביות באורכו בעזרת for. כדי לאפשר ציור חוזר, עוטפים את הקלט והציור בלולאת do while חיצונית, שרצה כל עוד המשתמש מכניס מספר חיובי. כשמכניסים 0 או מספר שלילי התוכנית מסתיימת.
3. לוח הכפל: הלולאה החיצונית מייצגת את השורות, מ-1 עד 10. הפנימית רצה על העמודות, ובכל שורה היא מתחילה מההתחלה. לכן הפנימית משתמשת במשתנה אחר, j, כי i כבר תפוס.
4. סדר הריצה: בלולאה הפנימית i לא משתנה, ולכן מודפסים 10 פעמים אותו מספר באותה שורה. כשמדפיסים j, מקבלים בכל שורה את המספרים 1 עד 10.
שימו לב
לולאה מקוננת לא מדברת על סוג הלולאה, אלא רק על כך שלולאה נמצאת בתוך לולאה אחרת. שלוש לולאות מקוננות אפשריות, אבל נדירות.
לולאה מקוננת מתאימה לעבודה עם שורות ועמודות, ובתנאי שיודעים כמה פעמים כל לולאה צריכה לרוץ.
השיעור הבא בקורס: לולאות - For, While (שפת #C)

פרקי ההרצאה: לולאה בתוך לולאה - Nested Loop

  1. 00:00

    מה זו לולאה מקוננת (Nested Loop)

  2. 01:01

    קליטת מספר וציור קו בכוכביות

  3. 02:26

    עטיפה בלולאת do-while לקלט חוזר

  4. 04:27

    לולאה פנימית בתוך החיצונית

  5. 05:02

    לולאות מקוננות מכל סוג

  6. 05:39

    לוח הכפל כשורות בלולאה

  7. 06:34

    מתי מתאימה לולאת for

תמלול ההרצאה: לולאה בתוך לולאה - Nested Loop

הטקסט המלא של הדקות הראשונות בהרצאה «לולאה בתוך לולאה - Nested Loop» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:01

    הדבר הבא שאנחנו הולכים לראות עדיין בנושא הלולאות נקרא לולאה מקוננת. באנגלית זה נקרא Nested Loop. מה זה אומר? זה אומר לולאה בתוך לולאה.

  2. 00:14

    למה זה נושא סופר חשוב בעולם האלגוריתמיקה? בכל תוכנית כמעט בעולם קורה מצב שאנחנו רוצים לבצע איזושהי לולאה, אבל אנחנו רוצים לבצע את הלולאה עצמה שוב ושוב פעמים.

  3. 00:27

    זה אומר שיש לנו לולאה בתוך לולאה אחרת. אם את כל הסיפור הזה אנחנו רוצים לבצע שוב ושוב פעמים, זה כבר הופך לשלוש לולאות מקוננות. יכול להיות ארבע לולאות מקוננות וכולי, אבל זה כבר הופך להיות מאוד נדיר, אבל זה גם כן קיים.

  4. 00:42

    אנחנו הולכים לראות דוגמה ללולאה בתוך לולאה פעם אחת בלבד, כלומר שתי לולאות מקוננות מה שנקרא. אז בואו נראה דוגמה לפעילות כזאת. נניח שאנחנו רוצים לומר למשתמש Enter a number for drawing one line.

  5. 01:14

    נקלוט את המספר שלו, רוצה כמובן קונברג'ן ואנחנו רוצים עכשיו פשוט מאוד לצייר קו של בוא נניח כוכביות על המסך אז כמובן שהלולאה שאנחנו נבחר כאן זה לולאת 4 וכמובן שצריכה להיות לנו לולאה אחת ויחידה שעושה את זה כל מה שאנחנו רוצים לעשות זה i שווה 1 כל עוד i קטן או שווה לNAM זה אומר שהוא רץ בדיוק NAM פעמים אנחנו רוצים להציג על המסך כוכבית אחת סך הכל יודפסו פה

  6. 02:04

    נם כוכביות בוא נניח שאחרי זה נראה תשואה נריץ את זה נקבל 10 ואנחנו רואים שאנחנו מדפיסים 10 כוכביות נקבל 3 ואנחנו רואים שאנחנו מדפיסים 3 כוכביות נקבל 20 ויש לנו 20 כוכביות עכשיו בואו נשדרג את התוכנית ונגיד למשתמש לעשות את זה שוב ושוב עד שבוא

  7. 02:33

    נניח הוא מכניס איזשהו מספר לדוגמה 0 ברגע שהוא הכניס 0 אנחנו רוצים לצאת או שלילי בואו משדרג את זה enter number for drawing כיוונתי לכתוב פה one line for ending enter 0 or negative number בסדר יש לנו פה את הקלט ומה שאנחנו רוצים לעשות זה לעטוף בעצם את כל זה באיזושהי לולאה בוא נניח לולאת do

  8. 03:06

    כרגע כי קודם כל אנחנו רוצים לקלוט ואחר כך לבצע את הפעולה יש לנו פה while num אנחנו רואים שהוא לא מכיר את num ולכן נוציא את num פה החוצה במקום להגדיר אותו בתוך הלולאה while num גדול מאפס תמשיך ותבקש עוד מספר ועוד מספר אפילו את זה אפשר להוציא גם כן החוצה שההצגה הזאת תצג פעם אחת אז בואו נריץ enter a number for drawing one line for ending enter zero or

  9. 03:53

    negative number אז בואו נניח שאנחנו מכניסים 10 ואנחנו רואים one line נכניס ואנחנו רואים קו באורך 30. נכניס 5, נכניס 2, נכניס 1, 7, מינוס 8, תוכנית הסתיימה.

  10. 04:15

    עכשיו, מה שקרה כאן זה לולאת דו-וייל חיצונית, שרצה כל עוד המשתמש מכניס מספר חיובי, ובתוכה לולאה, לולאת פור פנימית שהיא הלולאה המקוננת, שסך הכל מה שהיא עושה זה מציירת את אותו קו שהלקוח רצה לראות, שאנחנו רצינו להראות לו.

  11. 04:39

    אז זאתי דוגמה ראשונה ללולאה מקוננת. עכשיו, לולאה מקוננת לא מדברת על סוג הלולאה. זה סך הכל אומר לולאה כלשהי בתוך לולאה כלשהי אחרת.

  12. 04:49

    וזה יכול להיות for בתוך do while כמו שראינו כרגע, זה יכול להיות for בתוך while, while בתוך for, do while בתוך while, כל לולאה שאתם מכירים יכולה להיות בתוך כל לולאה אחרת.

  13. 05:05

    בואו ניקח דוגמה נוספת. נניח שאנחנו רוצים לצייר את בואו נניח לוח הכפל בגודל 5 על 5 או אפילו בואו נצייר את לוח הכפל המלא. לוח הכפל המלא אומר כזה דבר יש לנו 1 עד 10 לאחר מכן יש לנו 2 עד 20 בכפולות של 2 שורה חדשה יש לנו 3 עד 30 ולבסוף ככה שורה שורה לבסוף יש לנו 10 עד 100. לצורך

  14. 05:39

    כך אנחנו בעצם רוצים להציג שבה יש לנו שורות, וכל שורה יכולה להתבצע על ידי לולאה אחת ויחידה. אבל אנחנו רוצים 10 שורות, ולכן יש לנו פה עוד לולאה שעוטפת את הלולאה הפנימית.

  15. 05:56

    שתי הלולאות, נכון שהן יהיו לולאות פור, מפני שאנחנו יודעים בדיוק כמה לרוץ בכל לולאה. במקרה הקודם, שהשתמשנו פה בלולאת do while, אנחנו לא ידענו כמה לרוץ, כי אנחנו לא ידענו כמה פעמים הלקוח הולך להכניס מספר חיובי, לכן לא היינו יכולים כל כך לעשות לולאת 4

  16. 06:16

    או שהיינו יכולים אבל זה היה קצת לא טבעי. לולאת do while או לולאת while יכולות לרוץ אם אנחנו בעצם לא יודעים לפני ההתחלה של הלולאה כמה פעמים הלולאה הולכת לרוץ אלא רק תוך כדי הריצה אנחנו יודעים מתי להפסיק.

  17. 06:30

    לולאת 4 אם אנחנו יודעים מההתחלה כמה בדיוק לרוץ אפילו שקיבלנו את הנתון מהמשתמש לפני ביצוע הלולאה לולאת 4 יותר מתאימה. ולכן לולאה אחת אחראית על השורות והיא היא יכולה להתחיל מ-1 ולהסתיים ב-10.

  18. 06:53

    כאן יש לנו 10 שורות. אם אני פה אדפיס סתם את i ואירד שורה אני אראה שיש לי 1 עד 10. אז ככה אני יכול לשלוט על מספר שורות ולהציג 10 שורות.

  19. 07:05

    אבל אני לא רוצה להציג 1 עד 10. אני רוצה בתוך הלולאה להציג את כל המספרים מ-1 עד 10 באיתרציה הראשונה,

לקורס המלא: קורס C# למתחילים אונליין

ההרצאה הקודמת: Debugger

ההרצאה הבאה: לולאות - For, While (שפת #C)

הרצאות קשורות מקורסים אחרים

  • פקודת break בתוך לולאה
  • פקודת Select בתוך Select
  • אובייקט בתוך אובייקט ב-PowerShell
  • קובץ הגדרות בתוך Git

קורסים נוספים במסלול

  • קורס פיתוח משחקים יוניטי - Unity - שפת #C