משתנים בוליאניים
מבנה תנאי
בהוראת repeat ,while ,if מופיעים תנאים שתוצאתם נכונה,או לא נכונה.כלומר,שתי אפשרויות בלבד לתוצאות התנאי.
נגדיר את המושגים הבאים:
כאשר התנאי לא נכון אזי התנאי שקר. כאשר התנאי נכון אזי התנאי אמת. |
לדוגמא:
...if X=Y then
אם X=Y הרי תוצאת התנאי היא אמת. אם X לא שווה ל-Y הרי שתוצאת התנאי היא שקר וההוראה אחרי התנאי לא תבוצע.
תוצאות התנאי יכולות להיות:
תנאי נכון --> אמת --> true תנאי לא נכון--> שקר--> false |
התנאי בהוראה ...if 3>1 then תמיד יהיה אמת (כי 3 תמיד יהיה גדול מ-1).
התנאי בהוראה ;until 4<3 תמיד יהיה שקר ולולאת ה-repeat במקרה זה לא תסתיים לעולם.
בפסקל ניתן להגדיר משתנים המאחסנים את הערך true או את הערך false בלבד.אלו משתנים המאחסנים רק אחת משתי האפשרויות ולכן נקראים משתנים בוליאניים.
הגדרת משתנים אלו נעשית בדומה להגדרת שאר סוגי המשתנים שהכרנו עד כה.
לדוגמא:
program NAME_OF_PROGRAM; var X,I:boolean; (*משתנים בולאנים*) S:real; begin X:=true; if X then writeln ('Print if the condition is true'); end.
להורדת הדוגמא לחץ כאן
תוצאת ריצה:
המילים true ו- false הם מילים שמורות ואין לתת שמות במילים אלו.
בתנאי if,X מאחסן את הערך true שהוצב קודם לכן,עבור ההוראה התנאי הוא אמת וההדפסה תבוצע.
ניתן להגדיר גם מערך של תאים בולאנים:
;AR:array [1…200 ] of boolean
ולבצע בתוכנית:
;AR [15]:=false
בחלק מהדוגמאות הקודמות בחרנו להשתמש בדגל שהכיל את הערך ליציאה מלולאה.הערך היה תמיד 1 או 0. אולם היינו יכולים להשתמש במבנה הבא:
...while FLG do
במקום:
...while FLG=0 do
דוגמא:
כתוב תוכנית הקולטת מספרים כלשהם חיוביים ומסכמת אותם.קליטת הנתונים מסתיימת ומדפיסה את תוצאות הסיכום כאשר מוקש מספר שלילי.
פיתרון:
להורדת הדוגמא לחץ כאן
דוגמת ריצה:
פעולת התנאי בהוראות if ובהוראות while ו- repeat,זקוקות להרחבה. ההרחבה באה באמצעות מילות היחס המרחיבות את התנאי:
א. וגם ---> and ב. או ---> or ג .לא ---> not |