חלק ראשון | Page 80

‫‪  ‬‬ ‫כך‪  ‬שיהיה‪:‬‬ ‫‪  ‬‬ ‫‪for‬‬ ‫­‪-‬‬ ‫את‪  ‬החלק‪  ‬הפנימי‪  ‬של‪  ‬לולאת‪  ‬ה‬ ‫‪  ‬‬ ‫ו‬ ‫‪  .‬תקנ‬ ‫‪68‬‬ ‫למרחק‪  ‬הנכון‪  .‬בדיוק‪  ‬כמו‪  ‬שעשינו‪  ‬בשלב‪  ‬‬ ‫‪  ‬‬ ‫‪  turnTo‬‬ ‫‪s‬‬ ‫‪step‬‬ ‫‪distanceTo‬‬ ‫‪s‬‬ ‫‪  ‬‬ ‫‪  ‬‬ ‫את‪  ‬הכיתה‪  ‬אם‪  ‬הם‪  ‬יכולים‪  ‬להציע‪  ‬דרך‪  ‬‬ ‫‪  ‬‬ ‫ו‬ ‫עכשיו‪  ‬יש‪  ‬להריץ‪  ‬את‪  ‬הקוד‪  .‬הוא‪  ‬יקבל‪  ‬רק‪  ‬כוכב‪  ‬אחד‪  ,‬אז‪  ‬שאל‬ ‫‪  ‬‬ ‫!‬ ‫‪goto‬‬ ‫­‪-‬‬ ‫שתשיג‪  ‬שלושה‪  ‬כוכבים‪  .‬רמז‪  :‬להשתמש‪  ‬ב‬ ‫‪  ‬‬ ‫‪  ‬‬ ‫‪  ,‬שעושה‪  ‬בדיוק‪  ‬את‪  ‬אותו‪  ‬הדבר‪  ‬כמו‪  ‬‬ ‫‪goto‬‬ ‫­‪-‬‬ ‫אנחנו‪  ‬יכולים‪  ‬להשתמש‪  ‬ב‬ ‫‪  ‬‬ ‫‪gotoAll‬‬ ‫התשובה‪  ‬היא‪  ‬שבתוך‪  ‬‬ ‫‪  ‬‬ ‫‪  .‬זה‪  ‬יחסוך‪  ‬לנו‪  ‬שורה‪  ‬אחת‪  ‬של‪  ‬קוד‪.‬‬ ‫‪for‬‬ ‫­‪-‬‬ ‫בתוך‪  ‬לולאת‪  ‬ה‬ ‫‪  ‬‬ ‫שתי‪  ‬שורות‪  ‬הקוד‬ ‫‪  ‬‬ ‫‪  ‬‬ ‫‪  ‬‬ ‫נחליף‪  ‬את‪  ‬הקוד‪  ‬שבתוך‪  ‬הלולאה‪  ‬ב‪:‬‬ ‫‪  goto‬‬ ‫‪s‬‬ ‫‪  ‬‬ ‫‪  ‬‬ ‫‪  .‬זה‪  ‬דבר‪  ‬‬ ‫‪goto‬‬ ‫‪  ,‬אשר‪  ‬בתורה‪  ‬קוראת‪  ‬לפונקציה‪  ‬‬ ‫‪gotoAll‬‬ ‫יש‪  ‬להסביר‪  ‬שהקוד‪  ‬הראשי‪  ‬קורא‪  ‬לפונקציה‪  ‬‬ ‫נפוץ‪  ‬מאוד‪  ‬בקידוד‪  :‬פונקציה‪  ‬אחת‪  ‬קוראת‪  ‬לפונקציה‪  ‬אחרת‪  ,‬אשר‪  ‬קוראת‪  ‬לפונקציה‪  ‬אחרת‪  ‬וכך‪  ‬‬ ‫מחסנית‪  ‬‬ ‫‪  ‬‬ ‫ה‪  .‬התוצאה‪  ‬היא‪  ‬מחסנית‪  ‬שלמה‪  ‬של‪  ‬פונקציות‪  ‬שקוראות‪  ‬אחד‪  ‬לשניה‪  ,‬שנקראת‪:‬‬ ‫הלא‬ ‫‪  ‬‬ ‫נפעיל‪  ‬את‪  ‬הקוד‪  ‬שוב‪  ‬כדי‪  ‬להשיג‪  ‬שלושה‪  ‬כוכבים‪.‬‬ ‫‪  ‬‬ ‫הקריאה‪.‬‬ ‫‪  ‬‬ ‫‪  ‬‬ ‫שלוש‪  ‬דקות‬ ‫‪  ‬‬ ‫הדרכה‪  ‬בסיסית‪  ‬‬ ‫‪  ‬‬ ‫‪  ‬‬ ‫‪  ‬‬ ‫‪  ‬‬ ‫‪  ‬‬ ‫‪  ‬‬ ‫‪.‬‬ ‫במידת‪  ‬הצורך‬ ‫את‪  ‬הקוד‪  ‬‬ ‫‪  ‬‬ ‫ו‬ ‫ואפס‬ ‫‪  ‬‬ ‫‪83‬‬ ‫את‪  ‬שלב‪  ‬מספר‪  ‬‬ ‫‪  ‬‬ ‫ו‬ ‫פתח‬ ‫‪  ‬‬ ‫‪  ‬‬ ‫שות‪  ‬כדי‪  ‬לפתור‪  ‬את‪  ‬השלב‪  .‬ברגע‪  ‬‬ ‫מה‪  ‬לע‬ ‫כם‪  ‬‬ ‫לחפש‪  ‬רמז‪  ‬בתגובות‪  ,‬ולומר‪  ‬ל‬ ‫‪  ‬‬ ‫שלכם‬ ‫לתלמידים‪  ‬‬ ‫‪  ‬‬ ‫הורו‬ ‫מהם‪  ‬לכתוב‪  ‬פסאודו‪  ‬‬ ‫‪  ‬‬ ‫ו‬ ‫‪  ,‬בקש‬ ‫‪getAndReturn‬‬ ‫שהם‪  ‬הגיעו‪  ‬למסקנה‪  ‬שהם‪  ‬צריכים‪  ‬לתקן‪  ‬את‪  ‬הפונקציה‪  ‬‬ ‫‪  ‬‬ ‫קוד‪  ‬שייצג‪  ‬את‪  ‬הקוד‪  ‬שיהיה‪  ‬בתוך‪  ‬הפונקציה‪.‬‬ ‫‪  ‬‬ ‫‪  ‬‬ ‫‪  ‬‬ ‫יש‪  ‬להתחיל‪  ‬מההערה‪  ‬שמעל‪  ‬הפונקציה‪:‬‬ ‫‪  ‬‬ ‫‪  ‬‬ ‫‪r‬‬ ‫ׂך‬ ‫ךט‬ ‫רעדן‬ ‫ממנו‬ ‫שבאת‬ ‫לאן‬ ‫תחזור‬ ‫אז‬ ‫‪80‬‬ ‫לב‪  ‬כי‪  ‬שלושת‪  ‬השורות‪  ‬‬ ‫‪  ‬‬ ‫ו‬ ‫התוכן‪  ‬הנוכחי‪  ‬של‪  ‬הפונקציה‪  .‬שימ‬ ‫‪  ‬‬ ‫את‪  ‬הפסאודו‪  ‬קוד‪  ‬הזה‪  ‬עם‬ ‫‪  ‬‬ ‫השוו‬ ‫עכשיו‪  ,‬‬ ‫‪  ‬‬ ‫"‪  ,‬ולכן‪  ‬יש‪  ‬שני‪  ‬דברים‪  ‬חסרים‪:‬‬ ‫‪get  to  r‬‬ ‫תואמות‪  ‬ל"‬ ‫‪  ‬‬ ‫‪  ‬‬ ‫‪1.  ‬‬ ‫‪grab()    ‬‬ ‫‪2.  ‬‬ ‫‪return    ‬‬ ‫‪  ‬‬