פרק 9  הוראות אריתמטיות.

ב. הוראת חיסור

ניתן לכתוב הוראת חיסור פשוטה, באחת משתי התבניות הבאות.

 תבנית 1 

(שם-נתון-ח) FROM ... ,[שם-נתון-2] , {שם-נתון-1} SUBTRACT

[קבוע-2]      {קבוע-1}                       

או:

 תבנית 2 

 (שם-נתון-ח) GIVING (שם-נתון-ח-1) FROM ... , {שם-נתון-1} SUBTRACT

(קבוע-ח-1)                     {קבוע-1}                              

 

דוגמאות

SUBTRACT  25  FROM  FLDA.

SUBTRACT  FLDA, FLDB, 99  FROM  FLDC.

SUBTRACT  TAX  FROM GROSS GIVING NET.

.SUBTRACT  TAX, FICA, INSUR-PREM  FROM  GROSS GIVING  NET

כל הכללים שלמדנו בפרק א', לגבי הוראת החיבור, תקפים גם לגבי הוראת החיסור, שגם היא הוראה אריתמטית. לכן, הוראה שתיכתב כך: .SUBTRACT  TAX  FROM  100 היא הוראה שגויה, כיוון ששדה התוצאה חייב להיות משתנה, ואסור שיהיה קבוע. בכל מקרה, שנרצה להפחית סכום כלשהו מקבוע, נצטרך להשתמש בתבנית מספר 2 (עם GIVING),

 כללים לפעולת החיסור - סיכום תמציתי

  1. כל המשתנים והקבועים חייבים להיות נומריים.

  2. שדה התוצאה (שאחרי המלה FROM בתבנית שימוש 1 , או אחרי המלה GIVING בתבנית שימוש 2) חייב להיות משתנה, ואסור שיהיה קבוע.

  3. בשימוש בתבנית מספר 1, ערכי כל המשתנים והקבועים שלפני המלה FROM מסתכמים יחד, והסיכום מופחת מהמשתנה שאחרי המלה FROM התוצאה ( ההפרש) מאוחסנת במשתנה שאחרי המלה FROM . כל יתר המשתנים נשארים בערכיהם המקוריים.

  4. בשימוש בתבנית מספר 2, הפעולה שמתבצעת זהה לפעולה, אשר הוסברה בכלל מספר 3, אבל התוצאה מאוחסנת במשתנה שאחרי המלה GIVING, שלערכו המקורי אין שום השפעה על הפעולה. במקרה זה, גם במשתנה או בקבוע, שאחרי המלה GIVING, נשאר הערך המקורי.

כדי להמחיש את שתי צורות השימוש הנ"ל, נסתכל בדוגמאות הבאות:

דוגמא א

SUBTRACT  15.4, TAX, TOTAL  FROM  AMT.

AMT

TOTAL

TAX

לפני ביצוע ההוראה

100

10

30

אחרי ביצוע ההוראה

44.6

10

30

מהערך שבמשתנה AMT מופחת הסכום של כל הערכים האחרים. התוצאה מאוחסנת בAMT.

דוגמא ב

SUBTRACT 15.4, TAX, TOTAL  FROM  AMT GIVING  NET.

 

NET

AMT

TOTAL

TAX

לפני ביצוע ההוראה

87

100

10

30

אחרי ביצוע ההוראה

44.6

100

10

30

הערך המקורי שבמשתנה NET אינו משתתף בפעולת החיסור, ואין לו כל השפעה על התוצאה הסופית, שמאוחסנת במשתנה זה.

בתכנית COBOL נשתמש בתבבית מספר 1 , כאשר איננו צריכים לשמור על הערכים המקוריים של השדות המשתתפים בחיסור, ובתבנית מספר 2, כאשר אנו צריכים בהמשך התכנית להשתמש באותם שדות, בערכיהם המקוריים, לשימושים נוספים מלבד החיסור.

גם בהוראת חיסור, כמו בהוראת חיבור, כל הפסיקים אינם הכרחיים, ומשמשים רק ליתר בהירות של המשפט. בכתיבה ב-COBOL, אם משתמשים בפסיק, חייב לבוא אחריו מרווח אחד לפחות. ניתן לבצע מספר פעולות חיסור, בהוראה אחת בודדת, ע"י הרחבת תבנית השימוש מספר 1 , כלהלן (כמו בחיבור):

נכתוב לדוגמא

SUBTRACT  AMT1, AMT2, AMT3  FROM TOTAL1, TOTAL2, TOTAL3.

וזה כאילו כתבנו: 

SUBTRACT  AMT1  FROM TOTAL1.

SUBTRACT  AMT2  FROM TOTAL2.

SUBTRACT  AMT3  FROM TOTAL3.

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

... ,(שם-נתון-ח+1),(שם-נתון-ח) FROM ... ,[שם-נתון-2] ,[שם-נתון-1] SUBTRACT

[קבוע-2]       [קבוע-1]                          

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

שאלות להערכה עצמית >>

 

נושאים

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

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