פרק חמישי, חלק שני כיתה ד'
עמודים: 189, 197, 203-204, 207, 224-227
בתכנית הלימודים
90 דקות עיוני משולב מעשי
תכנים ומושגים:
לולאות ותנאים
הקדמה:
בשיעור הקודם הילדים למדו מהם חיישנים ומה המשותף להם ולחושים שלנו.
הכרנו לילדים את המושגים בקרה בחוג פתוח ובקרה בחוג סגור והתקנו את חיישן המגע על הרובוט. בשיעור זה נכיר לילדים את מושג הלולאות והתנאים בתכנות.
הקניית המושג "לולאה"
בטרם נגדיר יחד עם הילדים את מושג הלולאה, נציג בפני הילדים את התכנית הבאה ליצירת ריבוע.
חלקו לילדים את דף העבודה ובקשו מהם לבצע את המשימה הראשונה.
נשאל:
אילו שורות בתכנית חוזרות על עצמן?
מה הפלט של השורות החוזרות?
כמה פעמים השורות הזהות חוזרות על עצמן?
מה לדעתכם יהיה פלט הרובוט לתכנית זאת?
האם יש לכם רעיון כיצד ניתן לקצר את מספר הפקודות בתכנית זאת למספר הקטן ביותר.
המטרה להגיע עם הילדים להגדרת המושג לולאה ולהגיע לכך שנוכל לרשום לולאה שתפעל ארבע פעמים ותיצור את אותו הפלט שרשמנו למעלה. בקשו מהילדים לרשום בדף העבודה את התכנית בלולאה החוזרת על עצמה ארבע פעמים.
התכנית:
לולאה (בתכנות)
סדרת פקודת החוזרות על עצמן. לולאה היא מבנה בקרה, כלומר, מבנה המארגן את זרימת ביצוע פקודות בתכנית מחשב/תסריט. לולאה מוגבלת על ידי מספר, מאפשרת חזרה על קבוצת פקודות מספר פעמים.
לולאת 'לעולמים'
מבנה בקרה המאפשר ביצוע חוזר ללא סיום של קבוצת פקודות. הלולאה תתבצע אינסוף פעמים ועצירתה תהיה על ידי לחיצה, בו זמנית, של הכפתור המרכזי והכפתור התחתון ברובוט שלנו.
הערה למורה–
בדרך כלל מדעני מחשב ומתכנתים לא משתמשים במבנה של לולאה אינסופית– 'לעולמים', לעיתים זה אירוע של שגיאה שכותב הקוד לא הבחין שתנאי הלולאה לא מתקיים ויש ביצוע אינסופי. בשפת סקרטץ' ובמיוחד בתכנות משחקים ואנימציות יש שימוש יותר תדיר בלולאה 'לעולמים'. אנחנו נשתמש בלולאת 'לעולמים' במסגרת תכנית רובוטיקה ובמיוחד בהקשר לנושא חיישנים.
דוגמה להסבר המושג לולאה:
אם המורה אומר לתלמיד לצאת החוצה מהכיתה למשך 15 דקות, ניתן לומר שהתלמיד פועל בלולאה. סדרת הפקודות החוזרת על עצמה היא: להישאר בחוץ.
התנאי לסיום הלולאה: עברו 15 דקות.
באופן זה, כל עוד לא עברו 15 דקות, ימשיך התלמיד ויבצע את פקודת “הישאר בחוץ”. לאחר שיסתיימו 15 הדקות תסתיים הלולאה והתלמיד יוכל להמשיך בתוכנית, כלומר להיכנס חזרה לכיתה.
שאל את התלמידים:
האם אתם מכירים דוגמאות לפלט של מכשירים הפועלים בלולאות?
דוגמה:
רמזור פועל תחת לולאה, סידרת הפעולות אדום, כתום, ירוק חוזרת על עצמה כל הזמן.
מהו התנאי להפסקתה? אין תנאי, זוהי לולאה אינסופית כלומר ממשיכה ללא סוף.
לולאת ' ח ז ו ר _ פ ע מ י ם '
לולאת 'חזור _פעמים' היא לולאה המתבצעת מספר פעמים ידוע מראש. בתרגיל שבצעתם עתה בדף העבודה, הרובוט שלנו יצר נסיעה בצורת ריבוע. לאחר מכן יצרנו לולאה שתפעל ארבע פעמים לביצוע אותן פקודות ליצירת צלע אחת וסיבוב של 90 מעלות.
קיימים כמה סוגי לולאות בהתאם לאופי התנאי המביא לסיומן:
לולאת לעולמים
לולאה אינסופית –פועלת ללא הפסקה- אין תנאי להפסקתה.
מבנה:
'בצע לעולמים'
משפט ביצוע
משפט ביצוע
לולאה המוגבלת בזמן
לולאה הפועלת למשך X שניות/דקות/שעות וכו’.
לולאה מבוקרת
לולאה המוגבלת במס’ הפעמים– כלומר לאחר X חזרות של סדרת הפעולות תסתיים הלולאה.
מבנה:
'חזור (ביטוי) פעמים'
משפט ביצוע
לולאה מותנת
לולאה המוגבלת בערך כלשהו – למשל עד אשר חיישן המרחק יעביר ערך הקטן מ 20 ס”מ.
מבנה:
'חזור עד ש' (תנאי)
משפט ביצוע
משימה–
בקשו מהילדים לבצע את משימה 2 בדף העבודה.
במשימה זו הילדים יתכנתו לולאה החוזרת על עצמה 6 פעמים ליצירת רצף אורות צבעוניים החוזר על עצמו.
אפשרויות תכנות חיישן המגע
לבנת התכנות המתייחסת לקלט החיישן היא "חיישן מגע לחוץ"
כאמור, חיישן המגע הוא אמצעי פלט דיגיטלי ויש לו רק שתי אפשרויות: כשלחוץ = אמת = 1
או לא לחוץ = שקר = 0. כדי להקל על הילדים בתכנות, נוצרה לבנת תכנות "חיישן מגע לחוץ" כך שהילדים לא צריכים ליצור משוואה בעזרת המפעילים. ברגע שהם בוחרים בלבנת התכנות הזו, ברירת המחדל היא שחיישן המגע לחוץ.
בלוק התכנות הזה ישמש אותנו בצירוף עם בלוקים נוספים של תנאים ולולאות, אותן נכיר בשיעור זה.
לולאות ותנאים– מבוא למורה
התכניות שכתבנו עד עתה, פעלו בצורה זהה בכל פעם שהרצנו אותן. למשל רובוט נוסע ישר למשך 5 שניות ועוצר, יבצע את אותו הפלט בכל פעם שנריץ את התכנית. דרך תכנות זאת נקראת תכנות במבנה סדרתי, תכנית מסוג זה כוללת הוראה אחת או יותר, המתבצעות על פי סדר הופעתן.
לדוגמה:
הפעל מנוע B במהירות 50 קדימה
הפעל מנוע C במהירות 50 קדימה
חכה 5 שניות
עצור מנוע B
עצור מנוע C
תכנית הבנויה במבנה תנאי , תכיל בתוכה תנאי שישפיע על מהלך התכנית.
לדוגמה:
הפעל מנוע B במהירות 50 קדימה
הפעל מנוע C במהירות 50 קדימה
חכה עד שחיישן מגע לחוץ
עצור מנוע B
עצור מנוע C
והמבנה הנוסף אותו הכרנו עתה הוא תכנית במבנה לולאה. מבנה זה מאפשר לנו לחזור על פקודות תכנות הנמצאות בתוך הלולאה מספר פעמים הנחוץ לנו לביצוע המשימה.
אפשר לשלב בין סוגי הכתיבה וליצור תכנת במבנה סדרתי עם מבנה תנאי ולולאה.
עתה, לאחר שהתקנו על הרובוט את החיישן הראשון אותו נלמד, חיישן המגע, וכדי שנוכל לשלוט על מהלך התכנית נשתמש בתנאים. התנאים מאפשרים לנו לומר לתכנית להפעיל, או לא להפעיל פקודות מסוימות בהתאם לתנאים שהגדרנו. נוכל לגרום לתכנית "לקבל החלטות" במהלך הרצתה.
בתכנות חיישן המגע, נשתמש בתנאי בוליאני, תנאי שתוצאתו יכולה להיות אמת (true) או שקר (false). כאשר התנאי מתקיים = אמת, תופעל פקודת התכנות הבאה אחריו. כאשר התנאי אינו מתקיים = שקר, התכנית לא תבצע את הפקודות הכתובות לאחר התנאי ותמשיך לפעול כפי שפעלה עד עתה.
בכיתה נתחיל בהסבר התנאי:
נשאל- מה זה תנאי? תנו דוגמאות לתנאים.
דוגמאות:
- אם הגעת לצומת דרכים, פנה שמאלה
- אם תסיים את המטלות שלך תוכל להיפגש עם חברים
- אם תדליק את מתג הנורה יידלק אור בחדר
- אם ירד גשם ההפסקה תתקיים במבואת בית הספר
- אם אקליד סיסמא נכונה בחשבון המחשב שלי אוכל להיכנס לחשבון שלי
נשאל- מה חשיבות התנאי בעבודה עם תכנית מחשב?
תנאי בתכנית מחשב, מאפשר לנו ליצור בקרה (שליטה) על רצף התכנית.
אם תנאי מסוים יתקיים, התכנית תמשיך ממקום מסוים ואם לא יתקיים פעולה אחרת בתכנית תפעל.
תרגיל כיתה:
נבחר במשחק המוכר לילדים:
משימה 3 בדף העבודה.
"אבן, ניר ומספרים"
בואו נמיר זאת יחד עימם לתנאים:
- אם אחד השחקנים מראה אבן והשני נייר אז הנייר ניצח כי הוא יכול לכסות את האבן.
- אם אחד השחקנים מראה מספריים והשני נייר, המספריים ניצח כי הוא גוזר את הנייר.
- אם אחד השחקנים מראה אבן והשני מספריים, האבן ניצחה כי היא שוברת את המספריים
- אם שני השחקנים מראים אותו דבר, התוצאה בין השניים היא תיקו.
התנאי מאפשר לנו לתכנת את הרובוט להגיב בהתאם לקלט המתקבל מהסביבה.
סיכום
ביחידת שיעור זאת למדנו יחד עם הילדים על לולאות ותנאים. בשיעור הבא נתחיל ליישם את התכנות יחד עם הפעלת הרובוט ושימוש בחיישן המגע.