הרובוט המתוכנת
דף תרגול במבוא לשפות תכנות
בתרגול נכתוב הוראות לרובוט, נעקוב אחר ביצוען ונבדוק כיצד אותו רצף מיוצג במילים ובספרות בינאריות.
מילון הפקודות
- STEP - התקדמות משבצת אחת בכיוון שאליו הרובוט פונה.
- RIGHT - פנייה ימינה ברבע סיבוב, ללא תזוזה.
- LEFT - פנייה שמאלה ברבע סיבוב, ללא תזוזה.
- STOP - סיום התוכנית.
ימין ושמאל נקבעים ביחס לרובוט. בכל שאלה מתחילים מחדש במיקום ובכיוון שניתנו. שורה 1 היא העליונה; עמודה 1 היא השמאלית.
1 · מעקב אחרי תוכנית
הרובוט מתחיל בשורה 5, בעמודה 1 ופונה למעלה. אין מכשולים. בצעו לפי הסדר, משמאל לימין:
STEP → STEP → RIGHT → STEP → STOPא. באיזו שורה ובאיזו עמודה הרובוט מסיים?
ב. לאיזה כיוון הוא פונה בסיום?
ג. כמה פקודות בוצעו? בכמה משבצות הרובוט התקדם?
2 · כתיבת תוכנית
החץ בלוח מסמן את מיקום הרובוט ואת כיוונו בתחילת התוכנית. הכוכב הוא היעד. אין מכשולים.
| ★ | ||||
| ↑ |
א. כתבו תוכנית שתוביל את הרובוט אל הכוכב ותסתיים ב־STOP.
ב. כמה פקודות יש בתוכנית שלכם? כמה מהן פקודות STEP?
חושבים כמו מתכנתים
3 · איתור שגיאה ותיקונה
הרובוט מתחיל בשורה 5, בעמודה 1 ופונה למעלה. היעד נמצא בשורה 3, בעמודה 2. אין מכשולים. נכתבה התוכנית הבאה:
STEP → RIGHT → STEP → STEP → STOPא. לאיזה מיקום מגיע הרובוט בפועל?
ב. שנו את סדר הפקודות בלבד כדי להגיע ליעד. השתמשו בכל הפקודות הנתונות.
ג. כל הפקודות בתוכנית המקורית חוקיות. מדוע בכל זאת התוכנית שגויה?
4 · ממילים לספרות בינאריות
בשפה המדומה של המשחק כל פקודה מיוצגת באמצעות זוג ספרות:
STEP = 00 RIGHT = 01 LEFT = 10 STOP = 11א. תרגמו את התוכנית הבאה לרצף בינארי. השאירו רווח בין כל זוג ספרות.
STEP → STEP → RIGHT → STEP → STOPב. תרגמו את הרצף הבינארי הבא לפקודות:
00 01 00 10 00 11ג. האם החלפת המילים בספרות משנה את פעולות הרובוט? הסבירו.
5 · חוקי השפה
א. נוספה לתוכנית הפקודה GO, שאינה קיימת במילון. מה הבעיה?
ב. מדוע ההוראה ״תתקדם קצת״ אינה מתאימה לשפה שלנו?
6 · אתגר במשחק
פתחו את משימה 2 במשחק. כתבו תוכנית שעוקפת את המכשול ומגיעה ליעד. לפני ההרצה, נסו לחזות את מסלול הרובוט.
הריצו צעד אחר צעד. אם תיקנתם את התוכנית, תארו פקודה אחת ששיניתם ומדוע.
לתזכורת: הייצוג הבינארי בתרגול הוא שפה מדומה לצורכי לימוד, ולא מערכת הוראות של מעבד אמיתי.