PracticU

Recursion Diagram

בלי כתוביותעם כתוביות
PracticU › קורס יסודות התכנות - שפת JAVA - קורס ג'אווה למתחילים › Recursion Diagram
Recursion Diagram

בשיעור זה רוצים לראות משהו שקשור לזיכרון ולפעילות הפנימית של הרקורסיה, זה בעצם דיאגרמת הרקורסיה, והולכים לראות פה דיאגרמה של מה בעצם התרחש כאשר קוראים לרקורסיה שוב ושוב, ובואו נראה.
נושאי הסיכום המוצגים בשיעור:
1. נקודת הפתיחה של הדיאגרמה: נניח שיש לנו פה את הפונקציה הראשית ואנחנו רוצים להסתכל על פונקציית הצגת הכוכביות שכתבנו ולשלוח לה את המספר שלוש, ויש לנו פה קריאה לפונקציה הזאת, וכאן נפתח מופע ראשון של הפונקציה כשהמספר שווה שלוש בפונקציית ההצגה.
2. המופע הראשון: מה שרואים הוא שיש לנו כאן את תנאי היציאה, והתנאי היציאה הזה לא מתקיים כרגע כי המספר בעצם לא שווה לאפס, ולכן התוכנית ממשיכה ומדפיסה לנו כוכבית ראשונה על המסך, ולאחר מכן מבצעת קריאה רקורסיבית ושולחת את המספר פחות אחד, ובואו נראה מה קורה בקריאה הרקורסיבית.
3. הקריאה הרקורסיבית כמופע חדש: מה שקורה בקריאה הרקורסיבית זה קריאה לכאילו פונקציה חדשה לגמרי עם מופע חדש שבו כל המשתנים נפתחים מההתחלה, ואין פה קפיצה לכאן להתחלה של הפונקציה, אלא יש פה פתיחה חדשה לגמרי, וכאן המספר שווה שניים, וכאשר המופע הזה של הפונקציה עכשיו הוא ממתין בזיכרון עד שהמופע הזה ייסגר, ואנחנו מתחילים מופע חדש.
4. המופע השני והשלישי: פונקציית ההצגה נפתחת כשהמספר שווה שניים, ושניים לא שווה לאפס, והנה כוכבית שנייה שמדפיסים ושוב פעם קוראים רקורסיבית לפונקציה ושולחים שניים פחות אחת זה אחד, ובואו נבצע את הקריאה הבאה ונפתח מופע חדש, ושימו לב עכשיו ששני המופעים האלה ממתינים, כמובן שהמיין פה גם כן ממתין כי הוא עדיין ממתין לסיום הפונקציה הראשונה שנקראה, ואנחנו מפעילים עכשיו מופע חדש כשהמספר שווה אחד, ומספר שווה אחד זאת אומרת שהוא לא אפס וממשיכים, מציגים על המסך עוד כוכבית, וזה כוכבית מספר שלוש שמוצגת למסך, ושימו לב, רצינו להדפיס שלוש כוכביות, זאת הכוכבית האחרונה.
5. המופע הרביעי שבו מתקיים תנאי היציאה: ושוב פעם קוראים לפונקציה, שולחים את המספר פחות אחד, ובואו ניכנס שוב פעם לפונקציה, ויש לנו מופע רביעי שנפתח, אבל הפעם המספר ששלחנו הוא אפס, אחד פחות אחד זה אפס, ואנחנו מקבלים פה אפס, וכאן תנאי היציאה מתבצע, המספר שווה אפס, התשובה אמת, ואנחנו נכנסים לפעולת החזרה ואנחנו לא ממשיכים.
6. סגירת המופעים בסדר הפוך: בואו נסתכל מה יקרה עכשיו, המערכת מהפעולה של החזרה חוזרת למופע הזה והמופע הרביעי נסגר לגמרי, ובואו נראה מה קורה הלאה, המופע השלישי נסגר אחרי שהוא כבר עשה את העבודה שלו והדפיס את הכוכבית שלו, המופע השני נסגר עכשיו ולבסוף המופע הראשון נסגר, ואנחנו חוזרים בחזרה לפונקציה הראשית.
7. המסקנה מהדיאגרמה: כל הרקורסיה נפתחה ארבע פעמים, נסגרה, כאשר תוך כדי זה היא הציגה שלוש כוכביות על המסך.
סיכום:
בשיעור זה ראינו בדיאגרמה מה קורה בזיכרון ברקורסיה, כל קריאה רקורסיבית פותחת מופע חדש ונפרד של הפונקציה עם משתנים משלו בזמן שהמופעים הקודמים ממתינים, עד שמגיעים למופע שבו מתקיים תנאי היציאה ואז המופעים נסגרים אחד אחר השני בסדר הפוך והשליטה חוזרת לפונקציה הראשית, וכך הבנו מדוע רקורסיה צורכת זיכרון לכל מופע פתוח, ובשיעור הבא נתרגל רקורסיה בג'אווה.
בשיעור הבא נעסוק בנושא תרגול רקורסיה בג'אווה.
SR11180HE

פרקי ההרצאה: Recursion Diagram

  1. 00:00

    דיאגרמה של קריאות רקורסיביות

  2. 00:39

    הדפסת כוכבית ושליחת n פחות 1

  3. 01:15

    מופע חדש של הפונקציה וההמתנה לו

  4. 01:51

    מופעים ממתינים בזיכרון במהלך הקריאות

תמלול ההרצאה: Recursion Diagram

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

  1. 00:02

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

  2. 00:21

    אז בואו נראה. נניח שיש לנו פה את המיין ואנחנו רוצים להסתכל על הפונקציה Print Stars שכתבנו ולשלוח לה את המספר 3.

  3. 00:31

    יש לנו פה קריאה ל-Print Stars. כאן נפתח מופע ראשון של הפונקציה n שווה 3 בפרינט סטארס. מה שאנחנו רואים ושיש לנו כאן את התנאי יציאה והתנאי יציאה הזה לא מתקיים כרגע n בעצם לא שווה ל-0.

  4. 00:51

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

  5. 01:02

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

  6. 01:29

    אנחנו מתחילים מופע חדש. print stars n שווה 2, 2 לא שווה ל-0. הנה כוכבית שנייה שאנחנו מדפיסים ושוב פעם קוראים רקורסיבית לפרינט סטארס ושולחים 2 פחות 1 זה 1. בואו נבצע את הקריאה הבאה ונפתח מופע חדש.

  7. 01:46

    שימו לב עכשיו שני המופעים האלה ממתינים כמובן שהמיין פה גם כן ממתין כי הוא עדיין ממתין לסיום הפרינט סטארס הראשונה שנקראה ואנחנו מפעילים עכשיו מופע חדש n בו שווה 1.

  8. 02:00

    n שווה 1 זאת אומרת שהוא לא 0 אנחנו ממשיכים שים על המסך עוד כוכבית,

ההרצאה הקודמת: Writing Recursion

ההרצאה הבאה: תרגול רקורסיה בג'אווה

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

  • רקורסיה - Recursion
  • Virtual Networks Diagram

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

  • קורס מבוא ל-QA - מידע חשוב לבודק תוכנה
  • קורס פוסטמן - Postman - בדיקות לאתרי אינטרנט - API
  • קורס Robot Framework - בדיקות QA ממשק גרפי
  • קורס סלניום בסיסי - בדיקות אוטומטיות - Selenium
  • קורס סלניום מתקדם - CI/CD - Continues Integration
  • קורס מייבן - Maven