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