- שנה: 1986
- מחבר: דני קדם יצחק קליסקי
- מו"ל: מחשבת
- פורמט: ספר
- נמסר ע"י: Júda Ronén
- תגיות: Basic תכנות
OCR (הסבר)
1
| מחשבת
מחשבת
צעדים מתקדמים בתכנות
בלימוד עצמי
יחידה 3
פיתוח משחקי מחשב-טלויזיה
5|)?3 ה
חל איסור מוחלט להעתיק או לשכפל יחידת לימוד זו בשלמותה או בחלקה
לכל מטרה שהיא או לעשות בה שימוש מסחרי כלשהו, ללא רעוות בכתב
מאת חברת מחשבת - מ.ל. בעיים.
198660 - כל הזכויות שמורות למחשבת - ם.ל. בעיים. '
ח.ד. 48032 ת" א מיקוד 61480.
הוצאה לאור - מחשבת מ.ל. בעיים.
פתח
פרק
פרק
פרק
פרק
פרק
פרק
תוכן העניינים
71 >+9א%א.%%.א4 300 4 >., :.
א - עיפרון ולדאו .........
ב - יורים ברעילם 4 אא 0 +,
ג - משחק?ל מספרלם 9א:,, של
ר = מלרוצל כסופ7ה +%,',*,)+34-.%.-+4א+.
ה - קליטת נתונלם ...... 344 +ר+,.
ו - מחפשלם את המטמון: משחק מסכם ...
נספח: מספרים אקראללם "אמלתללם"
רשימת מושגים נלמדלם ...........
8 5 0005-5005 0-0 0-98- 1/3
פמתחת דבר
את יחילדת הללמוד השלישית אנחנר מקדלשלם לפלתוח משחקי מחשב-טלולזלה
מגוונים.
תוך כדי פיתוח המשחקלם, תלמד להשתלט על מושגים נוספלס בשפת ה-516ג8
כן, שבסיום הלימוד של ?לחידת ללמוד זאת תוכל כבר לתכנת ברמה מתקדמת,
עסם כל הכלים רבי העוצמה שבשפת ה-58516.
(תוכל לעיין ברשימת המושגים הנלמדים בעמוד 56 בחוברת זאת.)
לחידת לימוד זאת, כמו הקודמות, בנולה כך, שהלא מהווה אתגר מחשבתל
ותכנותי גם לאלה מכם אשר עברו כבר קורס בבייסלק,
נסה להתמודד בסבלנות עס האתגרים המוצבים בפניך ביחלדת ללמרד זאת
בכוחות עצמך, ורק אחר כך פנה לתשובות.
רק בדרך זאת תרכוש הרגל?ל חשיבה ועבודה נכונלם.
טעות לעולם חוזרת...
אנחנו מקווים כי לחוברת אין "בגים". אם בכל זאת תמצא כזה - נשמח
אם תתקשר אלינו כך, שנוכל לתקן זאת במהדורה הבאה. בכל מקרה, אם
תתקל בבעלה לא מובנת נשמח לעזור לך, צלצל ל-03-492723 ונען...
באיחרלי המשך לימוד
פורה רמהנת
דני קדם ולצחק קל?סקל
"מחשבת" - מערכות כלמילדה
פרק א
עפרון וידאו
המשימה המרכזית בפרק זה תהיה לפתח תוכנלת "עפרון-וידלאו",
שתבצע את הפעולות הבאות:
הרצת את התוכנית: הופיעה
כוכבית במרכז המסך.
% ; את
לחצת על המקש א. הכוכבית
נראית זזה ?למילנה ומותירה
אחריה שורה של כוכביות: 4 %
לחצת על המקש א. טור הכוכביות
לורד למטה, וממשיך לרדת כל
אלא % :
זמן שתמשיך ללחוץ על המקש א. . ץ
וכך הלאה לגב? המקשים
נ ו-1.
הערה: בחרנו את ארבעת
המקשילם 1, 1, א ו-א באופן שרירותי. באותה מלדה יכולנו
לבחור כל 4 מקשים אחרים!
עדיין אינך ילכול לבנות את תוכנית עיפרון-הולדאו.
חסרה לך עדיין פקודה שלא למדת.
א- חז. . זן - אם...אז.
מה תבצע התוכנית הבאה:
4 צטפאז 10
"00%" צאזתת אחחו 2-5 עד 20
0 70 60 50
שורה 20 פירושה:
אם (=!) המשתנה 8 שווה ל-5 (5-) אז (%=114) הדפס "א00%".
על נסה תחילה לחשוב מה תבצע התוכנ?ת על המסך, ואז.
(,) העתק את התוכנית למחשב והרץ אותה. (יש קלצור ל-אשחד!)
כאשר המחשב ממתין ל-1שעא1, הכנס מספרים שונלם (אל תשכח
אתמפצא). הכנס גם את המספר 5. מה קורה?
הסבר
בכל פעם שהמחשב מגיע לשורה 20 הוא בודק אם (ע1) 4=5:
* אם לא - המחשב אלנו ממשיך לבצע את שורה 20 ועובר הלאה,
לשורה 350.
* אם התנא?ל מתקיים - כלומר הכנסת את המספר 5 (4=5) - רק
אז המחשב ממשיך בשורה 20 אחר? המילה אטעך (אז) ומדפיס
את המחרוזת "200%".
למעשה, כבר עכשיו אתה יכול לתכנת את תוכנית "עפרון הולדאו",
אבל - כיון שפקודת ... אאעך ... ע1 כל כך חשובה בשפת
ה-28516, נתרגל אותה עוד קצת:
משימה: המחשב "יודע" אנגלית!
כתוב תוכנית שתבצע את הפעולות הבאות:
* אתה מכניס ב-1שעא1 את המספר 1 - המחשב מדפיס על המסך
"תאס".
* אתה מכניס את המספר 2 - המחשב כותב "סש17".
וכך הלאה: כל מספר (עד 10) שתכניס - המחשב כותב את המללה
האנגלית שלו.
(חתשובה 1)
משימות נוסנות
2 ) עליך לכתוב תוכנית שתבצע את כל הפעולות הבאות:
* בכל פעם שתלחץ על המקש של האות הראשונה של שמך,
התוכנית תדפיס את שמך המלא.
> כנ"ל לגבי שמות נוספלם שתבחר.
> בכל פעם שתלחץ על המקש "ע", המחשב ילדפיס את התוכנית
עצמה על המסך.
* התוכנית תכלל מנגנון השמדה-עצמלת: אם תלחץ על המקש
"א" התוכנית תשמילד את עצמה! (שחשא).
(תשובה 2)
פינת המשחק
2 ) כתוב תוכנילת אשר תאפשר לך לשחק את המשחק הבא נגד חברך:
> חברך יוצא מן החדר, ואתה מרלץ את התוכנית ומכניס,
ב-צטעא1, מספר "סודי" (עד 99) לתוך המחשב. התוכנילת
מוחקת את המספר מן המסך.
+ הברך הוזר אל החדר, מתללשב מול המחשב. המחשב שואל אותו
מה הניחוש שלו לגבי המספר הסודי שהכנסת.
* אם הניחוש גבוה מן המספר הסודי אז המחשב מודלע:
"גבוה מדל".
אם הניחוש נמוך מן המספר הסוד? אז המחשב מודיע:
"נמוך מדל".
אם הניחוש מדויק, אז המחשב מודיע לו שקלע בול!
* אח"כ אתם מתחלפים ועליך לנחש את מספרו הסודי של חברך.
מטרת המשחק - לנחש את המספר הסודי במלנימום ניחושים!
רמז
5 18 פירושו: אם 8 גדול מ-5
2 18 פירושו: אם 8 קטן מ-8
כסכנסככט)
כסכזכשכנ)
₪
חוזרים לעפרון הוידאו
כעת, לאחר שלמדת את פקודת אמע17-1, אפשר לחזור למשימה
המקורית - עיפרון-וידאו (ראה עמוד 6).
כתוב תוכנית שתבצע את משימת עיפרון-הולדאו.
מתקשה?
הנה רמז:
לב התוכנית הן שורות כאלו:
1א=א אע "א" = פָג עד
"א" דאדתע : א ,צ 10678
(תשובה 5)
האמת הלא, שבינתיים התוכנית קצת מסורבלת:
לאחר לחיצה על אחד ממקשי-המסמן (1, 1, א, א) עליך ללהוץ אמצאק
כדי שה"עיפרון" ינוע.
משכללים את עפרון הוידאו
כעת אנו רוצים שהתוכנלת תפעל באמת כמו שמתואר בעמוד 6:
* ללא צורך בלחיצה על אשדאם.
לשס כך יש צורך ללמוד פקודה חדשה:
%= אאו
במקום השורה 8% 201א1 שבתוכנית שלך -
כתוב ףצעעאז = 4%
אגב: אם למשתנה שלך קראת בשם אחר, למשל - 6% צשקאד, כמובן
שתשנה את השורה ל: סצעאאת = 0%
) הרץ את תוכנית עיפרון-הוידאו. לחץ על מקשי-המסמן ועקוב אחר
10
השינויים על המסך. אתה רואה כ? מתקבלת אותה תוצאה אך בהבדל אחד
רציני? ביותר:
> אינך צריך ללחוץ אמ1אם, בכל פעם שאתה לוחץ על אחד מהמקשלם
1, 1, א ו-א!
הסבר
ברור כל השינול שחל נעוץ בהכנסת ההוראה לצפאא1 לתוך התוכנלת.
מה תפקידה של ההוראה %צמאאדך?
כשהמחשב מגלע בתוכנית להוראה פצעאא1 הוא קורא איזה סימן לחוץ
וממשיך לרוץ בתוכנית.
ומה קורה אם כך, כאשר המחשב מבצע את הפקודה: לְצַעאאד=45?
המחשב מכנלס לתא של משתנה המחרוזת 8% את הסימן שעליו לחצת.
לדוגמא, ננלח שלחצת "1":
%צ= אא = 4%
ככ 2
סנסססשט
בדוגמא שלנו 49 שווה ל: "7 ₪ "ו );
כעת המחשב ממשיך בביצוע התוכנית ומצ?יר * בכיוון (מעלה,
מטה, למלנה, שמאלה).
כאשר המחשב חוזר שוב ל: פצעאא45=1 הוא מכניס לתא 8% את הסימן
שנמצא לחוץ באותו רגע.
-
-
= ))2
מגבילים את העפרון
ודאי שמת לב כי כאשר "העיפרון" חורג מגבולות המסך המחשב"מתרגז"..
אם לא שמת לב לכך, הזז את העיפרון ונסה לחרוג מהמסך בכיוונים
שונים, וראה מה קורה.
כדל למנוע התנהגות זאת:
הוסף עוד שורות לתוכנית כך, שהעיפרון לא לוכל לחרוג מגבולות
המסך.
(תשובה 4)
חידה
מה יקרה לדעתך אם במקום "*" זַא81ע2 המופיע בתוכנית, תשנה ל:
פא דאזתע? (בשורה 25)
הכנס את השינו? ובדוק!
לחץ על מקש א6425-1006 ולאחר מכן על אחד ממקשי העיפרון.
האם העיפרון פועל עכשלו?
מה הסיבה לכך שהוא אינו פועל?
(חשובה 5)
מבט נוסף על פקודת %צ=אוו
מה קורה כאשר המחשב מגיע לפקודת לצעאא1 ולא הקשת לפני כן על
סלמן כלשהו?
המחשב פשוט לוקח את המחרוזת הריקה ("")
ומכניס אותה לתא 4%. במקרה זה ערכו של משתנה המחרוזת 45
הוא: כ" "77" "כ "ם", "א),
במצב זה המחשב ממשיך ומתרוצץ "על-ריק" בתוכנית עד שאתה מקיש על
אחד ממקשי העיפרון.
מה עליך לעשות כדי להשתכנע ש: ""=8% (שווה למחרוזת הריקה) אם
אינך לוחץ על מקש כלשהו?
(תשובה 6)
11
ווצה להשתכנע כי המחשב מתרוצץ כל הזמן בתוכנית גם כאשר אינך
לוחץ על מקש כלשהו?
) פקוד על המחשב להשמיע צפצוף קצר בכל פעם שהוא עובר את השורה
לצמאא =45 .
(אינןך זוכר כיצד להשמלע צפצוף קצר? פנה ליחידה 1 עמוד 42).
(תשובה 7)
אתה בודא? שומע שהמחשב מצפצף כל הזמן - גם כשאינך לוחץ על מקש
כלשהו. דבר זה מוכיח שהוא מתרוצץ שוב ושוב בתוכנית בלולאה
אלנסופית גם כשאינך לוחץ על המקשים.
נסכם
השורה %צמאא8%=1 דומה מאוד ל-1שעא1 בכמה הבדללם:
* המחשב חולף במהירות על פני פקודת ה-פְצעאא1 בתוכנית.
אם לחצת על מקש כלשהו המחשב לקרא מהסימן שעליו לחצת. אם לא -
המחשב משתמש במחרוזת הריקה.
> בניגוד ל-ך1טסקא1 - פצסעאא1 קורא רק סימן אחד בכל פעם.
מחליפים את חוד העפרון
.) הוסף עוד שורות לתוכנית כך, שכאשר תלחץ על מקש מסויים (למשל
"/" - סימן החללוק) - המחשב יעבור לקטע תוכנית, אשר בו הוא
יחכה ב-201א1 שתלחץ על הסימן, שבעזרתו אתה מעונין שהוא לצליר
(זהו "חוד העיפרון").
גרום לכך, שהודעת ה-1חעא1 תופיע בפלנה השמאלית העליונה של
המסך, ולאחר שתזין את המחשב בחוד העיפרון החדש - כל מה שמופיע
בפינה השמאלית העליונה למחק.
(תשובה 8)
12
5
₪-
-
65 ₪ 0
משתמשים במקשי המסמן
ודא" שאלת את עצמך, מדוע אין אנו מציעים לך להשתמש במקשל
המסמן לצורך הנעת עיפרון-הולדלאו.
אלזה סימן יכנס לתא של משתנה המחרוזת 25 כאשר המחשר לבצע את
השורה:
לצסאאז = פס
ואתה תלחץ על מקש המסמן למלנה?
כדיל לבדוק זאת, וכד? לבדוק את שאר מקשל המסמן בצע את המשלמה
הבאה:
החל משורה 500 כתוב קטע תוכנית, שידפיס במרכז המסך כל מקש
עליו אתה לוחץ.
(תשובה 9)
הרץ את קטע התוכנית משורה 500. לחץ על מקשלם שונלם. לחץ גם
על מקשל-המסמן.
אם פעלת כשורה, הרל שבתגובה ללחלצות על מקשי המסמן המחשב
הדפיס על המסך את האותילות ע, א, 2 ו-א.
האם תוכל כעת להשתמש במקשי-המסמן כד?ל להניע את עיפרון-הולדלאו?
קרוב לודאל? שלא!
כיצד בכל זאת תשמש במקשי-המסמן?
הרץ שוב את קטע התוכנית משורה 500.
לחץ פעם אחת על מקש 206%-אזא:
מה לדפיס עכשיו המחשב כתגובה ללחלצות
₪|₪|₪| שןש
סםססט
על מקשי-המסמן? לאחר שחשבת...
לחץ על מקשי-המסמן השונים.
הפעם המחשב מדפיס את המספרים הכתובים על מקשל-המסמן!
בצע כעת את המשימה: הפוך את מקשל-המסמן למקשים של עיפרון-
הוידלאו.
(תשובה 10)
33
ל
)-
4
האם גם מקשי-הספרות הרגללים שבשורה העללונה של לוח המקשים
יוכלו כעת לשמש כמקשי-העיפרון?
(הכוונה לספרות 2, 4, 6 ו-8).
נסה!
נסכם:
= אם רוצלם להשתמש במקשי המסמן בתוך תוכנלת לש צורך לדאוג,
ע"" לחלצה על מקש (6425-1.008/ 1.00%-אטא) שמקשל
המסמן *היו במצב של (חלצים/מספרים).
אתגר למתכנת המתקדם
האם אתה יכול, בעזרת עיפרון-הוידאו שלך, לכתוב את שמך באותיות
ענק על המסך:
א א א 2 אא הא
א
4 =
3 /
5 7
5 1 /
ת א ש
8 א אא א (רמל)
בשלב זה המשימה היא כמעט בלתי אפשרית: כדל לנוע עם העיפרון בלי
לצייר אתה צריך להחליף את חוד העיפרון ל"רווח" - אבל במקרה כזה
אלנך יודע היכן נמצא חוד העיפרון!
הוסף עוד שורות לתוכנית כך, שכאשר תלחץ על מקש ה"-" למשל,
העלפרון יתקדם כמו קודם - אך לא לשאיר אחרלו סלמנלם:
4 .. [)]101]א 8 2 4 4
)|
כאןו לחצת על "-" ([] - מציין רווח)
ברגע שתלחץ על "=", למשל, העיפרון יחזור לקדמותו.
המשימה אלנה קלה כלל וכלל - נסה להתמודד איתה לפנ? שתפנה.ל...
(תשובה 11)
עפרון צבעוני
הוסף שורות כאלו לתוכנית כך שתוכל להחליף את צבעו של העיפרוו
בכל עת שתרצה.
(תשובה 12)
פרק ב
יורים ברעים
מל מאתנו לא שיחק לפחות פעם אחת באחד מאלפ? משחקל-
הטלויזיה?
הפעם, לשם שינוי, אתה עומד לבנות משחק כזה:
חללית "הרעים" (<) חולפת ללא
הרף לרוחב המסך משמאל לימין,
החללית שלך (5%) אורבת לה
למטה...
ברגע שנראה לך ש"הרעלים" (<)
נמצאים בדיוק מעל לחללית שלך,
אתה לוחץ על אחד המקשים שבחרת
בו להיות "הדק"...
ברגע זה נעצרת חללית "הרע לם"
והטלל שירית (*) מתחיל לעלות
מן החללית שלך לשר למעלה!
>
ו
+
5
מטורת המשחק לפגוע בחללית האוליב!
בוא נבדוק אם אתה כבר יודע את כל הפקודות הדרושות לבנית המשחק:
+ האם אתה יודע כיצד להנליע את הרעים לרוחב המסך? (כן/לא)
> האם אתה ?ודע לצייר את החללית שלך בתחתית המסך? (כן/לא)
> האם אתה יודע לכתוב פקודות כאלה, שהמחשב "ידע" מת? לחצת
על "ההדק"? (כן/לא)
> האם אתה ליודע כיצד להנליע את הטיל מן החללית שלך עד למעלה?
(כן / לא)
15
6-
16
ובכן, דע לך, כל התשובה לכל אחת מארבע השאלות שבעמוד הקודם
היא חיובית! בידך כל הכלים הדרושים על-מנת לכתוב תוכנלת מחשב
שתבצע את משחק-החלללות.
גש לעבודה
* קרא שוב בעיון את תלאור המשחק.
> בנה את התוכנית בשלבים - לפי? השאלות שבעמוד הקודם.
* בדוק כל שלב על המסך ותקן בגלם אפשריים.
למשל - בג אפשרל:
עם הלחיצה על "ההדק" נעלמת חללית האויב - עליך להעביר את
פקודת ה-ע1 למקום מתוחכם יותר.
הערה יתכן שהתוכנית שאתה תכתוב תהלה שונה מזאת שנציע לך
כפתרון. לא נורא - השווה בין שתי התוכנילות וראה איזה יותר
קצרה. בדרן כלל אפשר לכתוב כמה תוכנלות המבצעות אותה משימה.
מתקשה בכתיבת התוכנית?
נציע לך לפתח את התוכנית הבאה:
שלב 1
עליך להניע את חללית הרעים לרוחב המסך שוב ושוב ולהציב את
חללית הטובים במארב.
למעןו האמת, משימה כזאת ביצעת כבר ביחידה 2 פרק ו'.
(תשובה 15)
שלב 2
בשלב זה עליך לבחור את אחד המקשים בתור הדק. ננלח שתבחר במקש
0 כהדק:
כל זמן שמקש 0 אינו לחוץ - חללית הרעים ממשיכה לנוע ימינה.
ברגע שתלחץ על המקש 0 - המחשב יופנה לקטע תוכנית שיגרום לטיל
לעלות למעלה.
הנה סכימה הממחישה את מבנה התוכנית:
הרעים נעים על המסך
אבל - אם לחצת על ההדק:
הרעילם נעצרים והמחשב עובר
לחלק זה של התוכנלת, ומעלה הטלל שלך עולה למעלה
את הטלל כלפ?ל מעלה:
כדי לתכנת את ההדק, הוראת %צסאא1 תבוא לעזרתך.
שים לב לבג אפשרל:
לאחר לחיצה על ההדק - אסור שחללית הרעים תעלם מן המסך. אם זה
קורה עליך להעביר את שורת ההדק למקום מתוחכם יותר.
(תשובה 14)
שלב 3
כאן עליך לתכנת את הטיל עולה למעלה.
7 שלללי יבוא לעזרתך! (ראה יחידה 2 עמוד 42)
(תשובה 15)
סיימת לפתח את התוכגנלת "לורים ברעים".
177
18
קולות בחלל
בשלב זה ננצל את פקודת ה-2אש50 על מנת ללוות את תנועת חללית
הרעים והטיל בצלילים.
(אינך זוכר את פקודת ה-9עא500? פנה ללחלדה 1 עמוד 42).
עמוד 15).
בשלב ראשון עליך לשנות את התוכנית כך, שתנועת הרעים תלווה
בצליל שגובהו הולך וגדל ככל שחלללת הרעים נעה *מינה.
עצה
אנו ממליצים כי גובהו של הצליל יתחיל בסביבות 250.
לש לך את כל הכלים הדרושים לביצוע המשלמה - נסה להתמודד אליתה
לבדך.
עדיין מתקשה?
רמז
תוכל לנצל את משתנה הלולאה א על מנת לשנות את גובה הצללל.
הערה: בטל את ההשהליה שהיתה קודם! (שורה 50).
(תשובה 16)
משימה
הוסף לתוכנית שורות כאלו, שיגרמו למחשב להשמיע צלילים שגובהם
הולך ויורד ככל שהטלל עולה למעלה.
(תשובה 17)
משכללים את התוכנית
מתכנת חרוץ מנסה ללא הרף לשפר ולשכלל את התוכנית שהוא כותב!
הבה נשכלל גם אנחנו את התוכנלת.
שכלול 1
הכנס שיפור כזה בתוכנית, שהמשחק למשך גם אחרל? שהטלל נעלם.
בג אפשרי: חללית האויב מהירי הקודם (זאת שלא פגעת בה) נשארת על
המסך ומפריעה. דאג למחוק אותה.
(תשובה 18)
שכלול 2
הכנס לתוכנית פקודות כאלו, שיגרמו למחשב להדפיס על המסך לאחר
לרי כל טיל, את מספר הטללים שירית מתחילת המשחק.
רמז:
אתה זקוק למונה (1+א=א) - הזכר בשעון הדיגיטלי מיחידה 2. הכנס
אותו למקום מתאים בתוכנית. הרץ ובדוק אם אכן הוא סופר את
הטילים שירית.
(תשובה 19)
שכלול 3
נמאס לך לספור בעצמך את מספר הפגיעות שלך במטרה?
המחשב יעשה זאת עבורך בשמחה! (רק תגלד לו אלך...)
הבה נראה מה זאת אומרת, במונחי-מחשב, "פגלעה במטרה":
55
אם תחשוב ותענה על השאלות הבאות - תדע איך לפקוד על המחשב
לספור את פגיעותיך במטרה:
לירית טיל, והוא עולה למעלה - באיזו עמודה (א) צריכה להיות
חללית האויב על-מנת שהטיל יפגע בה? (5, 10, 55)
(ראה הדוגמא באלור)
נניח שבחרת (כמונו) במשתנה - % כמונה לפגיעות במטרה.
אלזו מהפקודות הבאות תתאלם לך:
א) 1 >= א דמז
ב) 1 דע אמחץ 55=א חך
ג) 1 מ אמחץ? 55=צ חך
(תשובה 20)
9
20
לא נותר לך אלא להכנלס את פקודת ה-"ע1" במקום הנכון, ולפקוד
על המחשב להדפיס את % במקום נוח על המסך.
הכנס את השיכלול לתוכנית ובדוק אם היא פועלת לשביעות רצונך.
(חתשובה 21)
שכלול 4
קסד - עצור
פקוד על המחשב לעצור (5102) את ריצת התוכנית אחרי ירי של
טיללים.
לשם כך השתמש בפקודת 5102 הגורמת למחשב לעצור את ריצת התוכנלת.
(תשובה 22)
הערה! אם התוכנית שלך ארוכה ואתה רוצה לראות חלקים ממגנה -
תוכל להשתמש בפקודות הבאות:
המחשב לצלג את התוכבית עד שורה /10: 0 - 1157 6
המחשב יצילג את שורות 160 עד 200: 70 59% 6
המחשב יציג את השורות מ-100 עד הסוף: - 100 1157 6
שכלול 5
פקוד על המחשב להדפלס את אחוזי הפגיעה לפני שהוא עוצר.
שכלול 6
לפני תחיללת המשחק המחשב שואל אותך באלזו מהירות אתה רוצה
שהרעים לחלפו על פני המסך.
שכלול 7
אנו משאירים לך לחשוב ולהמצלא את השכלול השבליעל..
ולסיום המשחק
כשתרצה למחוק את התוכנית הזאת מן הזיכרון - אל תכתוב "סתם"
חפא: הכנס שלנול כזה, שאם תפגע בחללית האויב - 10 פגיעות מתוך
9 נסיונות - התוכנית כולה תושמד!
אך לפנ? כן אולי כדא? שתשמור את התוכנית על דלסקט.
אלנך לודע כיצד לשמור תוכניות על דיסקטלם?
חוברת 4, העוסקת ב-05כ6-2ע תבוא לעזרתך...
=9)7
פרק ג
משחקי מספרים
המחשב כקוביה אלקטרונית
נתחיל בבניית תוכנית שתהפוך את המחשב לקוביה אלקטרונית:
בלחיצת כפתור הוא "לזרוק קוביה" ויראה לך איזה מספר עלה
בגורל!
נבנה את הקוביה צעד אחר צעד:
הרץ במחשב את התוכגנית הבאה:
עאפת צאזפק 10
20 60 10 0
עצור את ריצת התוכנית.
מה עושה הפקודה | סאא(אר.אן.ד') | בתוכנית?
היא פשוט אומרת למחשב להגריל מספרים .
(ובמילים אחרות: לבחור מספרים באקראל)
כל המספרים שהודפסו על המסך לותר גדולי?ם מ- (0.5, 0, 0.1)
ויותר קטנים מ- (2, 0.9, 1).
אגב: ילתכן שעל המסך לופיע מספר כדוגמת זה:
523 95
זו צורה אחרת לכתוב את השבר העשרונ?ל: 0.005156
הרץ את התוכנית שוב ושוב ובדוק אם צדקת.
נסכם:
מתוך הרצת התוכנית שוב ושוב נוכחת לדעת, כי הפקודה פאת בוחרת
באקראיל (מגרילה), מספרים בין 0 לבין 1 (אך לעולם לא את המספרים
/ ו-1 עצמם - נסה!)
21
₪(
₪( 59)( )(
2
ועכשיו לקוביה
שנה את התוכנית כך, שהמחשב *בחר מספרים בין 8 לבין 6
(בקוביה 6 צדדלם):
* עאת דצאזפץ 10
0 10 20/60
(חתשובה 25)
הרץ את התוכנית שוב ושוב וראה אם הלא אכן מדפ?סה מספרל?ם בין
0 לבין 6. אבל בקוביה רגילה המספרים הם שלמלם בל? שברלים...
כדי לבנות קוביה "אלקטרונית" ניפטר מן השברים באופן הבא:
(6* עאת) עא1 צאזפק 10
0 70 60 20
דא (אִינְטָג'ר) - 658 זא] פירושו מספר השלמים.
לדוגמא: 4 = (4.5) 1אז
פעולתו של +א1 פשוטה ביותר - מכל מספר הוא "לוקח" רק את מה
שכתוב משמאל לנקודה העשרונית - רק את מספר השלמלים (זאת לגבי
מספרילם חלובילם).
כמה, לדעתך, שווה:
(7.99) 1אד
תחילה חשוב, ואח"כ:
כתוב (7,99) תאז צ1אזפק
ובדוק אם צדקת.
הרץ את התוכנית שבמחשב שוב ושוב וענה על השאלות:
על המסך הופלע גם המספר 0. האם מספר זה נמצא גם בקוביה
אמיתית? (כן/לא)
בקוביה אמלתית מופיע גם המספר 6. האם גם על המסך, בקוביה
האלקטרונית שלך, הופיע המספר 6? (כן /לא)
כלומר - המחשב "מגריל" מספרים מ-0 עד 5, במקום מ-1 עד 6,
כמו בקוביה אמלתלת.
6-
6-
-
כ () ₪
0 ₪
שנה את התוכנית כך שתתגבר על הבג ותפעל כקוביה אמילתית:
+ (6*עא2) 1א1 דאזפק 10
0 10 60 20
(תשובה 24)
הרץ את התוכנית שוב ושוב ובדוק אם אכן כל אחד מן המספרלם
06 אכן הופלע על המסך לפחות פעם אחת.
פינת הטוטו
כתוב תוכנית שתמלא עבורך טורים בטופס ה"טוטו":
0 - תיקו.
1 - קבוצה מס' 1 מנצחת.
2 - קבוצה מס' 2 מנצחת.
(תשובה 25)
לתוכנית יש בג
הרץ את התוכנלת מספר פעמים.
האם שמת לב כי בכל פעם שאתה מריץ את התוכנלת מחדש מתקבל
אותו טור?
המחשב חוזר ומגריל בכל פעם אותם מספרלם!
כיצד ניתן להתגבר על בג זה?
הקפד לעבוד בגירסת 34510 הנקראת: 845168
(אלנך לודע כיצד? - ראה לחידה 4 פרק א')
הוסף את השורה הבאה:
((2 ,8%ע717) 8108715) הט מ25דעססאגת 5
הרץ את התוכנית פעם אחר פעם וראה שאכן המחשב מגריל בכל פעם
מספרים שונים.
הקופסה השחורה
אתה בודאל שואל את עצמך מה סודה של השורה החדשה שהכנסת
לתוכנית, אשר גרמה לכך שבכל הרצה יתקבלו מספרלם אקראללם
שונים.
23
24
בינתיים התייחס אל שורה זאת כ"קופסה-שחורה". כלומר, אינך
מבין אלך הילא פועלת - אבל אתה לודע להשתמש בה על מנת לקבל
מספרים אקראללם שונים.
למעשה, בח?לל לום-יום אתה משתמש בהרבה "קופסאות שחורות" -
אתה יודע להשתמש בטלויזיה אך האם אתה מבין בדיוק את אופן
פעולתה?
אם אתה בכל זאת מעונין להבין את פעולתה של שורה זאת תוכל
לפנות לנספח: מספרים אקראללם "אמלתיים" בעמוד 52.
כעת אפשר להשתעשע מעט בזריקת 2 קוביות
כתוב תוכנילת כזאת, שבכל פעם שתלחץ על מקש כלשהו, המחשב לצליג
על המסך תוצאות של זרלקת 2 קובלות:
+ הוסף מסגרות למספרלם.
> צבע את המסגרות והמספרים כרצונך
> כאשר שנ" המספרים זהילם - דבל -
מתחילה חגיגה קטנה על המסך:
נשמעים צליללים והמסך מחליף
צבעים.
שטיח אקראי
כתתוב תוכנית שתצייר על המסך, במקומות אקראיילם כוכבלות:
שנה את התוכנית כך:
* שהמחשב לצבע את הכוכביות בצבעלם
אקראלים,
* שהמחשב לשמלע צלילים אקראלים
תוך כד?ל הצגת הכוכביות. דאג
לכך שגובה הצלילים *נוע בין
0 ל-7506.
(תשובה 26)
בינת המשחק - צוללות
המחשב מדפיס על המסך את הצוללת
שלך (*****) ושואל אותך (צטסקאך)
כמה פצצות עומק לזרוק עללה:
נניח שבחרת ב-40 פצצות.
המחשב מתחלל לזרוק פצצות עומק / 0 0
(0) על פני המסך, באקראי (סאת), "יפ" ,
עד שהמסך מתמלא ב-40 פצצות
עומק:
אם הצוללת שלך לא נפגעה - קיבלת 40 נקודות. אם הלא נפגעה
(אא*0*) - לא קיבלת נקודות כלל.
אתה *כול לשחק נגד החברך (כל אחד בתורו) או נגד המחשב -
ואז המחשב בוחר לעצמו, באקראי, את מספר הפצצות שהוא מוכן
להסתכן בהן.
(תחוכנית המשחק בתשובה 27)
שכלול המשחק
נניח שאתה מעונין שהמחשב עצמו לספור את מניין הנקודות של כל
משתתף. לשם כך עליו "לדעת" אם הצוללת בפגעה או לא.
אליך יידע המחשב שפצצת עומק פגעה בצוללת? מלד נסבלר.
סאג (אָנְד) - וגם
גביח שהצוללת שלך בנוייה ממשבצת אחת בלבד, והלא במצאת בשורה
8, עמודה 10. המחשב מעלה מלקום של פצצה בגורל:
שורה צ ועמודה א.
אם 8=צ וגם 10=א אז הצוללת בפגעה.
ובשפת 28816 נכתוב זאת כך:
פס אחוד 10=א פאא 8=צ חך
25
(;) כתוב כעת 5 פקודות ...אשא1 ...סאג ...1 שלכללו את כל 5
המשבצות של הצוללת.
(תשובה 28)
חס (אור) - או
אפשר לקצר את התוכבית ולכלול את כל פקודות ה-א1 בשורה אחת.
נניח שהצוללת שלך בנולה משת? משבצות, הנמצאות בשורה 8,
בעמודות 10 ו-11:
0 אע (11>א כאג 8=צ) 08 (10-א פא 8=צ) שז
במקרה זה, מספיק שהכתוב באחד מן הסוגריים יהיה נכון כדל? שכל
משפט התנאל לתקיים והתוכנית תיעצר (5102).
הכנס, בתוכנית שלך, את כל 5 משפט?ל התנא? למשפט אחד תוך
שילמוש ב-פא8, ב-08 ובסוגרלים.
כעת, כשהמחשב "*ודע" מתי הצוללת בפגעה - שכלל את המשחק כך
שהמחשב יספור בקודות לכל משתתף!
משחקי מספרים
אתה עומד לפתח תוכנית שתבצע את המשחק הבא:
המחשב מגרלל 4 ספרות באקראל
(בדוגמא שלנו - 4,2,6,2) 2 0 4
ומצילג אותן על המסך. 20
מספר נוסף מופיע מתחתן
(בדוגמא שלנו - 20).
עליך לנחש ולחשב אילו פעולות חשבון יש להציב בין הספרות כך,
שתוצאת התרגיל החשבוני? תשווה למספר הרשום על המסך (במקרה
שלנו - 20).
(תרגילים מסוג זה ביצעת בחוברת 1, עמוד 666).
שים לב! אתה יכול להשתמש ב-4 פעולות החשבון: חיבור, חיסור
כפל וחילוק יותר מפעם אחת ואיגך חייב, כמובן, להשתמש בכולן.
האם אתה יודע לפתור את הדוגמא שלמעלה?
26
לאחר שניסית לפתור את התרגלל -
2 6 2 4
20
5=4*3+6%((
אתה לוחץ על מקש כלשהו והמחשב
מציג לך על המסך תבנית אפשרית
של תרגילל חשבון שיליתן את הפתרון
הנכון.
במקרה שלנו המחשב הדפיס את התבנית: כ*4*89+0 = 5
ואכן, אם תציג את המספרים במקומות המתאלמלם תקבל 20:
0 = 4*2+6*2
הערה: האם אתה מבין מדוע תרגיל חשבוני זה אכן גותן 20 ולא
8 אם אלנך לודע, אגו ממליצים כי תפנה ללמוד את
הנספח: "סדר ביצוע פעולות חשבון", שבחוברת 1.
שתי דרכים לאותה מטוה
אליך המחשב פותר את התרגיל? אפשר לחשוב על 2 דרכים אפשרלות:
דרך א
המחשב מגריל את 4 הספרות ומגריל גם את התוצאה. כעת הוא מנסה
(כמוך) להציב פעולות חשבון בין הספרות על-מנת להגיע לתוצאה
שעלתה בגורל.
דרך ב
המחשב מגרלל את 4 הספרות וכן את פעולות החשבון שביניהן.
בהתאם לכך הוא מחשב את תוצאת התרגיל ומציג אותה על המסך.
כמובן שבשיטה זאת המחשב לודע מראש את הפתרון... (את פעולות
החשבון).
אנו נבחר בדרך השנליה, מכיוון שהיא קלה לותר לתיכגנות ומהירה
לותר - וגם מבטיחה שלש פתרון.
מה אתה כבר יודע ומה עליך ללמוד
+ אתה כבר יודע איך לפקוד על המחשב להגריל 4 ספרות באקראי,
ולהציג אותן על המסך.
> אינך לודע איך לפקוד על המחשב להגריל פעולות חשבון
באקראי. לשם כך עליך ללמוד את הפקודה:
7
0 ָ ...אס
(;)) הכנס את התוכנית הבאה למחשב והרץ אותה:
58 1
5 נטפאד 20
0 ,60 ,50 ,40 10 00 2 אס 30
0 20 60 : "גג" צאדפק 40
0 20 60 : "פּתם" צאדתק 50
0 10 60 : "000" עאדתע 60
0 10 60 : "פע" צאצפץ 70
(:) כשהתוכנית רצה ונמצאת ב-201א1 הכנס באקרא? את אחד המספרלם:
1 עד 4 וראה כיצד מגלב המחשב.
הסבר
השורה החדשה היא, כמובן, שורה 30:
0 ,60 ,50 ,40 10 60 5 א0 50
והלא גורמת למחשב לפנות לשורה מתאימה בתוכנית בהתאם לערך של
5. שורה זאת מחליפה, למעשה, בבת אחת 4 שורות של אז:
70 60 אע 5-1 קך
0 10 60 אמנוה 2=ת קז
0 10 60 אגעה 5=ת קך
0 710 60 אמח 4=ת שך
משזימה
אם הבנת את ההסבר - בצע שיגוי קטן בשורה 30 כך, שכאשר תלחץ
2 המחשב לדפלס "600", וכאשר תלחץ 3 המחשב ידפיס "55פ5".
(חשובה 29)
מה יקרה אם תלחץ על הסיפרה 5? או 9?
בסה.
9 כ)
לכאורה המחשב מגיב כאילו לחצת על 1. אבל:
28
) הוסף לתוכנילת את השורה הבאה:
0 710 60 : "***" צאדתק 55
( ) הרץ את התוכנלת. לחץ על הספרות 1-4. לחץ גם על ספרות אחרות.
אתה רואה כ?, כאשר אתה לוחץ על סלפרה הגדולה מ-4 המחשב מתעלם
משורה 30 וממשיך הלאה לשורה 55.
מסקנה
אם בפקודת ... 170 60 א א0 כתבת 6 מספרי שורות אפשריות (אחרל
ה-10 60) והמשתנה א קלבל את הערך 7 או לותר - המחשב מתעלם
מכל השורה!
משימה
(, )) שנה את התוכנלת כך, שהמחשב לא לחכה שנכניס לו ב-צט2א1 את
המספר, אלא ילגריל באקרא? מספר בין 1 לבין 4, ובהתאם לתוצאות
ההגרלה יפנה לשורה מתאימה בתוכנלת.
(תשובה 350)
חוזרים אל משחקי המספרים...
כעת ילש בידך כל הכלים הדרושים כדי לכתוב את תוכנלת המשחק, כפל
שהוצגה בעמוד 26.
(;) נסה לכתוב את התוכנית - לפני שתפנה אל הרמזים הכתובלם בהמשך.
שלב 1
כדי לבצע את שלב 1 מעמוד 26 על המחשב לבצע את הפעולות הבאות:
* להגריל ערך אקראי (מ-1 עד 9) לכל אחד מהמשתנלם ,6,232 ו-כ2.
לפנות באקרא? (...10 60 ...א0) אל אחת מן השורות:
0 170 60 : 5 עאזפק : כ-6+ם*ג = 5 110
0 70 60 : 5 צאזתק : כ-2+2+60 = 5 120
710 60 : 5 עאזתק : כ*4/2+6 = 5 1350
29
10
אתה לכול, כמובן, להמשיך ולהוסיף שורות כאלה כדי לקבל י?ותר
ויותר צירופים אפשרילים של פעולות חשבון.
(תשובה 51)
שלב 2
כעת עליך להוסיף עוד קטע לתוכנית, שיבצע את שלב 2 של המשחק
(ראה עמוד 27):
בלחיצה על מקש כלשהו המחשב פונה אל שורה מתאימה מתוך קבוצת
שורות, שהן העתק כמעט מדויק של תבנלות התרגילים שבשורות
הקודמות:
07 10 60 : "כ-2+6*-5" צאזפק 210
0 10 60 : "כע-5-2+5+6" דאזפץ 220
70 60 : "כ*5-4/2+0" דאדתפק 2350
שים לב לנקודות הבאות:
* סדר הפעולות בשורות 210 ואילך חליב להיות זהה לסדר הפעולות
בקבוצת השורות 110 ואילך, על מנת שהתשובה תהיה נכונה.
* אם כתבת שורה כזאת:
90 ,120 ,110 10 60 5 א0ס
אז אותו 5 לשמש אותך בשורה:
90 ,220 ,210 10 60 5 א0ס
(תשובה 52)
אגב:
אם המחשב הציג בפניך את הבעיה, ואתה רוצה להשתמש במחשב עצמו
לצורן חישובים:
> עצור את ריצת התוכנית.
> בצע את החישוביס הדרושים (4/2+6*2 צַאזַתק)
= כדי להמשיך מהמקום שהמחשב עצר, פקוד:
זאסס (+ קמדאם)
הערה:
פקודה זו מתוכנתת על אחד מהמקשים המתוכנתיס.
אלזה מהם?
₪( ₪4( ( ₪(
שפירושו "המשך בביצוע התוכנית מן המקום בו הפסקת".
(זהו קילצור של המללה האבגלית שסא11א60 - המשך)
ואז המחשב למשיך בריצת התוכנית ותוכל לראות את תשובתו.
משכללים את התוכנית
בודאי הפריעה לך העובדה שחלק מן התוצאות היו שברים-עשרונלים.
הוסף עוד שורה שתגרום למחשב לבדוק את תוצאת התרגלל.
אם התוצאה אינה מספר שלם - החזר אותו להגרלה!
רמז
כיצד תבדוק אם משתנה כלשהו הוא מספר שלם או לא?
פקודה שלמדת בעמוד 22 תבוא לעזרתך.
(חשובה 55)
ואולי תרצה שהתוצאה תהיה מספר חילובי דווקא?
לשם כך הוסף שורה כזאת, שלא תאפשר למחשב להציג מספרים שליללים.
(תשובה 54)
נסכם את הפרק בסדרת שאלות:
עאת גורמת למחשב לבחור מספרים בין ל ,
(1)0.9א1 שווה ל-
0, 56, 300, 3 10 60 3 א0 תגרום למחשב לפנות לשורה
שמספרה
ההוראה גורמת למחשב להמשיך ולרוץ בתוכנלת מהמקום
שבו הוא הפסיק את פעולתו.
1
פרק ד
מירוצי סוסים
מירוצי סוסים
נצא קצת אל האויר הפתוח - אל מגרש מלרוצל הסוסים:
1, 2 ו-3 הם שלושה סוסים היוצאלם
למילרוץ מצד שמאל של המסך. מל
שילגיע ראשון לצד ימין של המסך -
לנצח:
המחשב מגריל מספר מתוך 1, 2 ו-5.
11
אם עלה בגורל מספר 35, למשל, '
222
המחשב מוסיף לסוס מספר 35 עוד
75
סיפרה בשורה שלו:
כאשר אחד הסוסים מגיע לקו הגמר, 1111
2222
התחרות נפסקת. בדוגמא שלנו סוס
מספר 1 נלצח! הוא הגיע לקו
2-5
הגמר ראשון כי המספר שלו עלה
בגורל יותר פעמלם מן הסוסים
האחרלם:
דע לך, כי הידע שצברת עד כה מספיק כד? לכתוב תוכגית כזאת:
2 ) כתוב תוכנית שתבצע את משחק מלרוצי-הסוסים (העזר ב-
60 ...א0).
הערה: כתוב שורה כזאת שתעצור את ריצת התוכנית כאשר הסוס
הראשון מגיע לקצה הימני של המסך.
התמודד בסבלנות עם כל הבגים שלופיעו בתוכנית.
2
₪0 60(
חפש את ה"בגים'"
מתכנת "לרוק" כתב את התוכנית הבאה כד? לשחק ב"מירוץ סוסים":
5 נפט 10
5>1א : 2=1א : 1=1א 15
1 + (3 * עאת) צאד=ת 20
0 אמך 23-40 08 2א 08 1א עך 25
0 ,60 ,50 10 60 5 א0 50
1 = 1א : "1" דאזפק : 1א ,5 1068418 50
1 = 892 : "2" צאזפק : 2א ,10 106418 60
1 = 85 : "3" צאזפע : 285 ,15 100478 70
0 10 60 100
מתברר שהתוכנלת אלגה עובדת. לש בה מספר בגים. אנו ממללצים
שתכתוב אותה במחשב ותנסה להריץ אותה.
היכן נמצא ה"בג" הראשון וכיצד תתקן אותו?
(תשובה 55)
לאחר שתלקנת את הבג הראשון, הרץ את התוכנלת שוב ושוב.
האם שמת לב לעובדה, כי סוס 3 מגלע תמלד ראשון, סוס 2 מגלע
שבגל וסוס 1 מגלע אחרון? מדוע?
תקן את הבג.
(תשובה 56)
עדיין מנצח תמלד אותו סוס?
ראה אילך התגברגו על הבעיה בתוכנית הטוטו בעמוד 235.
הצעות לשכלולים
צייר על המסך קו-גמר אללו
צריכים הסוסים להגליע:
ווו
222222
ו 23
בדוגמא שלגנו גלצח סוס 2 כל
הוא דרך על קו-הגמר.
הוסף פקודות כאלה שיגרמו למחשב לשאול אותך לפג? המלרוץ על
איזה סוס אתה מהמר. ("שקא1)
33
קיצור התוכנית בעזרת !ופ
תאר לעצמך שאתה רוצה לבנות תוכנית של מלרוצי-סוסים עבור 9
סוסים - התוכנלת תהיה ד? ארוכה ותיאלץ לשכפל הרבה שורות
דומות.
ניתן להוסיף סוסים לתוכנילת - וגם לקצר אותה!
כיצד?
לשם כן עליך ללמוד את הפקודה 1% (דלם).
עתכ הוא קיצור של א510א₪ננכ - מלמד)
(,) מחק את התוכנית הקודמת מן המחשב (או הקלט אותה).
(;) כתוב את השורה (20)/ ג אדע (+ תפעאם)
(20) אל -- רווח
לכאורה לא קרה דבר.
אך דע לך, כי המחשב הכין בזכרונו מקומות ל-20 משתנים:
(4)20 %4%%%+++4>+ ,([2)2 ,(1)ת
בשלב זה לכולם יש ערך 0:
(אגב: יש גם (8)0 וגם לו לש מקום בזכרון ובשלב זה גם ערכו
0 - אך אנו נתעלם ממנו.)
קבוצה כזאת של משתנים נקראת מערך - +2₪0₪% של משתבגלם.
לכולם אותו שם משפחה (במקרה שלבו - ב) ולכל אחד "שם פרטל"
משלו : 2 (12) 8 /
שם פרטי שם משפחה
.) פקוד על המחשב להדפלס את ערך המשתנה (4)12.
/
/
₪
₪
המחשב כתב | (0, 1)
ומה ילקרה אם תפקוד עליו להדפיס את (2)25? נסה!
המחשב הודל?ע: סו ע0 עעש0ס 508509121
לא קלים משתנה עם "שם פרט?" כזה. לש רק 20 משתנים במערך
והמחשב מודיע לך על כך.
יש גבול לזכרון
מה לקרה אם תפקוד על המחשב לפתוה בזכרוגו מערך בן 100,000
אברים? גסה!
(100000) 2 אנכ
המחשב מודיע דעס
פירושו של דבר, שלמערך בגודל כזה אי?ן מקום בזכרון של המחשב
הזכרון פשוט התמלא.
מה עושה התוכנית הבאה:
(6)4 4נפ 10
4 10 1>א 08ע 20
(א)6 דטעפא 530
א זאפא 40
הרץ את התוכנית. המחשב מבקש ממך את ערכו של (6)1.
בחר מספר כלשהו, הדפס אותו ולחץ אעצאם. כעת המחשב מבקש את
ערכו של (6)2, וכן הלאה עד (6)4.
שלם לב לשלמוש שעשינו במשתנה א, כדי לקרוא לכל אחד מאבר?ל-
המערך.
תו הוראה למחשב להדפלס את (0)1. האם זה הערך שנתת לו?
35
(.) הוסף לתוכנית עוד שורות כך, שאחר? "טעינת" כל אברי המערך
ב-1טעא1, יציג המחשב אותם אוטומטית על המסך:
המספרים פה הם דוגמאות 4 = (60)61
בלבד. על המסך שלך ל*ופיעו 7 = (6)2
הערכים שאתה הכנסת למערך! 2 = (06)5
3 = (6)4
(תשובה 57)
נקה את זכרוגו של המחשב (חאמפא).
הגדר את המערך הבא:
(50) 2 אנכ (+ תמדאם)
נניח שאנחנו מעונינים להגדיל את מספר האברים של המערך 2
ל-100. בסה!
קרוב לודאי שפקדת
סס
(100) 2 אד
אבל המחשב עגה:
א110 אע ןעט
מסקנה המחשב אינו יכול לחזור ולהגדיר מערך בעל אותו שם
משפחה שכבר נמצא בזכרון!
הערה: אם אתה עומד להשתמש במערך שאין בו ילותר מ-10 אברים -
אין לך צורך להגדיר אותו בעזרת אנכ כלל!
;) נסה לכתוב:
(6)9 עאזאק
(6)11 דאזאק
המחשב מודלע
5 02 002 50850121
כלומר, התייחסת למשתנה (6)11 שלא הוגדר במערך 6.
(אמרנו שמותר עד 10 אברים ללא אתפ)
אגב, פקודת שמא מוחקת גם את כל המערכים שהוגדרו בזכרון.
ג בניח שכתבת: (אחר? חסא)
(4)7 אזס
(5)30 אד
(6)500 [עדס
מה ילענה לך המחשב על כל אחת מן השורות הבאות:
אם תכתוב (4)6 1א91ת2, | המחשב *כתוב
אם תכתוב (5)40 עא81ע2, המחשב יכתוב
אם תכתוב (2)8 צַאזַתע, | המחשב *כתוב
אם תכתוב (6)500 צַא81ע, המחשב ל*כתוב
אם תכתוב (13) אתכפ, המחשב לכתוב
(הסבר בתשובה 58)
(,,) מחק הכל (חפא) והמשך:
2) הרץ את התוכנית הבאה: ((2 ,5ְמא675)71דם)נהעט 25דאסכאגאת 5
(6)15 אנכ 10
1 + (15*פעאת) דצא1=ת 20
5 = (6)9 30
8 דאתתתק 40
9 מ" מאברל המערך 6 שווה ל-0, ומ? מהם שווה ל-5?
(,) בדוק על המחשב אם צדקת. מה ערכם של שאר האברלים?
(,) חזור והרץ את התוכנלת ותיווכח לדעת שהמחשב נותן לאחד מאברי
המערך, באופן אקראי, את הערך 5 - בהתאם לתוצאות ההגרלה.
מה תבצע התוכנית אם תשנה את שורות /3 ו-40:
5 + (0)9 = (0)5 30
0 70 60 40
()) הרץ את התוכנלת לאחר השלנוי.
> האם אתה רואה משהו על המסך?
> האם התוכנית אכן רצה כל הזמן?
ובכן - המחשב אינו גח לרגע: הוא מגריל כל הזמן בין אברל-
המערך ומגדיל ב-5 את האיבר שעלה בגורל.
37
;) עצור את ריצת התוכנלת.
) פקוד על המחשב להדפיס את כל אברי-המערך בדרך הבאה:
8
צאסעא : (א660;" = (";א;")ס" צאזפתק : 15 170 1>א תסע
לחץ פפזאת על השורה הזאת (ללא מספר שורה!)
אתה רואה כי על המסך יש לאברי-המערך ערכים שונים בהתאם
להגרלה שערך המחשב ללא הפסק.
עכשיו יש בידך את כל הכלים לשכלל את מירוץ הסוסים:
* קצר את התוכגנית בעזרת אדת.
* הגדל את מספר הסוסים ל-9.
* המחשב עוצר את המירוץ כשהסוס הראשון מגיע לסיום.
* המחשב מדפיס את מספרו של הסוס הזוכה.
(תשובה 59)
* כשיש מספר אנשים הרוצים לשחק יחד במלרוץ הסוסים -
המחשב שואל כל אחד לשמו ועל אלזה סוס הוא מהמר.
בסיום המלרוץ מודפס מספרו של הסוס הזוכה ושמו של
המהמר עללו.
+ המחשב מדפיס גם את הזוכים במקומות השג? והשללשל.
פרק ה
קליטת נתונים
הבזקי מילים
נפתח את הפרק בפיתוח משחק קצר הנקרא "הבזקי מללים".
אתה מלמד את המחשב מספר מללים.
לצורך הדגמה נבחר מספר מללים השגורות בתחום המחשבים:
צעטעאת , 55א50290071 ,11020280055508 , מס עתמא , אסזינט501מת
(פמזות0סע ,615708עת ,הדתמוקותתק , צפסעת ,סגפת ,גדגס
50 , מפזסתג
המחשב בוחר באקראל את אחת המללים שלימדת אותו ו"מבזיק" אותה
על המסך לזמן קצר.
עליך לזהות את המילה ולכתוב אותה נכון:
* אם צדקת - המחשב עובר למילה הבאה.
= אם טעית - המחשב מודיע לך כי טעית - ומבזלק אותה שנלת,
לפרק זמן ארוך יותר.
לדעתנו אתה יכול לגשת לבנות את המשחק הזה, ללא צורך ברמזים
שלנו. נסה!
ואם בכל זאת אתה מתקשה...
שמוש במערכים מחרוזתיים
מאחר שבמשחק אנו מעוגינים להבזיק מילים באופן אקראי, רצול
מאוד לטעון את המילים לתוך מערך - ובאופן כזה נלתן להציג אותן
באופן אקראי על המסך.
כמו שילש מערכים מספריים (אינך זוכר? ראה עמוד 358) לש גם
מערכילם מחרוזתל?לם!
39
למשל: (85%)5 אזכ
"את" = (49)1
"פמט עס" >= (49)2
* גם במערכים מחרוזתיים אין צורך להגדיר (21%) מערך מחרוזתל
של עד 10 מחרוזות.
* אורך כל מחרוזת - מכסימום 256 סלמגנים.
= למה ילהיה שוה (8%5)3 בדוגמא שהבאנו עכשלו?
(תשובה 40)
האם עכשיו אתה יכול לגשת ולפתח את המשחק? - גסה!
אם לא - בפתח את המשחק צעד אחר צעד:
קליטת המילים
כאמור, בקטע הראשון של המשחק עליך "ללמד" את המחשב את המללים,
שאתה רוצה שלשתתפו במשחק.
ובמיל"לם אחרות: עליך לטעון מערך מחרוזת? במללים כרצונך.
כיצד תעשה זאת?
ניתן לחשוב על מספר דרכים כדי לטעון את המערך המחרוזתי במילים.
לפנין קטע של תוכנלת, שבעזרתו תוכל לטעון את המערך.
בתוכנית חסרים כמה פרטלם. השלם אותם:
(11)%₪ אזכ 10
8 20
נטפאז 50
נאטא 40
השלם את החלקים החסרים. (תשובה 41)
להצעה זאת יש נקודת תורפה רצינית.
* בכל פעם שתריץ את התוכגית תצטרך לטעון מחדש את המערך - וזה
תהליך דיל מלגע.
כיצד תתגבר על כך?
כדי להתגבר על בעיה זאת בצורה האלגנטית ביותר, תלמד להשתמש
בצמד הפקודות הבא:
קליטת נתונים - דהס פה
() כתוב אמא והעתק למחשב את התוכנלת הבאה:
(אם חבל לך על תוכנילת הבזקי-המילילם - דאג להקל?לט אותה קודם!)
שים לב כל הנתונים א כעאפת 10
בפקודת 2418 מופרדים 7 ד 20
על-ידי פסיק. אל תשכח
רווח
(.) הרץ את התוכגית.
לכאורה דבר לא קרה. אבל -
/' מה לדעתן ערכו של המשתבה א?
() פקוד על המחשב להדפיס את ערכו של א ובדוק אם צדקת.
בוא נראה מה הבין המחשב מן התוכגית הקצרה הזאת:
= כאשר הגיע המחשב לשורה 10 וקרא שם:
א פגת 10
הוא הכין מיד תא בזכרון וקרא לו א:
מיליד לאחר מכן הוא פונה לשורה בתוכנית
ששם כתוב לו 241 - נתונים - ומעתיק
את המספר הראשון בשורה לתא %:
< כאמ
7 6 -5 גכ 20
(.) כתוב במחשב, ללא מספר שורה: א פגחת
מה עכשיו ערכו של א?
(.) בדוק על המחשב אם צדקת (א ַאדפ2).
21
הסבר
בזכרונו של המחשב לש לשורת הנתונים (414כ) סמן נתונים
המסמן למחשב איזה נתון עליו לקרוא.
לפני שהמחשב מבצע פעם ראשוגה את פקודת ה-5842, מצביע הסמן
על הנתון הראשון:
7 ,6 ,5 גכ 20
ולכןו, לאחר שביצע המחשב פעם ראשוגה א כגעת, הוא הכניס לתא
א את הערך 5.
מיד אחר כןך קפץ סמן-הנתוגבים לנתון הבא:
20 7 5, 7
|
ולכן, כשביצע המחשב פעם נוספת א כעגעת, קילבל א את הערך
ל ה יהיה ערכו של א לאחר שיבצע המחשב א 5842 בפעם השללשלת?
מה יקרה אם לנסה המחשב לבצע א עגמת בפעם הרביעי?ת?
)0 =
נסה! כתוב א 2882 (ולחץ אמדאת).
המחשב מודיע: 818 עס צטס
אין ילותר נתונים בשורת הנתוגבים, סמן הנתוגים "נפל" מן השורה
והמחשב מודלע כל הנתונים נגמרו.
% מה לופיע על המסך אם תרלץ את התוכנלת הבאה:
4 710 1>א פסק 10
א כגמת 20
א צאזפע 50
א זאטא 40
3 ,8 ,3 ,1 7גכ 50
(2) הרץ ובדוק אם צדקת.
2) הכנס בתוכנית שינוי קל כך, שיופיעו על המסך רק המספרים 1 ו-35.
(תשובה 42)
% מה יקרה אם תכתוב את שורת ה-ג21 לפג? שורת ה-סגחת בתוכנית?
2 ) העבר את שורת הנתונים לתחילת התוכני?ת ובדוק.
מסקנה
שורת ה-41כ2 יכולה לבוא בכל מקום בתוכגית. כאשר המחשב מגלע
לפקודת עגמע הוא קופץ לשורת ה-414כ הראשונה הכתובה בתוכנית
ללא קשר למספר השורה שלה.
נהוג, עם זאת, לרשום את ה-412כ2 בסוף התוכנית.
רצוי, מכל מקום, לא להכגילס אותה לתוך לולאה כד? שהמחשב לא
יחזור ויקרא אותה שוב ושוב ללא צורך.
ל מה ידפיס המחשב על המסך כשתריץ את התוכנלת הזאת:
א כפגמת 10
צ עגפת 20
צ/א נאדתץ 30
2 ,10 גדא 40
חשבת? - הרץ ובדוק.
משימה
הוסף פקודת 10 60 ושנה את שורת ה-2418 כך, שהתוכנית תדפיס
על המסך את התרגילים הבאלם ואת התוצאות שלהם:
11 :7
55 : 8
19 : 7
54 : 5
96 : 53
(תשובה 45)
/' האם המחשב הודיע 241 ע0 צטס?
דרך אחת להתגבר על כך כבר ראינו - משתמשלם ב-1אטא-08ע
(ראה עמוד 42).
לפניך שיטה נוספת להתגבר על הודעת פמדפשהצאם בדגכ:
א עגפת 10
צ כגמת .20
(ע510 = פעאם) | פאשא אע 1- =א תך 350
צ/א;"=";צ;"/";א דאזפץ 40
9 10 60 50
1 9 7 41 60
של * האם תוכל להסביר מתי תוכנית זו תיעצר ומדוע?
= האם תופלע ההודעה 2418 ע0 צטס?
> האם חיילבים לכתוב פעמלים 1 - בשורת ה-2418 או פעם אחת
תספיק?
2 ) מחק את ה-1- האחרון ובדוק!
(תשובה 44)
שים לב!
בתוכנית הקצרה הרשומה למעלה מופיעות שתי פקודות כגתת.
ניתן לקצר ולכתוב רק אחת כך:
צ ,א פגפת 10
המחשב יקרא באופן אוטומט? שבי נתונים מרשימת ה-12כ. א% להיה
שווה לנתון הראשון ו-צ - לזה שבא אחרלו.
כאשר המחשב ילחזור ויבצע פקודה זו, הוא ילקרא את שני הנתונים
הבאים - וכך הלאה.
נסה.
חידה
בתוכנילת זו לש בג! מהו?
5 10 1>א פסע 10
(5)א אזפ 20
(א)א פגמת 350
א נאפא 40
0 ,5- ,13 ,1 41 50
(תשובה 45)
₪-
מה תבצע התוכנית הבאה:
5 פגשת 10
צאדפק 20
90 10 60 350
דשתתאתא ,בגאתגת ,םתס ,זַאגכ גדגכ 40
נסה.
הסבר
פקודות 418כ5242-2 יכולות "לטפל" גם במחרוזות. עליך להקפיד,
פשוט, לא לנסות להכניס מחרוזת לתוך תא של משתנה מספרי:
השמט את הסימן פּ בשורות 10 ו-20 וראה כיצד המחשב מגלב.
אגב בשורת ה-2418 אין צורך להכנלס את המחרוזות לתוך מרכאות:
אם המשתנה הוא מחרוזתי (מסתיים בסימן - ל) המחשב מתלחס
אוטומטילת לנתונים כאל מחרוזות!
ועוד הערה :
אם לא תכתוב רווח אחרי המילה 2878 המחשב לא ליכיר בשורת ה-גזכ
כלל!
5 ו5:ה
הכנס לתוכנית, הנמצאת כבר במחשב, את השורה הבאה:
אנת "דמתתאנא" = 4% ע1 25
(החזר את ה-% לשורות 10 ו-20)
והרץ את התוכנית.
הפעם התוכנית לא נעצרה, אלא המשיכה והדפיסה את השמות שוב
ושוב! מדוע?
ביצוע| 08₪5ז₪₪5 (רִיסְטור)| פירושו הוראה לסמן הנתונלם של
ה-41פ לקפוץ לתחילת הנתונים ובמקרה שלנו:
צפתפאזא ,גאחגכ ,תמעס ,זאגפ ג1גכ 40
ל
ואז, ב-ע58 הבא, המחשב קורא שוב את הנתון הראשון!
אתגר
(() בצע את המשימה הקודמת - ללא שימוש ב-5708עת.
(רמז - העזר ב-אשַת).
(תשובה 46)
מסקנה
פקודת ה-אטסע, נוסף למחיקת המשתנלם, מחזירה את סמן הנתונים
לתחילת שורת ה-818כ2 הראשונה בתוכנית.
משימה - המחשב יודע אנגלית
המחשב שואל אותך באלזה מספר
אתה בוחר - בין 1 לבין 10:
נניח שבחרת במספר 6. המחשב
מדפיס את המללה "א51" (שש
באנגלית) ומאפשר לך שוב
לבחור מספר:
וכך, עבור כל סיפרה שתכתוב -
המחשב לכתוב לך את הסיפרה באנגלית.
בצע משימה זו בעזרת 41כ2-כגמק.
זקוק לרמזז
ל מה יודפס על המסך בתום רלצת התוכנלת הזאת:
3 10 1=א סע 10
4 כגאמת 20
א צאפא 30
4 1אזתק 40
,5 7 241 50
(תשובה 47)
חוזרים להבזקי מילים
עכשיו, כאשר למדת כיצד להשתמש בפקודות 41כ-סגעת, אנו ממללצים
כי תחזור למשחק הפתיחה של הפרק: "הבזקי מילים".
כתוב את התוכנית בשלמותה.
(חשובה 48)
וכהרגלנו הנה כמה הצעות ושכלולים
+ אם טעית פעם שנלה, המחשב מציג לך את המללה וממתין ללחיצת
מקש, כדי לעבור למילה הבאה.
> המחשב מאפשר לך לבחור בזמני-הבזק שונים של המילים על המסך.
* ענית בפעם הראשונה בצורה נכונה - המחשב לא לציג יותר מללה
זאת.
+ הוסף צלילים וצבעים כרצונך.
27
פרק ו
מחפשים את המטמון:
משחק מסכם
במשחק שלפניך תצטרף לגייס את כל היידע שצברת לאורך 3 החוברות:
עם תחיללת המשחק המחשב "מפזר"
מוקשים באופן אקראל (פאת).
לאחר כ-5 שנילות נעלמלם המוקשלם
מן המסך.
אחרי שהמוקשים נעלמו מן המסך
(אך לא מזכרונו של המחשב - 271%),
הופיעו מחפש-האוצרות ( ₪ )
והמטמון (5). ל
משימתך להביא את מחפש האוצרות אל המטמון מבל? לעלות על אחד
המוקשים הבלתי-נראלם!
(המחשב זוכר את מלקומם וגם עליך לזכור, פחות או יותר, הליכן
הם נמצאים).
מחפש האוצרות *כול ללכת רק למלנה או למטה (עיפרון-ולדאו).
אם הוא עולה על מוקש - המחשב כותב
על המסך, ליד המוקש את המללה
"500% ! "
במהלך 3 החוברות עליהן עברת, צברת את כל הידע הדרוש על-מנת
לכתוב את התוכנית של המשחק הזה.
נסה לבצע זאת בכוחות עצמך. בדוק כל שלב על-ידי הרצתו על
המחשב. מצא בגים ופתור אותם.
אם בכל זאת אתה מתקשה - פנה לרמזים בעמוד הבא.
רמז 1
הבעיה העיקרית בתיכנות המשחק היא - לפזר 20 מוקשים ולשמור את
מיקומם בזכרון כך, שכאשר מחפש האוצרות לעלה על אחד מהם - המחשב
ליידע זאת וידפיס !"א200%".
לשם כך אפשר להשתמש בשני מערכלים:
(020)א אזכ (20)צ אזכ
המוקש הראשוןו נמצא ב: (1) א (1) צ
המוקש השנ?ל נמצא ב: (2) א (2) צ
המוקש השללשל - (3) א (3) צ
המוקש האחרון נמצא ב: (20) א (20) צ
נסה עכשיו לבנות את התוכנית.
רמז 2
מה עושה התוכנית הבאה:
5 צ דכה 5
(15)צ ,(15)א אכ 10+ שים לב לקלצור
5 10 1-א תִחק הב בעזרת הפסיק.
1 (40*פאת) זאד = (א)א 50
20(1*פאת)עא1=(א)צ 40
"א" לאזפע : (א)א ,(א)צ 106278 50
א זאפא 60
רמז 3
כדי לבדוק בכל צעד של מחפש האוצרות אם הוא עלה על מוקש או לא,
לש לבצע סריקה (זאטא-08ע) של שני המערכים.
הערה הרמזים הללו מכוונים לדרך פתרון אחת. יש, כרגיל, דרכים
נוספות לבנות את המשחק. אתה רשא?, כמובן, להתעלם מן הרמזים
ולפתור הכל בדרך אחרת.
(התוכנית המלאה בתשובה 49)
19
משכללים את התוכנית
00
הגעת למטמון? - המחשב מציג לך את המוקשים שהיו מפוזרלם
בשטח - והפעם אינו מוחק אותם לותר - כדי שתראה אלזה
סכנות עברת...
עלית על מוקש? המחשב משמלע צליל.
ככל שאתה מתקרב למטמון המחשב משמלע צליל גבוה לותר.
כשמגיעים למטמון נשמעת מנגינת נלצחון.
המשחק קל מדל?
אחרי שהמוקשים נעלמים - מופליע מעבר צר:
מותר לעבור רק דרך המעבר!
וגם להזהר מן המוקשים...
עדיין קל מד??
אחרי שהמוקשים נעלמילם, מופיע המעבר בשורה אקראית
ובעמודה אקראית:
פּעם כך ופעס כך
ואולי המחשב לגיד לך בכמה זמן הגעת למטמון?
הכנס את השיכלול הבא: מותר לך לבקש עזרה פעם אחת:
ואז המחשב "מדליק" את המוקשים הנסתרלם לזמן קצר ומעללם
אותם.
המחשב שואל אותך על כמה מוקשלם אתה מוכן להמר.
* אתה מנסה להגיע מפינה אחת והחברך מפינה אהחרת. מל שמגיע
ראשון - מנצח:
אדום לרוק
כל אחד צועד
צעד אחד בתורו.
וכעת
קח צבע וקשט בו את התוכנית שלך.
1
נספח
מספרים אקראיים
''אמזיתז וירז'/
2 ) הרץ את התוכנית הבאה:
עאת זאזפת 10
ל אם תריץ אותה שוב: איזה מספר לודפס על המסך?
(תשובה 50)
ל אלך תוכל להריץ את התוכנלת שוב ושוב - ולקבל בכל פעם מספר
אחר?
אם במקום אשת תפקוד 10 60 לשורה 10 תקבל בכל פעם מספר אחר!
נסה!
מדוע פקודת אשת גורמת למחשב בכל פעם לחזור ולבחור אותו מספר
ופקודת 10 10 60 גורמת לו להציג מספר שונה?
כדי להבין זאת, דמה לעצמך כ? למחשב לשנה טבלה גדולה מאוד ובה
רשילמה של מספרים אקראללם בלן 0 ל-1:
הנה 7 המספרים הראשוגנים בטבלה:
6. =>>- סמן
7,
9
9..
3,
3,
2 ,2
בכל פעם שהמחשב מבצע את ההוראה עאת הוא שולף מתוך הטבלה את
המספר עללו מצביע סמן מלוחד (18%א01ע2) - ותוך כדי כן: מקפיץ
את הסמן למספר הבא בטבלה.
2
9
"צלילי-מחשבת" תאפשר לך לחבר מנגינות בעזרת מחשב ה-06 שלך.
18 תבשחמ-ילילצ
אינך צריך להיות בטהובן לשם כך!
גס אם אין לך רקע כלשהו במוסיקה, אנו נלמד אותך, צעד אחר צעד, את כל היסודות
ההכרחיים על-מנת לחבר מנגינות בעזרת המחשב.
"צלילי-מחשבת" מכילה:
1 דיסקט המכיל מחולל אשר יאפשר לך לחבר מנגינות על המחשב ולשמור אותן על
הדיסקט, התוכנה תאפשר לך, בין השאר, לנגן מנגינות, לכתוב תוויסם על המסך
ולהשמיע אותם במחשב.
2 ספר הדרכה מפורט אשר:
ידריך אותך כיצד להשתמש במחולל.
8 ילמד אותך את יסודות המוסיקה שידרשו לצורך הלחנת מנגינות במחשב.
את המנגינות שתחבר תוכל לנצל לעוד מטרה:
תוכל לשלב מנגינות אלו בסרטי האנימציה שתיצור בעזרת מחולל האנימציה של
מחשבת, הקרוי "טסרטי-מחשבת".
3
רגיל קצב: 6%
ל סרט? מחשבת יד
"טרטי מחשבת" תאפשר לכל אחד ליצור סרטי אנימציה (הנפשה) כמו אלו המוצגיס
בטלויזיה ובמשחקי, המחשב המתוחכמים, לא נדרש שום רקע בתכנות או ידע קודם
בעקרונות סרטי האנימציה.
"טסרטי מחשבת" מכילה:
1 דיסקט המכיל מחולל ואנימציה המשוחח בשפה העברית, אשר מאפשר, בין
השאר, ובאופן ידידותי מאוד:
9 ליצור דמויות כמו אנשים, חיות, מטוסים ועוד ועוד.
8 להניע את הדמויות על המסך באופן כזה שיתקבל סרט אנימציה.
6 לשמור את כל הציורים והטסרטים על הדיסקט, וכך תוכל להציג את הסרט
שתיצור בכל עת שתרצה.
9 לשלב מנגינות בסרט.
2 חוברת לימוד אשר בעזרתה:
8 תלמד לנצל את כל האפשרויות שמחולל הגרפיקה והאנימציה מעמיד
לרשותך.
6 תלמד את עקרונות סרטי האנימציה כך, שתוכל לביים וליצור בעצמך סרטי
אנימציה.
כדרכה של מחשבת תעשה זאת בדרך פעלתנית תוך כדי ביצוע משימות מגוונות וכך,
אנו מקווים, פיתוח סרטי אנימציה יהפוך לחויה יצירתית ממדרגה ראשונה.
שים לבו
תוכל לשלב בסרט ציורי רקע שתיצור בעזרת התוכנה "ציורי מחשבת" (ראה עמוד
קודם). כך, לדוגמא, תוכל לגרום למטוס לחלוף בשמים, כאשר ברקע מרחפים עננים.
כמו כן תוכל לשלב מנגינות שתיצור ב"צלילי מחשבת".
ו מו ".4 זו .א .ג