מותאם לתוכנית הלימודים
פרק חמישי, חלק שלישי כיתה ד'
עמודים 195, 197, 203-204, 224-227 בתכנית הלימודים |
90 דקות עיוני משולב מעשי
תכנות חיישן מגע
תכנות: לולאות ותנאים תוך כדי שימוש בלולאות ובתנאים.
בשיעור הקודם הילדים למדו מה זה לולאות ותנאים, בשיעור זה ניישם את הנלמד בשיעור הקודם בתכנות חיישן המגע.
בשיעורים הקודמים התקנו על הרובוט את חיישן המגע וחיברנו אותו ליציאה 1 בבקר הרובוט.
עתה, אנו רוצים להתחיל בתכנות חיישן המג על הרובוט ותוך כדי כך נכיר את התנאים והלולאות המתאימים לשימוש עם חיישן המגע.
נתחיל עם:
כאשר נשלב פקודה זאת בתכנית, כל הפקודות עד פקודה זו יבוצעו, הרובוט יבדוק אם התנאי מתקיים. רק אם הוא יתקיים יופעלו הפקודות הרשומות לאחר מכן.
זה מזכיר את הדוגמה בשיעור הקודם, בה ילד יוצא מחוץ לכיתה וצריך לחזור לאחר 15 דקות. הילד מחכה בחוץ עד שיעברו 15 דקות. כאן הרובוט שלנו יבצע פקודות ויחכה עד שתנאי הלחיצה על חיישן המגע יתקיים. אם התנאי יתקיים ימשיך לפקודות הרשומות לאחר התנאי.
הציגו בפני הילדים את התכנית הבאה. בקשו מהם לרשום את האלגוריתם לתכנית ומה יהיה הפלט שיתבצע.
הפעל מנועים לנסיעה קדימה
חכה עד שחיישן מגע ילחץ
עצור מנועים
רובוט ייסע ישר, הוא יעצור במידה וילחצו על לחצן חיישן המגע שלו.
הפקודות הפעל מנועים תתבצענה והרובוט ייסע ישר ללא הפסקה, הפקודה "חכה עד שחיישן מגע לחוץ" מחכה לתוצאת אמת. ברגע שנלחץ על החיישן, כך שהתנאי יתממש, הפקודות לאחר התנאי תתבצענה והרובוט יעצור. שימו לב שאין צורך בבלוק חכה לאחר הפעלת המנועים, מה שמאפשר את ההפעלה הרציפה של המנועים, זה התנאי ששמנו אחריהם שגורם למנועים לפעול ללא הפסקה עד שהתנאי יהיה "אמת".
בקשו מהילדים לתכנת את התכנית ולבדוק האם היא מתבצעת כמצופה.
מכיוון שזאת התכנית הראשונה שהם מתכנתים עם חיישן המגע, הזכירו להם שבעת פתיחת ה downloader- עליהם להגדיר את חיישן המגע בכניסה 1.
לאחר הביצוע סכמו את הניסוי עם הילדים.
הפנו את הילדים לביצוע משימה מספר 1 בדף העבודה.
התכנית שרשמנו למעלה בעזרת "חכה עד ש.. יכולה להתבצע באופן דומה גם עם לולאת התנאי חזור עד ש… לולאה עם תנאי יציאה.
מתרחשת כל עוד לא מתקיים תנאי הלולאה.
בפקודת "חכה עד ש…" יש מעין לולאת until שיש לה תנאי יציאה. "אם חיישן מגע לחוץ- צא מהלולאה ותמשיך לפקודה הבאה.
לולאת חזור עד ש… זהה בעצם לפקודת חכה עד ש… אך מאפשרת לנו להכניס אפשרויות נוספות בתוך הלולאה למשל נגן צליל, הבהב אורות שיופעלו בלולאה וכדומה.
הפנו את הילדים למשימה מספר 2 בדף העבודה. עליהם לתכנת את הרובוט וחיישן המגע יחד עם לולאת חזור עד ש…
בצעו את משימה 2 בדף העבודה.
הציגו בפני הילדים את שתי התכניות, דונו בהבדלים ביניהן.
תכנית א' תכנית ב'
אם אנחנו רוצים שהתנאי ייבדק כל הזמן נבנה את תכנית ב'.
שימו לב, בתכנית ב', הוצאנו את הפעלת המנוע אל מחוץ ללולאה והתנאי חזור עד ש… משמש כתנאי ליציאה ממנה ואז עם השהייה לאחר עצירת המנועים, הכל מתחיל מחדש.
משפט 'אם' הוא מבנה בקרה על זרימת ביצוע תסריט. כשהמחשב מבצע קבוצת פקודות בכל שפת תכנות הוא מבצע את הפקודות באופן סדרתי, כלומר פקודה אחר פקודה. אולם לעיתים צריך לבדוק האם התרחש מצב מסוים ולפעול בהתאם לתוצאת הבדיקה. משפט 'אם' מאפשר, בשילוב ביטוי לוגי, לבצע קבוצת פקודת מסוימות רק אם התנאי שנבדק הוא 'אמת'.
מבנה בקרת זרימת ביצוע תכנית של משפט זה מאפשר כתיבת קבוצת פקודות. אם התנאי אכן התקיים, כלומר "אמת" יתבצעו הפקודות בתוך הלולאה ואם לא "שקר" התכנית תמשיך בביצוע הרגיל שלה לפני התנאי.
לולאה זו מאפשרת לנו לקבל תשובה 'אמת' או 'שקר' לתנאי שנבדק. אנחנו משלבים הוראות ביצוע בהתאם לתוצאת התנאי שנבדק. כדי שלולאת התנאי הנ"ל תבדוק את התנאי יותר מפעם אחת, עלינו להשתמש בלולאה שתקבע את מספר הפעמים בו התנאי ייבדק או להשתמש בלולאת לעולמים.
נגדיר את התנאי, לדוגמה חיישן מגע לחוץ , אם התנאי מתקיים, כלומר "אמת" תתבצענה הפקודות שרשומות במחיצה זו. אם התנאי אינו מתקיים והתכנית איננה בלולאה היא תסתיים.
לולאה זו מאפשרת לנו לקבל תשובה 'אמת' או 'שקר' למצבים שנבדקים בהוראות אלו, ואנחנו משלבים הוראות ביצוע בהתאם לתשובה מתנאי הבדיקה.
נגדיר את התנאי, לדוגמה חיישן מגע לחוץ , אם התנאי מתקיים, כלומר "אמת" תתבצענה הפקודות שרשומות במחיצה זו. אם התנאי אינו מתקיים, כלומר "שקר", תתבצע הפקודות הרשומות באזור האם לא.
התכנית כתובה בלולאה כדי שהבדיקה תתבצע כל הזמן .
הציגו את התכנית הבאה:
מה לדעתכם יהיה הפלט שיבצע הרובוט?
האם הרובוט ימשיך לנוע לאחר שנלחץ על חיישן המגע?
הלולאה תפעל עד ש… מה שהגדרנו בתוכה, למשל עד שהחיישן נלחץ. הרובוט יסע ישר קדימה עד שנלחץ על חיישן המגע. הרובוט לא ימשיך לנסוע לאחר הלחיצה כי פקודות הפעל המנוע אינן בלולאה ויבוצעו עד קיום התנאי בלבד. הזכירו לילדים שכאשר אנו שמים את התנאי בלולאת לעולמים, השאלה נשאלת שוב ושוב ושוב. אין לנו שליטה על תנאי יציאה מהלולאה והתכנית מתבצעת ללא סוף. הדרך היחידה לצאת מהתכנית היא ללחוץ פיסית על כפתורי הרובוט (האמצעי והתחתון).
בקשו מהילדים לבצע את משימה 3 בדף העבודה תוך כדי שימוש בלולאת לעולמים.
חיישן המגע הוא החיישן הראשון עמו עבדנו. החיישן מאפשר לרובוט לקבל משוב מהסביבה ולהגיב בהתאם לתכנית שנכתבה לו מראש.
כדי שנוכל להפיק תועלת מהמידע הנקלט על ידי החיישן עלינו לתכנת תכנית המאפשרת תנאים שונים הנבדקים מעת לעת ומאפשרים תגובה מתאימה לקלט שנקלט בחיישן.
כדי לחזור על בדיקת התנאים שוב ושוב עלינו להשתמש בלולאות המאפשרות חזרה על פקודות באופן מבוקר.