|
صفحة: 80
בכל הסיביות שבתוצאה התקבל , 0 חוץ מהסיבית הימנית ביותר שנותרה a ללא שינוי . תוצאת החישוב תהיה אפס אם , a = 0 ושונה מאפס אם . a = 1 מכאן שאם התוצאה שתתקבל היא אפס , שמשמעותה שקר במשפט התנאי , אזי המספר הוא זוגי . כיוון שערכו של המשתנה Even מאותחל לערך 1 בשלב ההגדרה , לא נדרש לשנות אותו . אם התוצאה שתתקבל שונה מאפס , שמשמעותה אמת במשפט התנאי , אזי המספר הוא אי-זוגי ועל כן נדרש לשנות את המשתנה Even לערך . 0 בפתרון ( b ) הוגדר המשתנה num במרחב . bdata במרחב זה ניתן לפנות לסיבית היחידה במשתנה זה . כיוון שלא ניתן להגדיר משתנה סיבית באמצעות כתובת מוחלטת כדרך שמגדירים משתנה , נשתמש בהגדרה של סיבית ובשיוך sbit על-פי כתובת הסיבית או באמצעות אופרטור המקום , . ^ ההכרזה הבאה אינה חוקית : . bit n 0 –at– 0 x 00 ההכרזה הבאה כן חוקית : . sbit n 0 = 0 x 00 בשורה 2 בתכנית הוגדר משתנה sbit num 0 = num-0 באמצעות אופרטור המיקום כדי לאפשר פנייה לסיבית הימנית ביותר במשתנה . num אם נחזור ונסמן את סיביות המשתנה num באותיות hgfedcba יכיל המשתנה num 0 את ערך הסיבית a במשתנה . num מכאן שאם המשתנה num 0 הוא אפס , שמשמעותו שקר במשפט התנאי , אזי המספר הוא זוגי . כיוון שערכו של המשתנה Even מאותחל לערך 1 בשלב ההגדרה , לא נדרש לשנות אותו . אם התוצאה שתתקבל שונה מאפס , שמשמעותה אמת במשפט התנאי , אזי המספר הוא אי-זוגי ועל כן נדרש לשנות את המשתנה Even לערך . 0 דוגמה 2 . 8 הפעלת נורה באמצעות שלושה לחצנים בשתי שיטות בכתובת השרירותית 1000 H שבמרחב xdata-ה מופה מפתח קלט , הכולל שלושה מפסקים המחוברים לסיביות הימניות במפתח , ובכתובת 2000 H מופה מפתח פלט הכולל נורה המחוברת לסיבית ( bit ) השמאלית ביותר במפתח . כאשר המפסק לחוץ , מתקבלת רמה לוגית , 1 וכאשר המפסק אינו לחוץ , מתקבלת רמה לוגית . 0 הנורה תדלוק אם נספק לה רמה לוגית . 1 התנאי להדלקת הנורה הוא ששניים מבין שלושת המפסקים לחוצים . בכל מקרה אחר הנורה תהיה כבויה . לשם כך נגדיר את מפתחי הקלט והפלט באמצעות פקודת שיוך מתאימה . נציג שתי שיטות
|
|