פרק 10 הוראות תנאי.

ג. משפטי תנאי לבדיקת סימן, בדיקת אופי ושלילת תנאי

בדיקת סימן

ניתן לבדוק את היחס שבין משתנה כלשהו ובין הקבוע אפס:

{POSITIVE}

    (הוראה/הוראות ביצוע) {IS {NEGATIVE (שם משתנה) IF

    {ZERO}

     (הוראה/הוראות ביצוע) ELSE

שים לב, שצורת הכתיבה IF A = ZERO מקבילה לצורת הכתיבה

IF A IS ZERO

משתנה נומרי, המכיל ערך הקטן מאפס, הוא בעל ערך שלילי NEGATIVE אם הערך גדול מאפס, הוא נחשב חיובי POSITIVE

387-

ערך שלילי

387

ערך חיובי

387+

ערך חיובי

הערך אפס עצמו אינו חיובי או שלילי. ניתן לייחס אותו ל"כיוון" חיובי או שלילי, על ידי רישום 0- כרישום שלילי, ו-0+ כרישום חיובי.

דוגמא

ננסה לחשב את ההפרש, שבין ערך המשתנה FIELDA והקבוע המספרי אפס, ללא התחשבות בסימנו החיובי או שלילי של המשתנה FIELDA. לדוגמא, אם FIELDA = 2, הרי ההפרש בינו ובין האפס הוא 2.

אם FIELDA = -2, גם אז ההפרש הוא 2. ערך זה של המשתנה FIELDA, נקרא הערך המוחלט של המשתנה, וסימנו המתמטי :       |FIELDA| לשם פשטות ההסבר נאמר:

אם הערך של FIELDA גדול מאפס או שווה לאפס, אזי הערך המוחלט של FIELDA הוא גם ערכו של FIELDA.

אם הערך של FIELDA קטן מאפס, אזי הערך המוחלט של FIELDA הוא הערך שבמשתנה בהשמטת הסימן השלילי והפיכתו לחיובי.

לשם מציאת הערך המוחלט של משתנה, ניתן להשתמש בצורת התנאי שלמדנו

דוגמא

MOVE ZERO TO ABSA.

IF FIELDA IS POSITIVE MOVE FIELDA  TO ABSA.

IF FIELDA IS NEGATIVE MULTIPLY -1 BY FIELDA GIVING ABSA.

שים לב, שכתיבת המשפט IF A IS NEGATIVE מקבילה, מבחינת הביצוע, לרישום IF A < 0. ובאופן דומה, אם כותבים IF A IS POSITIVE, הרישום הזה מקביל לכתיבת IF A > 0.

בדיקת אופי

ניתך לבדוק שדה, אשר הוגדר במקורו כשדה אלפאנומרי, אם הוא מכיל רק אותיות, או עירוב של ספרות ואותיות.

צורת הכתיבה, במקרה זה, היא כדלקמן:

{ALPHABETIC}

    (הוראה/הוראות ביצוע) {IS {NUMERIC (שם משתנה) IF

     (הוראה/הוראות ביצוע) ELSE

במקרה זה, אם התנאי הנבדק הוא NUMERIC, הרי שאם המשתנה מכיל ספרות, התשובה תהיה חיובית; אחרת תתבצע ההוראה שבחלק המשפט ELSE.

דוגמא

התו הראשון של רשומה מכיל את כמות הילדים, שיש לעובד מסויים במפעל. עבור כל ילד יקבל העובד 750 שקל. אם לעובד יש יותר מתשעה ילדים, צריך לרשום A במקום עשר,B  במקום אחת עשרה וכו'. מכפלה רגילה של כמות במחיר תתבצע בקטע CALC-RTN, בעוד שטיפול מיוחד באותיות, המופיעות במקום המספרים, יבוצע בקטע EXCEPTION-RTN. קטע הקידוד הבא מראה את צורת הכתיבה לטיפול במצב זה.

IF NO-OF-DEPTS IS ALPHABETIC

PERFORM EXCEPTION-RTN

ELSE PERFORM CALC-RTN.

שלילת תנאי

בכל משפטי התנאי שלמדנו עד כה, עבור כל תנאי, אשר הצבנו במסגרת המשפט ועל פיו ביצענו הוראות כלשהן, ניתן להוסיף את המלה NOT. המלה NOT הופכת את התנאי הנבדק מתנאי חיובי לתנאי שלילי. תבנית מלאה של תנאי זה נראית כדלקמן:

{GREATER THAN}

    (הוראה/הוראות ביצוע) (שם נתון-2) {IS [NOT] {LESS THAN (שם נתון-1) IF

    {EQUAL TO}

    {ALPHABETIC}

    {NUMERIC}

    {POSITIVE}

    {NEGATIVE}

    {ZERO}

     (הוראה/הוראות ביצוע) ELSE

נתבונן בדוגמא הבאה

IF A = B PERFORM RTNX ELSE PERFORM RTNY.

IF A IS NOT EQUAL TO B PERFORM RTNY 

ELSE PERFORM RTNX.

רואים בדוגמא זו, ששתי הוראות התנאי מבצעות פעולה זהה.

אולם אם נרצה לשאול IF A IS NOT NEGATIVE הרי שבהיפוך השאלה IF A IS POSITIVE - לא נקבל את אותה משמעות שרצינו, וזאת מאחר שאם A = 0, לא נקבל תשובה חיובית בשתי הדוגמאות.

נתבונן בדוגמא הבאה

IF B IS NEGATIVE PERFORM RTNZ 

ELSE PERFORM RTNQ.

IF B IS NOT POSITIVE PERFORM RTNZ 

ELSE PERFORM RTNQ.

נניח ש-B =0 . על פי ההוראה הראשונה, קטע התכנית שיתבצע יהיה RTNQ. על פי ההוראה השנייה, קטע התכנית שיתבצע יהיה RTNZ. באופן דומה נראה כי אם נכתוב:

IF A IS NOT ALPHABETIC

לא נקבל משמעות זהה למשפט IF A IS NUMERIC, מאחר שאם המשתנה A מכיל אותיות, ספרות וסימנים מיוחדים, הרי שהוא אלפאנומרי ולא אלפביתי, ובכל אופן אינו נומרי. מכאן, שגם שתי הדוגמאות הבאות אינן מקבילות:

IF C IS NOT ALPHABETIC PERFORM RTNP ELSE PERFORM RTNV.

IF C IS NUMERIC PERFORM RTNP ELSE PERFORM RTNV.

קודם | תחילת הדף | הבא

 

נושאים

פרק 3 - חטיבת הזיהוי                               (IDENTIFICATION DIVISION)
פרק 6 - חטיבת הביצוע                               (PROCEDURE DIVISION)
פרק 14 - הוראת DISPLAY ו-ACCEPT

.איתן 2002. כל הזכויות שמורות למערכת המידע איתן ©