כדי
להפיק תכניות יעילות, אין להסתפק בידיעה
פשוטה של חוקי כתיבת ההוראות בשפת התכנות,
שבה אנו כותבים. אנו חייבים להשתמש בחוקים
אלה, לשם מתן פתרון לסוגים שונים של בעיות
לוגיות, המתעוררות במהלך תכנון התכנית.
הוראות התנאי, כפי שלמדנו עד כה, נותבות
בידנו כלי לפתרון בעיות מסוגים שונים, על
ידי הצגת תנאים וביצוע הוראות בהתאם. התנאי
המורכב נותן להוראת IF
יכולת רבה יותר בבדיקת תנאים. במסגרת התנאי
המורכב ניתן לבדוק סדרה של תנאים שונים
במסגרת הוראת IF
אחת, ולפעול בהתאם לתשובות, אשר קיבלנו
לסדרת תנאים זו. בעזרת
התנאי המורכב ניתן לבצע פעולה, אם תנאי אחד
מתוך סדרת תנאים קיים. כל תנאי מתוך סדרת
התנאים, אשר בהוראת IF, מופעל על ידי COBOL בעזרת המלה OR
(או). תבנית ההוראה במקרה זה הינה כדלקמן:
כמות
התנאים, הנבדקים בהוראה אחת, אינה מוגבלת.
באופן מעשי, המגבלה הקיימת הינה מיגבלת
מחשב זה או אחר, המגביל אותנו בכמות השורות,
שלאורכן הוראה אחת יכולה להשתרע. אנו
רואים, כי בתבנית זו של הוראת התנאי המורכב
מופיעה המלה IF
פעם אחת בלבד. נראה, כי ההוראה הבאה בלתי
נכונה: IF
A = B OR IF B = C PERFORM PARA-5. וזאת
משום שהמלה IF מופיעה יותר מפעם אחת. אם נרצה לבדוק במסגרת תנאי מורכב כמה תנאים, אשר מתייחסים לאותו משתנה, אין חובה לרשום את בדיקת התנאי כך שהמשתנה יירשם כמה פעמים. במקרה זה נרשום: IF
A = 7 OR 8 PERFORM RTN5. אולם זו אינה טעות לרשום גם בצורה הבאה: IF
A = 7 OR A = 8 PERFORM RTN5. על ידי שימוש במלה OR, כל אחד מהתנאים שייבדק ויתברר נכון, יגרום להוראת הביצוע להתבצע. אם אף אחד מהתנאים אינו מתקיים, תתבצע הוראת הביצוע שלאחר משפט ELSE (אם קיים).
אנו
רואים, כי הקטע ERR-RTN יתבצע, רק אם המשתנה A
גדול או שווה למשתנה D, והמשתנה A אינו
שווה למשתנה E אחרת, תתבצע הוראת הביצוע של חיבור
המשתנה A למשתנה B.
המשתנים
A ו-CTR מוגדרים
בחטיבת הנתונים, והשימוש במסגרת זו הינו
חוקי. אם נרצה לרשום אותן ההוראות בצורת
רישום שונה, נוכל להשתמש בצורה הבאה: IF
A = 10 OR A = 20 OR A = 30 OR A = 40 OR A = 50 OR
A = 60 OR A = 70 OR A = 80 OR A = 90 PERFORM
TENS-RTN. קיים
מצב, אשר בו נרצה לבדוק במסגרת תנאי מורכב
סדרה של תנאים ולבצע פעולה כלשהי, בתנאי שכל
התנאים במסגרת הסדרה הנבדקת יתקיימו; ולא
נסתפק בתנאי אחד בלבד. במקרה זה נשתמש במלה AND
המקבילה למלה העברית גם. תבנית הוראת IF, במקרה זה, תהיה כדלקמן:
במקרה
זה, אם לכל התנאים התשובה הינה חיובית,
יתבצע הקטע PRINT-RTN.
אם לאחד התנאים התשובה תהיה שלילית, יתבצע
הקטע STAR-1. יש
מקרים, בהם קיים צורך בשימוש בשתי צורות
התנאי המורכב יחד, גם במלה AND
וגם במלה OR.
סדר בדיקת התנאי בהוראת תנאי מורכב בזמן
שימוש בהוראת תנאי אחת במילים AND, OR, נשאלת השאלה, מהו סדר בדיקת התנאים
לצורך ביצוע
ההוראה.
אנו
רואים, אם כן, שיש ליצור סדר מסויים בבדיקת
התנאים, מאחר שכפי שראינו עד כאן, ניתן
לשאול את השאלות בסדר שונה: על פי סדר אחד
יתבצע הקטע PARA1,
ולפי סדר אחר - קטע זה לא יתבצע. ואמנם קיים
סדר מודרג של ביצוע התנאים הנ"ל.
אם
כך, הדוגמא צריכה להיות מובנת בצורה הבאה: א.
IF
C = D AND E = F ב.
או
(OR) A = B ולפי
האמור לעיל, הקטע PARA1 אמנם יבוצע, מאחר שמתקיים התנאי A
= B.
כאן
מתעורר הצורך בשינוי העדיפויות של ביצוע
הוראות התנאי. ראשית, יש לבצע שתי בדיקות,
שהיחס ביניהן OR.
לאחר מכן - שתי בדיקות נוספות, שהיחס ביניהן OR,
ורק לאחר מכן לבצע יחס AND בין התשובות לשתי הבדיקות הראשונות.
במקרה זה, לצורך שינוי עדיפות סדר
הביצוע ניתן, ובמקרה זה - אף צריך, להשתמש
בהכנסת תנאי הבדיקה לתוך סוגריים. הכנסת
רצף תנאים לסוגריים גורמת לכך, שראשית
יתבצעו התנאים שבתוך הסוגריים, ורק לאחר
מכן ממשיך הרצף כרגיל. מכאן, שהדוגמא הנכונה
היא:
שלילת תנאי מורכב אם נרצה להשתמש בשלילת תנאי כלשהו צריך להימנע ממכשלה מסויימת.
המסקנה,
המתבקשת מהדוגמא הנ"ל, היא -
הצורך להשתמש בידע מתחום האלגברה
הבוליאנית, לשם הבנת שלילה של תנאים
מורכבים. נראה שלילת תנאים המופרדים במלה OR,
כמו במשפט:
על פי זה, בדוגמא הקודמת של שלילת התנאי A = 7 או A = 8 , יש להשתמש בצורת הרישום הבאה: IF
A IS NOT EQUAL TO 7 AND A IS NOT EQUAL TO 8 PERFORM
SOUTH ELSE PERFORM NORTH. רצוי, אם ניתן, במקרה של רישום הוראה IF עם תנאי מורכב, לרשום כל משפט בשורה נפרדת, לצורך קריאה בהירה יותר של המשפט ומניעת בלבול בהבנה. לדוגמא:
|
פרק 1 - מבוא לתכנות COBOL.
פרק 2 - ארגון נתונים
פרק 3 - חטיבת הזיהוי
(IDENTIFICATION DIVISION)
פרק 4 - חטיבת הסביב
(ENVIRONMENTAL DIVISION)
פרק 5 - חטיבת הנתונים
(DATA DIVISION)
פרק 6 - חטיבת הביצוע
(PROCEDURE DIVISION)
פרק 7 - הוראת MOVE
פרק 8 - קטעי האחסון לעבודה
פרק 9 - הוראות אריתמטיות
פרק 10- הוראות תנאי
פרק 11 - רישומים נוספים בחתיבת הנתונים
פרק 12 - עריכת פלט מודפס
פרק 13 - הוראות מיוחדות לעריכת הדפסה
פרק 14 - הוראת DISPLAY ו-ACCEPT
|
.איתן 2002. כל הזכויות שמורות למערכת המידע איתן © |