14. רקורסיה

TurtleAcademy learn programming for freeYour browser is not supporting canvas We recomand you to use Chrome or Firefox browsers
בשיעור "הצב לומד " ראינו כיצד אנו מלמדים את הצב פקודות חדשות על ידי שימוש במילה למד , אנחנו יכולים גם ללמד את הצב פקודות שמצפים לקבל כקלט פרמטר : למשל למד התקדם :שם_משתנה קד :שם_משתנה כעת הצב יצפה לערך אחרי הפקודה התקדם .. למשל התקדם 40.
למד את הצב את הפקודה "התקדם" עם הפרמטר "גודל"
כפי שראינו בשלב הקודם , אפשר ללמוד את הצב פעולה שמצפה לפרמטר כקלט , וכפי שראינו בשיעורים קודמים כדי ללמד את הצב מהו ריבוע ניתן להשתמש בפקודה הבאה למד ריבוע חזור 4 [ קד מספר_מסויים ימ 90].
למד את הצב את הפקודה ריבוע שמצפה למשתנה "גודל" בתור פרמטר , המשתנה גודל יקבע את גודל הריבוע
כבר יצרנו את הפקודה ריבוע ההמצפה לפרמטר .. בואו נבדוק שזה אכן עובד , אנחנו יכולים לרשום את הפקודה: ריבוע 60 או ריבוע 80 וכדומה .
רשום את הפקודה ריבוע 100
כאשר הפקודה שלמד הצב קוראת לעצמה (עם שינוי בפרמטרים) התהליך של הקריאה העצמית נקרא רקורסיה. ברקורסיה אנחנו חייבים תנאי עצירה ( אנחנו לא רוצים להגיע למצב של לולאה אין-סופית ) וקריאה לפקדומה עם פרמטרים חדשים . נשמע מסובך ?? אין מה לדאוג .. אנחנו נעבור את זה צעד אחרי צעד , בואו ונלמד את הצב את הפקודה ריבוע ע"י שימוש ברקורסיה.
למד את הצב את הפקודה הבאה : למד ריבוע :גודל אם :גודל > 90 [עצור] חזור 4 [קד :גודל ימ 90] ריבוע :גודל+20 סוף
בואו נראה מה קורה מאחוריי הקלעים כאשר אנו קוראים לריבוע40 בתחילה אנו קוראים לפקודה ריבוע 40 , הערך של המשתנה :גודל הוא 40 , ואז אנחנו משתמשים בתנאי אם , אנחנו בעצם שואלים את הצב האם המשתנה :גודל > 90 אם כן אז עצור את התכנית ( זהו בעצם התנאי עצירה ) אם המשתנה :גודל <=90 אז נבצע את הפקודות הבאות נצייר ריבוע בגודל הפרמטר :גודל (כרגע 40) ונקרא לריבוע עם הערך :גודל + 20 (60) כרגע נקראה הפקודה ריבוע 60 . ה :גודל<90 ולכן נצייר ריבוע בגודל 60 ונקרא ל.. :גודל + 20 כרגע נקראת הפקודה ריבוע 80 ה :גודל<90 ולכן נצייר ריבוע בגודל 80 ונקרא ל :גודל +20 כרגע נקראת הפקודה ריבוע 100 הגודל > 90 ולכן נבצע את הפקודה עצור . וכן תופסק פעות התכנית.
רשום את הפקודה ריבוע 40
כעת נלמד את הצב מהי ספירלה , הספירלה תקבל פרמטר 1 הנקרא :גודל , תנאי העצירה שלנו יהיה כאשר :גודל > 30 , בכל קריאה אנחנו נזוז קדימה לפי הגודל של המשתנה :גודל , קד :גודל ואז נפנה ימינה 15 ( ימ 15) , ההוראה הסופית תהיה לקרא לספירלה עם המשתנה :גודל * 1.02.
למד את הצב מהי ספירלה